-
目录
一、实验目的
二、实验内容
三.实验步骤以及结果
四、实验结果与分析
五.实验总结
一、实验目的
-
1、学会搭建汇编语言程序设计的软件平台
2、熟悉debug命令的使用
3、学会如何使用 debug 来进行寄存器、内存中内容的查看和修改,如何使用 debug 来进行程序的调试 -
二、实验内容
- 1. 利用debug命令,截图保存当前寄存器的内容
- 2.利用debug命令 从073f:0120开始的内存地址中写入字符串“welcome to masm”
- 3.利用debug命令将如下指令写入到内存中,并利用t指令执行,观察寄存器AX,BX,DX,CS及IP的变化。
-
mov ax,-3 mov bx,1 add ax,bx MOV DX,FF INC DX
三.实验步骤以及结果
1、利用debug命令,截图保存当前寄存器的内容。
2.利用debug命令 从073f:0120开始的内存地址中写入字符串“welcome to masm”
第二次只按d,从0180开始,而不是像第一次从0100开始。经过几次试验,发现,最开始默认从0730F:0100(CS:IP)开始,后面的则紧接着上一次的查看的内容。如上一次在0730F:017F结束,下一次的-d则从0730F:0180开始。
3.利用debug命令将如下指令写入到内存中,并利用t指令执行,观察寄存器AX,BX,DX,CS及IP的变化。
可见,-R或-T的末尾部分即下一次执行的指令。IP为下一次指令的地址。
寄存器AX,BX,DX,CS,IP的变化如下。
执行MOV BX,0001.
BX由0000变为0001,IP由0100变为0103。
执行ADD AX,BX.
AX由0000变为0001,IP由0103变为0105,BX未变。
3.执行MOV DX,00FF.
DX由0000变为00FF,IP由0105变为0108。
执行INC DX.
DX由00FF变为0100,IP由0108变为0109。
由上面四条可归纳出:
1、无论执行什么样的指令,IP总会变化,结合上一张-输入汇编语言的截图可知(-A指令下面的截图),IP就是下一次指令的地址。
2、根据寄存器数值的变化可以分析MOV,ADD,INC所代表的含义。
思路如下:
根据汇编语言的命令可以得出命令涉及哪些变量与数值,如第一条,MOV BX,0001,说明这条指令与BX和0001有关,结合寄存器的变化,可以猜出MOV的含义是赋值,这条指令的意思是令寄存器BX赋值为0001。再看一下第3条,发现DX被赋值为00FF。
MOV BX 0001,可类比为C语言中的 BX=0001。即赋值操作。
同理ADD AX,BX,可类比为AX=AX+BX。即相加操作。
INC DX,可类比为DX++。即自增操作。
四、实验结果与分析
可见第三部分。
五.实验总结
本次实验,成功下载了使用汇编语言的工具,并简单学习了debug命令的使用。下面三个实验目的也基本实现。
-
- 学会搭建汇编语言程序设计的软件平台
- 熟悉debug命令的使用
- 学会如何使用 debug 来进行寄存器、内存中内容的查看和修改,如何使用 debug 来进行程序的调试