众所周知,汇编语言不只一种…
如果学习的是8086CPU的汇编,推荐一本口碑很好的国内教材:汇编语言(第4版)王爽著 清华大学出版社出版
环境搭建
包括8086 MASM工具和DOSBox模拟器
8086 MASM
这是8086CPU架构下的一套微软宏编译的工具,可以用来编译连接汇编代码,并进行调试,主要包括以下EXE:
- MASM.EXE
- LINK.EXE
- DEBUG.EXE
- …
找了很久也没有找到官网的下载入口,有一些英文的文章都链接到了这里,应该没有太大问题(本人用的是老师上课的时候给的MASM工具 )。
DOSBox
只有8086的MASM工具还不行,因为那些工具只能运行在16位的操作系统上,而目前的绝大多数操作系统都是64位的了,所以我们需要一个模拟器,当然也可以整一个虚拟机但是不推荐也完全没必要。DOSBox,一个最初为了在现代操作系统中玩上古DOS游戏而编写的模拟器,简直就是为学习汇编而量身打造!拥有以下绝对优势,简直不要太好!
- 体积小
- 操作简单
- 运行速度快
- 出错少

MASM工具使用
介绍三个常用工具的使用:MASM.EXE、LINK.EXE、DEBUG.EXE
MASM.EXE
将ASM汇编代码编译成OBJ
LINK.EXE
将OBJ文件连接成EXE
DEBUG.EXE
调试EXE程序
一、R命令
1. 查看寄存器的值
2. 修改某个寄存器的值
二、D命令
查看内存,以及对应ASCII码
1. d不加参数默认从上一次d命令往下或者CS:IP开始往下查看128字节的长度
左边为每行的起始内存地址,中间为每行对应地址的内容,右边为每个内容可显示的ASCII码字符
2. d 段地址:偏移地址,从指定位置开始往下查看128字节的长度
3. 查看指定长度的内存
三、E命令
以16进制字节形式编辑内存
四、U命令
查看内存中的值和对应的汇编代码
只输入u默认从下一条指令开始往下查看若干条指令
五、A命令
以汇编指令的形式在内存中写入机器指令
六、T命令
单步执行机器指令
上图为五、A命令截图中写入的汇编代码的单步执行结果,用来计算2的三次幂,计算结果写入AX寄存器中
七、P命令
跳过循环以及系统调用
Leave a comment