汇编语言实验二

1.使用Debug将下面的程序写入内存,逐条执行(见1-1),根据指令执行后的实际情况填空(见1-2)

p.s. 已经按实验要求将使用 e 命令将内存单元 0021:0 ~0021:7 连续 8 个字节数据修改为 30H, 31H, 32H, 33H,34H,35H,36H,37H  ,

将第 1行的 mov ax, ffff → 改为 mov ax, 0021 

(1-1  e+d)

(1-1 a+r)

(1-1 t)

在用E命令改写内存中的内容并且用A命令依次将程序段写入内存后,用D命令查看内存中的内容,R命令查看寄存器中的内容,T命令逐行执行,根据观察到的填空所需的各值后,完成(1-2)

(1-2)

我的答题方法可能有点“强答”“凑答案”哈,因为我不知道啥是啥,譬如说找“push ax;sp=__”,修改的内存单元地址就去这段命令的sp里找,内容就去ax里找,“push [4,sp=__”,修改的内存单元地址去sp里找,内容去这段命令最后找DS:XXX里的XXX便是。

2.为何下图中2000:0~2000:f中的内容会发生改变

使用T命令单步追踪之后,没有看懂,因为一些基本的概念我是不知道的,所以选择先保存着,知道了再重新编辑。

王爽第二版《汇编语言》

“因为在debug使用T等指令引发了中断造成的,中断过程使用当前栈空间存放cpu关键数据,所以,你的栈里就有些不是你操作的数据了。”

》总结与体会

由于基本的概念不清楚,导致实验的失败,所以我意识到了我之前学习方法是存在很大问题的。其实不单是学习方法这方面的问题,看了班级里别的同学做的博客,我觉得我做的真的是很糙了,就是简单的截屏+抄一下题目+附上答案,我理念似乎一直都是差不多就行,差不多吧。

最后再补充以下三点

猜你喜欢

转载自www.cnblogs.com/caiweining/p/9860351.html