汇编实验二 用机器指令和汇编指令编程

实验二  用机器指令和汇编指令编程

任务一:

1)用E命令将内存单元00210~00217连续8个字节数据修改为30H31H32H33H34H35H36H37H

2)用A命令输入汇编指令:

3)用T命令单步执行:

在用T命令执行MOV SSAX时,它的下一条指令MOV  SP0100同时执行。

4)填写书上内容: 

任务二:

观察如图实验过程,分析为什么20000~2000f中的内容会发生改变。

任意时刻,SS:SP指向栈顶元素,初始时栈为空。初始时,栈顶为0B39FFEE,前三行命令为栈空间的初始化,T命令执行MOV SSAX修改SS的值,MOV SP10为修改SP的值,修改后安排2000:0000~2000:000F为栈空间,初始化栈顶,然后在栈中压入两个数据。执行之后栈顶为20000010,栈底为20000000

实验总结

 本次实验我了解了使用debug 工具编写和调试汇编命令的方法,对内存中多字节数据的存放有了初步了解。也知道了栈空间先进后出的特性。本次实验主要讲了SS(栈段寄存器)和SP(栈指针寄存器)的值的修改以及内存单元的访问,压栈和出栈的实现方法,同时是实验一的复习使用。

压栈和出栈:

压栈:sp先减2,然后将数据按小端存入存储单元。

出栈:先将sssp当前所指向的地址中的数据赋值给指定的寄存器,然后将sp2

8086 汇编指令 mov, add, sub, push, pop 的用法:

mov   寄存器 ,数据 /寄存器/内存单元      改变寄存器或内存中的内容(其他形式MOV 内存单元,寄存器/数据(段寄存器,寄存器))

add    寄存器,数据/寄存器/内存单元或add  内存单元,寄存器      把内存或寄存器中的内容相加

sub    寄存器,数据/寄存器/内存单元或sub  内存单元,寄存器     将内存或寄存器中的内容相减

pushpop分别对应出栈和入栈的功能,形式如下:

push 寄存器/段寄存器/内存单元     将寄存器/段寄存器/内存单元中的数据入栈

pop  寄存器/段寄存器/内存单元     出栈,用寄存器/段寄存器/内存单元接收出栈数据

猜你喜欢

转载自www.cnblogs.com/ljzww/p/9862933.html
今日推荐