GitHub

第三章 实验

实验结论

实验任务1

(1)使用 e 命令修改 0021:0~0021:f 数据,修改后查看是否正确写入,使用 a 命令输入指令。

(2)每一行指令单步调试

 

(3)指令执行后各个寄存器填空结果

将内存单元2200:00FE和2200:00FC的内存单元的值进行了交换

在t命令执行过程中,没有看到命令mov sp 0100 ,是因为在T命令执行mov ss,ax时,下一个指令mov sp,0100 也紧接着执行了

 

实验任务2

(1)使用 a 命令输入的 7 行指令,使用 e 命令修改 2000:0~2000:f 的值

 

 

2)单步调试每一行汇编指令,使用 d 命令查看2000:0~2000:f 的值

汇编指令前三行的作用是修改段寄存器SS和寄存器SP,即修改栈顶的段地址和偏移地址  mov sp,10修改偏移地址,任意时刻SS:SP指向栈顶元素,则初始的栈顶元素为0,栈底元素也为0

观察总结

1.在修改SS:SP和执行多个mov ax相关指令时,内存单元2000:0到2000:F中都发生了变化,而且栈中元素的值的变化均是CS和IP的值。

2.在未执行push ax 命令之前,3123已经出现在了内存单元2000:0到2000:F中,执行过后内存单元2000:0到2000:F中出现两个3132

3.在执行mov ax,3366后,3132和3366也同时出现在内存单元2000:0到2000:F中,执行push ax之后只剩下3366,出现两个3366一个3132

大胆推测:

  在执行mov指令修改栈顶段地址和偏移地址时,会把CS和IP的值存入栈中,修改寄存器的值时,也会把要修改的值存入栈中。

总结与体会

1.在第一个实验中,t命令执行过程中,没有看到命令mov sp 0100,mov ss,sx  mov ss,[0]   pop ss  均会发生状况,他们有一个共性,他们都是修改栈段寄存器的SS的指令  → 原因:中断机制

        中断机制是现代计算机系统中的基本机制之一,它在系统中起着通信网络的作用,以协调系统对各种外部事件的响应和处理,中断是实现多道程序设计的必要条件,中断是CPU 对系统发生的某个事件作出的一种反应。引起中断的事件称为中断源。中断源向CPU 提出处理的请求称为中断请求。发生中断时被打断程序的暂停点称为断点。CPU暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。中断的实现由软件和硬件综合完成,硬件部分叫做硬件装置,软件部分称为软件处理程序(摘自  《百度百科》)

2.如果推测正确,在执行mov指令时,会把要修改的指令存入栈中,为什么呢?这样的机制作用是什么?(尚存疑惑,谢谢解答)

posted @ 2018-10-23 17:29  繁华似锦觅安宁  阅读(212)  评论(1编辑  收藏  举报