汇编语言-实验1
一、 实验目的
学会怎样进入DOS、Windows提供的实模式程序的调试方式,掌握Debug常见指令的使用。
二、 实验内容
请完成实验,并回答思考题、完成要求的截图
1:用Debug的R命令查看、改变CPU寄存器的内容;
2:用Debug的D命令查看内存中的内容;
3:用Debug的E命令改写内存中的内容;
4:用Debug的U命令将内存中的机器指令翻译成汇编指令;
5:小测试
三、 实验过程和结果
注意:debug下默认十六进制
1:用Debug的R命令查看、改变CPU寄存器的内容;
首先在运行cmd指令,然后在运行框中输入debug进入debug编辑模式,再用R命令查看CPU寄存器内容,如下所示:
接下来改变AX的值为1010,如下图所示:
查看:
思考1:最后一行13d2:0100是什么?
CS:IP
2:用Debug的D命令查看内存中的内容;
在debug模式中按下D命令,内存中的内容如下所示:
继续输入d命令,如下:
思考2:两次输入d命令,显示的内容有什么关联吗?
在第二次使用d命令的时候,查看的是第一次d命令查看内容的后面8位。
即两次d命令查看的内容是相邻的
指定地址的方式查看内存:
思考3:能指定开始和结束吗?怎么做?
能
3:用Debug的E命令改写内存中的内容;
在上图的基础上,改变1000:0100至0103的内容为01,02,03,04,如下图所示:(提示:键入e空格1000:0100空格01空格02空格03空格04回车)
键入d命令查看修改的结果:
从键盘键入如下
这种方式可以逐个修改内存数据,若输入01空格
3c表示原本1000:0100中的数据,输入01是将要改写的内容;5d表示原本1000:0101中的数据…回车可让改写结束。输入d命令查看改写的内容。
4:用Debug的U命令将内存中的机器指令翻译成汇编指令
下面是从13d2:011a处到13d2:011f处的汇编指令,如下:
5: 小测试
1> 用D命令查看073f:0110处的内存
2> 用E命令改写073f:0110处的内存为
47 4F 4F 44 20 53 54 55 44 59 20
3> 用D命令查看073f:0110处16个字节的内存
截图如下:
思考4:第3步中用D命令查看内存,最右边显示了什么?
4> 073f:0110处内存的物理地址是多少?请用不同的段基址和偏移地址查看此处内存情况
段地址左移4位(就是乘以4次2),空出补0,就成了20位,再加上偏移地址就是物理地址
物理地址=073fH*16+0110H= 073F0+0110H=07500H
截图如下:
思考5:073f:0110对应的地址还有哪些段基址和偏移地址的组合形成?
段地址左移4位(段地址四位的时候直接在后面补0)然后加上偏移地址就是物理地址
段地址 偏移地址
074f 0010
0750 0000
四、 实验总结
明白了一个很重要的知识点:段地址左移4位(段地址四位的时候直接在后面补0)然后加上偏移地址就是物理地址