debug简单指令学习

来源:互联网 发布:淘宝整套模板 编辑:程序博客网 时间:2024/05/23 13:03

1.传送指令mov

   

图1.1   cl←4,字节传送


图1.2   dx←00ffh,字传送


图1.3   si←0200h,字传送


图1.4   ah←al

2.交换指令XCHG

图2   ax=1199h变成ax=9911h

3.换码指令

图3.1   将首地址为400H的表格中的三号数据(假设为46H)取出


图3.2 不知道如何得出的结果后,再输入另一组数据进行验证


图3.3  通过查找主存中的数据,发现规律,原来xlat是由【bx+al】寻址得出

4.堆栈操作



图4   堆栈操作指令push、pop

应注意sp数据的变换,push时sp+2 ,pop时sp-2

5.地址传送指令

图5.1   有效地址的获取

注:bx+si+0f62=139E,lea传送的是地址而非地址中的数据


图5.2  用mov去传送时,传送的是139e中的数据

6.加法和减法指令

图6.1   加法和减法

图6.2   无符号双字加法和减法

图6.3 求补运算

7.符号扩展指令

图7.1   cbw符号扩展,al符号扩展成ax

图7.2 cwd符号扩展,ax符号扩展成dx

8.乘法和除法指令

图8.1   字节数据乘法:A5H*64H

图8.2   字数据除法:40003H/8000H

9.逻辑运算指令

图9   逻辑运算

10.移位指令

图10.1   数据位移

11.控制转移类指令

图11 采用jz指令,避免add指令改变ax

五、分析与讨论

为何先进先出也可以??

 

通过这次实验,慢慢的可以让自己提出问题来,问题是很多的,通过验证加上自己的理解还是会解决出很多问题。认真看一遍课本是关键,能把基本概念理清楚,一通就百通了。

这次实验就是堆栈的问题,在上图其实没有相通为何堆栈是遵循“先进后出”,可是实验指令执行“先进先出”也能够实现。观察指针sp也遵循加减2原则,这些观察让我对这些指令印象更加深刻。



0 0
原创粉丝点击