工欲善其事必先利其器,要学好汇编,首先需要会搭建开发环境,通过一个简单的helloword程序入门。

安装环境

1.安装vmware虚拟机,然后安装windows XP系统
2.解压DOSBox0.74-2-win32.zip,把三个可执行文件masm.exe,link.exe,debug.exe拷贝到windows的system32目录下
3.编辑源码,如:1.asm

assume cs:codesg
codesg segment
        mov ax, 0123H
        mov bx, 0456H
        add ax, bx
        mov ax,4c00H
        int 21H
codesg ends
end

4.编译源码,如:nasm 1.asm;
5.链接目标文件,如:nasm 1.obj;
6.debug运行程序:debug 1.exe
(由于程序无输出信息,所以用debug程序运行方便查看结果)

要掌握的debug命令:

U - 反汇编命令
用法: -U 代码段地址:起始偏移地址如:-U CS:100
D - 显示内存中的数据命令
用法:-D 数据段地址:存放数据的偏移地址如:-D DS:0020
E - 修改内存中的数据命令
用法:-E 数据段地址:存放数据的偏移地址如:-E DS:0020
T - 单步执行程序命令
用法:-T 要执行的指令条数 如:-T 3
G - 连续执行程序命令
用法:-G=代码段地址:指令的起始偏移地址 指令的结束偏移地址如:-G=CS:100 106 注意:结束地址一定要是操作码的所在地址
R - 查看和修改寄存器数据命令
用法:-R 回车 如:-R AX
Q - 退出“DEBUG”应用程序命令