8086汇编语言上机调试步骤
1、在网络课堂-微机原理与接口技术-实验指导-汇编工具下载,下载汇编工具并解压,文件夹名为“masm”。
2、用鼠标点击“masm”文件夹。
进入该文件夹后将看到 MASM.EXE, LINK.EXE , DEBUG.EXE3个文件进行复制操作。
3、用鼠标点击“我的电脑”再点击D: 盘,并在 D: 盘上建立新的“ MASM”文件夹,最后将上面的3个文件全部复制到该文件夹中。
(注意实验所有的文件都放在该文件夹内)
4、用文本编辑软件UltraEdit-32、WINDOWS 中的记事本或其它的文本编辑器输入汇编语言程序, 注意在最后一行的 END输入完后要按一次回车键,保存的源
文件的扩展各一定要是“.asm”如: example.asm 。
(建议用记事本输入源程序,另存时,保持类型选择“所有文件”如图所示)
5、进入MS-DOS方式 ( 从开始>程序>附件>命令提示符)
或者(从程序 > 运行输入“cmd”回车,进入MS-DOS环境。
6、进入D:>MASM文件夹
7、显示MASM文件夹内所有文件“dir”命令
8、在 DOS 提示符下进行汇编、连接、动态调试等操作。
例如: 对源文件 example.asm 进行的操作
D:\MASM\MASM example.asm;汇编源程序操作
D:\MASM\LINK example.dbj;连接并生成扩展名为 .EXE 的可执行文件
D:\MASM\DEBUG example.exe;对可执行文件进行调试
9、要求掌握的调试命令(在 DEBUG 中使用的命令)
a: U - 反汇编命令
用法: -U 代码段地址:起始偏移地址如:-U CS:100
b: D - 显示内存中的数据命令
用法: -D 数据段地址:存放数据的偏移地址如:-D DS:00 20
c: T - 单步执行程序命令
用法: -T 要执行的指令条数如:-T 3
d: G - 连续执行程序命令
用法: -G=代码段地址:指令的起始偏移地址指令的结束偏移地址如: -G=CS:100 106
注意: 结束地址一定要是操作码的所在地址
e: R - 查看和修改寄存器数据命令
用法: -R 回车如:-R AX
f: F - 对内存单元填充数据命令
用法: -F 数据段地址:偏移首地址偏移未地址填入的数据
如: -F DS:100 120 ff
g: Q - 退出”DEBUG“应用程序命令
10、应用例子
;二进制到BCD转换(a.asm)
;将给定的一个二进制数,转换成二十进制(BCD)码
DATA SEGMENT RESULT DB 3 DUP(?)
DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV AX, 123
MOV CL, 100
DIV CL
MOV RESULT, AL ; 除以 100, 得百位数
MOV AL, AH
MOV AH, 0
MOV CL, 10
DIV CL
MOV RESULT+1, AL ; 余数除以 10, 得十位数
MOV RESULT+2, AH ; 余数为个位数
JMP $ CODE ENDS
END START
汇编源程序操作:
D:\MASM>MASM a.asm ;
D:\MASM>LINK a.OBJ;
对可执行文件进行调试的操作:
D:\MASM>DEBUG A.EXE
-
-U CS:0000 ;用反汇编命令”U 代码段地址:起始偏移地址“显示出程序的
表示符
执行程序前观察内存中的数据
-D DS:0000 ;用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址”显示内存中的数据
-G=CS:0000 001E ;连续执行程序命令代码段地址:指令的起始偏移地址指令的结束偏移地址
执行程序后观察内存中的数据(结果)
-D DS:0000 ; 用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址”显示内存中的数据
-R IP 修改IP寄存器中的数据
IP 001E 显示修改前的数据
:00 输入修改的数据
-T ;单步执行程序命令(执行一条指令)
-T3 ;执行3条指令
-R ;查看寄存器数据命令
-R AX ;查看和修改寄存器数据命令
AX 007B
:1111
-R ;查看寄存器数据命令
-D DS:0000 ;用显示内存中的数据命令命令“D 数据段地址:存放数据的偏移地址”显示内存中的数据
-F 数据段地址:偏移首地址偏移未地址填入的数据
-F DS:0000 0030 DF ;对内存单元填充数据
-D DS:00 ;观察内存中的数据
-Q ;退出”DEBUG“应用程序命令。