第一个 ASM 计划
你好, 我正在尝试在 Windows Vista 64 位操作系统上的 MASM 上运行我的第一个 ASM 8086 程序。
我把这个程序放在我的 MASM 编辑器上:
.model small
.stack
.data
message db "Hello world, I'm learning Assembly !!!", "$"
.code
main proc
mov ax,seg message
mov ds,ax
mov ah,09
lea dx,message
int 21h
mov ax,4c00h
int 21h
main endp
end main
MASM 编辑器给了我这个输出,我不知道程序出了什么问题:
Assembling: D:\masm32\First.asm
D:\masm32\First.asm(9) : error A2004: symbol type conflict
D:\masm32\First.asm(19) : warning A4023: with /coff switch, leading underscore required for start address : main
_
Assembly Error
这段代码的问题出在哪里?这是我的第一个 ASM 程序,请记住。 谢谢:)
Hello,
I'm trying to run my first ASM 8086 program on MASM on Windows Vista 64bit OS.
I put this program on my MASM editor:
.model small
.stack
.data
message db "Hello world, I'm learning Assembly !!!", "$"
.code
main proc
mov ax,seg message
mov ds,ax
mov ah,09
lea dx,message
int 21h
mov ax,4c00h
int 21h
main endp
end main
and the MASM editor gives me this output that I got no idea what's wrong with the program:
Assembling: D:\masm32\First.asm
D:\masm32\First.asm(9) : error A2004: symbol type conflict
D:\masm32\First.asm(19) : warning A4023: with /coff switch, leading underscore required for start address : main
_
Assembly Error
Where is the problem with this code? This is my first ASM program please remember.
Thank you :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
经常使用 C 的平台倾向于在函数名称之前添加下划线,具体取决于调用约定和可执行格式(因此出现“with /coff switch”警告)。尝试在函数名称中加一?
顺便说一句,Vista 64 位是否支持 16 位代码?有人告诉我这是被删除的内容之一...请参阅 http://en.wikipedia。 org/wiki/Windows_on_Windows 。
Platforms that use C a lot tend to like having an underscore before function names, depending on calling convention and executable format (hence the "with /coff switch" warning). Try adding one to the function name?
BTW, does Vista 64-bit even support 16 bit code? I was told it was one of the things that got dropped...see http://en.wikipedia.org/wiki/Windows_on_Windows .
最好的选择可能是安装 XP 虚拟机。启动该宝贝,然后安装 MASM32
然后获取 16 位链接器的副本: 16 位链接器
然后尝试再次。
由于您使用的是段,因此需要 16 位汇编。
Your best bet is to probably install an XP virtual machine. Fire that baby up and then install MASM32
Then get yourself a copy of the 16bit linker: 16 bit linker
Then try again.
Since you are using segments, you require 16 bit assembly.