第一个 ASM 计划

发布于 2024-08-31 00:00:24 字数 736 浏览 7 评论 0原文

你好, 我正在尝试在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何止钟意 2024-09-07 00:00:24

经常使用 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 .

贱贱哒 2024-09-07 00:00:24

最好的选择可能是安装 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文