一、配置环境
环境模拟器:DOSBox 0.74
挂载的DOS程序:汇编编译程序 MASM 6.15(建议下载6.15的)
MASM 6.15大家可自行去网上找资源下载。
安装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文件
至此,你已经成功完成了一个简单汇编程序的编写输出。
转载需说明!