关于编译器的问题

lzp729 2006-05-22 01:02:26
我现在是在校学生,正在学习asm,看的是王爽出的《汇编程序》一书,书评还不错,是讲8086的ASM,我的CPU intel ,OS
2003,我想知道我怎么才能让书上的原代码编译并运行起来?我不是弱智的人:)
我在网上搜索了一下,得知radASM很好,我就去官网下载了最新的2.2.0.8版,并下载了所有其他文件,包括高级语言的包,IDE语言包等等,然后还下载了MASM32
的最新v9,也整合的很好,可以正常构建并运行网上搜索到的win32汇编源代码,并正常生成了图形界面。这些是已知条件,我现在要的是运行以下一段程序
assume cs:code
code segment
mov ax, 2
add ax, ax
mov ax, 4c00H
int 21H
code ends
end

很简单的程序是吧,是书上给出的程序,我还写不出来,但是我实在不知道用radASM如何构建这个代码,我新建一个console asm
project,把这个代码粘进去,编译OK,连接ERROR,直接GO
ALL也是ERROR,我对于这个问题向你请教解决方法,希望你能告诉我如何使我的radASM可以让上面这个代码转的动,另外,我看的书上,使用的是masm的命令行编译程序,和MS的连接程序,并在实DOS下编译连接成功。当然radASM这种IDE方式用起来很方便,但是我也想知道通过命令行来编译连接ASM代码的好工具,及其官网?

然后我有点疑惑,我现在的CPU当然是32位的,这样ax理应是32位,那么mov ax, 4c00H
就应该是错的吧?!我看的书出版日期是2002-2003年,我相信书的作者的CPU肯定是32位的,既然可以编译过,那么我推断肯定是因为实DOS是一个16位系统的原因,但是我用radASM在2003这个纯32位系统上写mov
ax, 4c00H,也是对的吗?
...全文
185 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
vito_corleone 2006-05-23
  • 打赏
  • 举报
回复
ax, 4c00H
ax==16byte
eax==32byte!!
vito_corleone 2006-05-23
  • 打赏
  • 举报
回复
我用MASM 5.0/6.0
编译的
vito_corleone 2006-05-23
  • 打赏
  • 举报
回复
应该是改为这样吧
code segment
assume cs:code
start: mov ax, 2
add ax, ax
mov ax, 4c00H
int 21H
code ends
end start

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧