How To Config MASM32 (ver 10) Work with Vista

Started by adleron, December 02, 2009, 02:19:37 AM

Previous topic - Next topic

adleron

Hi, this is the second post I posted in this issue....As I understand this is the right sub forum.

Forgive me for my poor English, it isn't my mother tounge.

I tried Installing Masm32 (ver 10) and got also earliest versiion which doen't work under Vista 32 bit,
I need to work with 16 bit Assembly, And I got for the simpliest programing (mov ax,ax) error a2004 and warning a4023.

How to config it the right way...
if there a special thread diling with issue please send me a link....

Lots of tnx
Ronen :clap:


sinsi

Everyone gets told this, I will be the first of many.
1. Post your code
2. Post your build command-lines.
Light travels faster than sound, that's why some people seem bright until you hear them.

UtillMasm

 :dazzled:
i think: 16-bit code need a 16-bit linker, and it is not included in masm32v10.

PS. don't google masm16v10.

MichaelW

Quote from: UtillMasm on December 02, 2009, 02:30:54 AM
i think: 16-bit code need a 16-bit linker, and it is not included in masm32v10.

It is included, as \masm32\bin\link16.exe.
eschew obfuscation

UtillMasm


dedndave

on this page, you can get a 16-bit linker, if you do not already have one
http://website.masm32.com/microsft.htm

the linkers are typically named either Link16.exe or Lnk563.exe
one or both of those programs should be located in your masm32\bin folder

if you want to use Lnk563.exe, use this version of the a16.bat batch file

@echo off
if "x%1"=="x" goto a16usage
if exist %1.asm goto a16asm
:a16usage
echo Usage: a16 asmfile
echo "asmfile" = asmfile.asm
goto batchexit
:a16asm
if exist %1.obj del %1.obj
c:\masm32\bin\ml /c %1.asm >c:\masm32\bin\asmbl.txt
if errorlevel 1 goto showtxt
if exist %1.exe del %1.exe
c:\masm32\bin\Lnk563 %1.obj; >>c:\masm32\bin\asmbl.txt
:showtxt
if exist %1.obj del %1.obj
type c:\masm32\bin\asmbl.txt
:batchexit
dir %1.*

if you want to use Link16.exe, use this version of the a16.bat batch file

@echo off
if "x%1"=="x" goto a16usage
if exist %1.asm goto a16asm
:a16usage
echo Usage: a16 asmfile
echo "asmfile" = asmfile.asm
goto batchexit
:a16asm
if exist %1.obj del %1.obj
c:\masm32\bin\ml /c %1.asm >c:\masm32\bin\asmbl.txt
if errorlevel 1 goto showtxt
if exist %1.exe del %1.exe
c:\masm32\bin\Link16 %1.obj; >>c:\masm32\bin\asmbl.txt
:showtxt
if exist %1.obj del %1.obj
type c:\masm32\bin\asmbl.txt
:batchexit
dir %1.*

place the batch file in the masm32\bin folder also
if you check your PATH environment variable, masm32\bin should be in the list

here is a test program to see if it is set up correctly

        .MODEL SMALL
        .STACK 512

;------------------------------------------------------------

        .DATA

MsgText db 'Hello World',13,10
        db 'Press any key to continue ...',13,10,36

;------------------------------------------------------------

        .CODE

_main   PROC    FAR

;set the DS register to DGROUP

        mov     ax,@DATA
        mov     ds,ax

;display the message

        mov     dx,offset MsgText
        mov     ah,9
        int     21h

;wait for a key

        mov     ah,0
        int     16h

;terminate

        mov     ax,4C00h
        int     21h

_main   ENDP

;------------------------------------------------------------

        END     _main