第三章 实验
实验结论
实验任务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指令时,会把要修改的指令存入栈中,为什么呢?这样的机制作用是什么?(尚存疑惑,谢谢解答)