汇编实验2和3

Posted kerman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编实验2和3相关的知识,希望对你有一定的参考价值。

  很久没更了,忙+懒。。。难受。

实验2

(1)首先写如下的汇编指令:

技术分享图片

下面要求写出各个寄存器的值,这里直接在图中表示,不在给出。

技术分享图片

技术分享图片

这里可以看到ss是2200且sp开始为0100因为开始修改了它们的值,故修改的内存地址都是SS:SP,另外栈

内的内容也两种方式来给出。第一种直接分析可得push ax ,push bx,即把ax和bx寄存器中的值推到栈内由图

可知分别为c0fc,6021。另一种就是直接利用d命令进行查看,如图可知push [4]和 push [6] 修改的值分别为30f0, 2f31(注意这里是小端法表示):

技术分享图片

(2)

输入以下汇编指令:

技术分享图片

技术分享图片

这里明显可以看出经过t命令之后用d命令查看栈所在的ss地址的内容发现被修改,里面有一段内容为cs:ip的值,

即t命令所执行所需要的汇编指令的内存地址, 但前面还有一段内容并不知道是什么东西。

实验3

将代码写入后进行编译链接形成.exe文件:

技术分享图片

技术分享图片

然后进行单步调试,这里注意在int 21这里直接用p命令,因为int 21为系统函数,并不是我们需要进入查看的,也不是我们关心的。

而各个寄存器的值也全在图中,这里也就不写出了。

技术分享图片

技术分享图片

技术分享图片

技术分享图片

后面查看psp的值, 和代码段公用一个起始地址。

技术分享图片

 

以上是关于汇编实验2和3的主要内容,如果未能解决你的问题,请参考以下文章

实验二 汇编命令(伪指令)实验

汇编实验二

汇编语言实验3

汇编实验5

汇编实验2和3

汇编实验9