我是装配新手。 我在WIN XP SP3上使用MASM32。 每当我尝试汇编代码时,我都会收到警告。
.model small
.stack 100h
.code
main proc
mov ah,1
int 21h
mov bl,al
mov ah,2
mov dl,bl
int 21h
mov ah,4ch
int 21h
main endp
end main
组装ASM文件后
C:\ masm32 \ coa.asm(14):警告A4023:带/ coff开关,起始地址需要前导下划线:主要
驱动器C中的卷没有标签 卷序列号为A868-C4EC
...
请告诉我该怎么做:( 感谢
答案 0 :(得分:0)
您希望将32位MS-DOS程序(.model small
,int 21h
)构建为32位Windows程序。 MASM能够生成MS-DOS目标文件,但默认链接器不会链接它。自从您在快速编辑器(qedit.exe)中单击“组装ASM文件”后,“警告”(实际上是一个错误)来自MASM。
MASM32 SDK
附带一个16位链接器(link16.exe)。告诉ml.exe
使用该链接器:
ml /Bl link16.exe; coa.asm
最终你必须写出完整的路径,例如C:\masm32\bin\link16.exe
您可以向MASM32快速编辑器添加新的菜单点以构建MS-DOS程序。在文本编辑器中打开menus.ini
(您可以使用MASM32快速编辑器qeditor.exe
)。
向下滚动到
&Run Program,"{b}.exe"
[&Tools]
插入四行:
&Run Program,"{b}.exe"
-
Assemble 16-bit .asm to .obj,cmd /C\masm32\bin\ml.exe /c "{a}" & pause
Link 16-bit .obj to .exe,cmd /C\masm32\bin\link16.exe "{b}" ,,,,, & pause
Build 16-bit .asm to .exe,cmd /C\masm32\bin\ml.exe /Bl"C:\masm32\bin\link16.exe" "{a}" & pause
[&Tools]
保存文件并重新启动MASM32快速编辑器。
现在你在“项目”下有三个新项目。