汇编学习之实验1

汇编语言-实验1


一、 实验目的

学会怎样进入DOS、Windows提供的实模式程序的调试方式,掌握Debug常见指令的使用。

二、 实验内容

请完成实验,并回答思考题、完成要求的截图

1:用Debug的R命令查看、改变CPU寄存器的内容;

wpsED1D.tmp

2:用Debug的D命令查看内存中的内容;

wpsED1E.tmp

3:用Debug的E命令改写内存中的内容;

wpsED1F.tmp

4:用Debug的U命令将内存中的机器指令翻译成汇编指令;

wpsED20.tmp

5:小测试

三、 实验过程和结果

注意:debug下默认十六进制

1:用Debug的R命令查看、改变CPU寄存器的内容;

首先在运行cmd指令,然后在运行框中输入debug进入debug编辑模式,再用R命令查看CPU寄存器内容,如下所示:

wpsED21.tmp

接下来改变AX的值为1010,如下图所示:

wpsED22.tmp

查看:

wpsED33.tmp

思考1:最后一行13d2:0100是什么?

CS:IP

2:用Debug的D命令查看内存中的内容;

在debug模式中按下D命令,内存中的内容如下所示:

wpsED34.tmp

继续输入d命令,如下:

wpsED35.tmp

思考2:两次输入d命令,显示的内容有什么关联吗?

在第二次使用d命令的时候,查看的是第一次d命令查看内容的后面8位。

即两次d命令查看的内容是相邻的

指定地址的方式查看内存:

wpsED36.tmp

思考3:能指定开始和结束吗?怎么做?

wpsED37.tmp

3:用Debug的E命令改写内存中的内容;

在上图的基础上,改变1000:0100至0103的内容为01,02,03,04,如下图所示:(提示:键入e空格1000:0100空格01空格02空格03空格04回车)

wpsED38.tmp

键入d命令查看修改的结果:

wpsED39.tmp

从键盘键入如下

wpsED3A.tmp

wpsED3B.tmp

这种方式可以逐个修改内存数据,若输入01空格

wpsED3C.tmp

3c表示原本1000:0100中的数据,输入01是将要改写的内容;5d表示原本1000:0101中的数据…回车可让改写结束。输入d命令查看改写的内容。

wpsED4C.tmp

4:用Debug的U命令将内存中的机器指令翻译成汇编指令

wpsED4D.tmp

下面是从13d2:011a处到13d2:011f处的汇编指令,如下:

wpsED4E.tmp

5: 小测试

1> 用D命令查看073f:0110处的内存

wpsED4F.tmp

2> 用E命令改写073f:0110处的内存为

47  4F  4F  44  20  53  54  55  44  59  20

wpsED50.tmp

3> 用D命令查看073f:0110处16个字节的内存

截图如下:

wpsED51.tmp

思考4:第3步中用D命令查看内存,最右边显示了什么?

wpsED52.tmp

4> 073f:0110处内存的物理地址是多少?请用不同的段基址和偏移地址查看此处内存情况

段地址左移4位(就是乘以4次2),空出补0,就成了20位,再加上偏移地址就是物理地址

物理地址=073fH*16+0110H= 073F0+0110H=07500H            

截图如下:

wpsED53.tmp

思考5:073f:0110对应的地址还有哪些段基址和偏移地址的组合形成?

段地址左移4位(段地址四位的时候直接在后面补0)然后加上偏移地址就是物理地址

段地址 偏移地址

074f      0010

0750      0000

四、 实验总结

明白了一个很重要的知识点:段地址左移4位(段地址四位的时候直接在后面补0)然后加上偏移地址就是物理地址

猜你喜欢

转载自www.cnblogs.com/yinbiao/p/9212760.html
今日推荐