很久没更了,忙+懒。。。难受。
实验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的值, 和代码段公用一个起始地址。
原文地址:https://www.cnblogs.com/kerman/p/9857217.html
时间: 2024-10-14 23:12:25