实验目的:
1.熟练掌握使用debug工具编写和调试汇编命令的方法;
2.理解并掌握内存中多字节数据的存放;
3.理解并掌握【栈】内存空间的特性和使用;
4.理解并掌握8086汇编指令 mov,add,sub,push,pop的用法。
实验步骤:
p74(1)
下图为书上实验没修改数据之前所得到的结果,有错误还希望大家指正!!!
根据实验二的要求,在使用-a进行调试之前,使用-e命令修改内存单元,如下图所示
注:因为之前修改完之后不小心cls清了一下屏,所以0021:0~0021:7的默认值就不为0
接下来就按照树上的语句利用-a进行调试
接下来利用-t反汇编命令查看修改结果
直接展示最后修改后的结果
p74(2)
第一次反汇编后
第二次反汇编后
回答: mov sp,10应该是在mov ss,ax之后执行,也就是说在执行完mov ss,ax这条命令之后,mov sp,10也紧接着被执行了。一般来说在使用-t进行反汇编时,会执行完一条命令后自动停止执行下一条命令,但是-t mov ss,ax并没有做到这一点。
实验总结:
1.栈的概念:SS:SP(SS:段寄存器 SP:寄存器)任意时刻,SS:SP指向栈顶元素;
2.关于栈的数据存放:数据存入时以小端法存入,通过修改sp指令来修改数据存放的位置;
3.push和pop操作:push是将数据存入栈 pop是将栈中的数据弹出。