Author Topic: UAsm64 in 32 bit pc problem  (Read 324 times)


  • Regular Member
  • *
  • Posts: 3
UAsm64 in 32 bit pc problem
« on: April 09, 2018, 03:48:25 AM »
Hi all,
I am new to assembly. I am a hobby programmer. VB.Net and FreeBasic are my languages. Now, want to wet my toe in MASM. But from here, i happen to know about masmBasic. So i installed it and tried to run the sample code that appears right after installation. But the output window shows this message.
Code: [Select]
*** Assemble using \masm32\bin\UAsm64 /c /coff /Zd /Zi /Zf tmp_file.asm ***
This version of C:\masm32\bin\uasm64.exe is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.
*** Assembly Error ***
My pc is WIndows 8 32 bit. So is there any UAsm32 ?
PS: I am interesting in making unicode supported programs. And i also learn assembly by making unicode programs. So please guide me to the right path in orger to achieve my goal.


  • Member
  • ****
  • Posts: 702
Re: UAsm64 in 32 bit pc problem
« Reply #1 on: April 09, 2018, 03:55:15 AM »
go to the board homepage, on the upper right click on masm32 downloads.
this will download the 32 bit Masm32 SDK....
apparently you have a 64 bit uasm installed, not appropriate for your setup


  • Member
  • ***
  • Posts: 299
Re: UAsm64 in 32 bit pc problem
« Reply #2 on: April 09, 2018, 03:55:32 AM »


  • Member
  • ****
  • Posts: 702
Re: UAsm64 in 32 bit pc problem
« Reply #3 on: April 09, 2018, 03:59:35 AM »
or click link in above post. lol
I only use the Masm32 SDK, I forget there are some (semi) masm compatible....

and I should have given you a big welcome to the forum, sorry  'bout that.


  • Member
  • ****
  • Posts: 702
Re: UAsm64 in 32 bit pc problem
« Reply #4 on: April 09, 2018, 04:07:15 AM »
since you have experience in VB and FreeBasic, you may also be interested in MasmBasic by long time member jj2007.
he will probably stop by here shortly to give you more details...

MasmBasic forum <--- click to learn about MasmBasic

Its basically his combining the low level of assembler with Basic Like syntax afaik, MB has a vast library, an jj is constantly making improvements to the MB platform and its GUI, RichMasm..



  • Member
  • *****
  • Posts: 8504
  • Assembler is fun ;-)
    • MasmBasic
Re: UAsm64 in 32 bit pc problem
« Reply #5 on: April 09, 2018, 06:57:40 AM »
UASM 2.46.10 (32bit)  ;)

Hi kcvinu,

I assume you have installed the Masm32 SDK (instructions).
anta40 has given you the right answer. Click on his link, and extract UAasm32.exe to \Masm32\bin\
Afterwards, the templates should work. If not, add this to your source: ; OPT_Assembler UAsm32

Let me know if it works.


P.S. - for you control colour problem (pure Masm32):
Code: [Select]
include \masm32\include\

.data ; initialised data section
wcx WNDCLASSEX <WNDCLASSEX, 0, WndProc, 0, 0, 1, 2, 3, COLOR_BTNFACE+1, 0, txClass, 4>
txClass db "MbGUI", 0 ; class name, will be registered below
hBrushYellow dd ?
hBrushGreen dd ?
hCurrentBrush dd ?

start proc
Local msg:MSG
  wc equ [edi.WNDCLASSEX] ; we use an equate for better readability
  mov edi, offset wcx
  mov wc.hInstance, rv(GetModuleHandle, 0) ; rv ("return value") is a Masm32 macro
  mov wc.hIcon, rv(LoadIcon, eax, IDI_APPLICATION) ; OPT_Icon Smiley    ; see \Masm32\MasmBasic\icons
  mov wc.hIconSm, eax ; the rv macro returns results in eax
  mov wc.hCursor, rv(LoadCursor, NULL, IDC_ARROW) ; get a cursor
  invoke RegisterClassEx, addr wc ; the window class needs to be registered
  invoke CreateWindowEx, 0, wc.lpszClassName, chr$("Hello World"), ; set window title here
     600, 150, 530, 250, ; window position: x, y, width, height
     NULL, NULL, wc.hInstance, NULL
  lea edi, msg
  .While 1
xor eax, eax
invoke GetMessage, edi, eax, eax, eax
inc eax
shr eax, 1
.Break .if Zero? ; 0 (OK) or -1 (error)
invoke TranslateMessage, edi
invoke DispatchMessage, edi
start endp ; no ret here - fall through to Exit
exit ; cleanup & invoke ExitProcess
WndProc proc uses esi edi ebx hWnd, uMsg, wParam:WPARAM, lParam:LPARAM
  Switch uMsg
.if word ptr lParam<200
m2m hCurrentBrush, hBrushYellow
m2m hCurrentBrush, hBrushGreen
invoke InvalidateRect, hWnd, 0, 0 ; force a repaint
return hCurrentBrush
  RGB 255,  255, 200
mov hBrushYellow, rv(CreateSolidBrush, eax)
  RGB 200,  255, 200
mov hBrushGreen, rv(CreateSolidBrush, eax)
invoke CreateWindowEx, WS_EX_CLIENTEDGE,
  chr$("edit"), chr$("move the mouse to the left and right"),
  9, 9, 500, 200, hWnd, 103, wcx.hInstance, NULL ; we have added an edit control
invoke PostQuitMessage, NULL
  invoke DefWindowProc, hWnd, uMsg, wParam, lParam ; default processing
WndProc endp
end start
« Last Edit: April 12, 2018, 02:41:09 AM by jj2007 »