一、实验准备
为了便于验证实验结果,在实验任务中做了一定调整:
(1、在使用在使用 a 命令输入指令调试前,使用 e 命令将内存单元 0021:0 ~0021:7 连续 8 个字节数据修改为 30H, 31H, 32H, 33H,34H,35H,36H,37H。
使用d命令查看运行结果:
二、使用Debug将程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空
(1、将实验任务(1)中第 1 行的 mov ax, ffff → 改为 mov ax, 0021。
(2、使用r命令查看寄存器初始值
(3、用t命令逐条运行程序并填空
书上填空如下:
三、仔细观察图3.19中的实验过程,然后分析:为什么2000:0~2000:f中的内容会发生改变。
(1、按照书中代码段输入
(2、使用r命令查看寄存器初始值
(3、使用t命令逐条运行
前三条代码段的作用是设置栈段地址设为SS=2000H和栈顶的偏移地址SP=0010H。当对栈进行操作时,ss和sp随着入栈出栈的操作变化,会改变这一段内存单元的值。
四、总结
通过此次实验初步了解了栈内存的一些特点和使用理解 8086 汇编指令mov, add, sub, push, pop 的用法,切实体会到栈内存空间的复杂性,有关于栈方面的知识还需努力学习。