编写一个简单的汇编程序(DOSBox 0.74和MASM 6.15)

一、配置环境

环境模拟器:DOSBox 0.74
挂载的DOS程序:汇编编译程序 MASM 6.15(建议下载6.15的)
MASM 6.15大家可自行去网上找资源下载。
DOSBox下载页面
安装DOSBox 0.74和MASM 6.15成功后(注意MASM 6.15的路径,我安装的路径是H:\MASM)
在这里插入图片描述

在DOSBox环境下输入命令

mount C: H:\MASM

语句mount C: H:\MASM表示使用mount命令将实际存放在Windows下H:\MASM的文件映射到DOSBox环境下的C:,该过程也称为挂载。
如果出现 Drive C is mounted as local directory H:\MASM\
在这里插入图片描述

即说明挂载MASM6.15成功!

二、编写程序实例

1、编辑–建立ASM源程序文件

输入命令

edit hello.ASM

其中,hello为源程序文件名,ASM为源程序文件扩展名。

输入汇编代码

data segment                      ;1
        string db 'hello,world!$' ;2
data ends                         ;3
code segment                      ;4
assume cs:code,ds:data            ;5
start:                            ;6
        mov ax,data               ;7
        mov ds,ax				  ;8
        mov dx,offset string      ;9
        mov ah,9				  ;10
        int 21h					  ;11
        mov ah,4ch				  ;12
        int 21h					  ;13
code ends						  ;14
  end start						  ;15

第1和3行:设立一个数据段,段名data,由data segment和data ends 这两句说明,语句需成对出现。segment和ends是关键字。
第2行:string是字符串名称,db是定义字节说明,字符串内容’hello,world!$'须用单引号括起。其中$是字符串结束标志。。分号后面的内容是注释,可不写。
第4和14行:设立一个代码段,段名为code。由code segment和code ends两句成对说明。
第5行:说明语句,指定code段与cs寄存器关联,data段与ds寄存器关联。
第6行:start是一个标号。
第7行:mov ax,data表示把data段的值传送给ax寄存器。
第8行:mov ds,ax表示把ax寄存器的值传送给ds寄存器。
第9行:把字符串string的起始偏移地址传给dx寄存器。offset string是求string的偏移地址,如果没有offset说明,那就是取string的值了。
第10行:ah寄存器得到9,为下一步调用DOS系统功能的9号功能做准备。
第11行:int 21h指令即调用DOS系统9号功能,9号功能是屏幕显示字符串。
第12~13行:调用DOS系统功能。4ch号功能是程序结束并返回到操作系统。
第15行:说明语句。告诉汇编程序,汇编到此结束,程序的启动地址为标号为start的那条指令(第6条)。
在这里插入图片描述

2、汇编–产生OBJ二进制目标文件

输入命令

MASM hello

在这里插入图片描述
这就说明产生OBJ二进制文件成功!

3、连接–产生exe可执行文件

输入命令

link hello

在这里插入图片描述
这就说明已经成功产生可执行文件!

4、执行exe文件

在这里插入图片描述
至此,你已经成功完成了一个简单汇编程序的编写输出。
转载需说明!

猜你喜欢

转载自blog.csdn.net/weixin_47700137/article/details/121042155