汇编实验二 用机器指令和汇编指令编程
Posted ljzww
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编实验二 用机器指令和汇编指令编程相关的知识,希望对你有一定的参考价值。
实验二 用机器指令和汇编指令编程
任务一:
(1)用E命令将内存单元0021:0~0021:7连续8个字节数据修改为30H,31H,32H,33H,34H,35H,36H,37H。
(2)用A命令输入汇编指令:
(3)用T命令单步执行:
在用T命令执行MOV SS,AX时,它的下一条指令MOV SP,0100同时执行。
(4)填写书上内容:
任务二:
观察如图实验过程,分析为什么2000:0~2000:f中的内容会发生改变。
任意时刻,SS:SP指向栈顶元素,初始时栈为空。初始时,栈顶为0B39:FFEE,前三行命令为栈空间的初始化,T命令执行MOV SS,AX修改SS的值,MOV SP,10为修改SP的值,修改后安排2000:0000~2000:000F为栈空间,初始化栈顶,然后在栈中压入两个数据。执行之后栈顶为2000:0010,栈底为2000:0000。
实验总结
本次实验我了解了使用debug 工具编写和调试汇编命令的方法,对内存中多字节数据的存放有了初步了解。也知道了栈空间先进后出的特性。本次实验主要讲了SS(栈段寄存器)和SP(栈指针寄存器)的值的修改以及内存单元的访问,压栈和出栈的实现方法,同时是实验一的复习使用。
压栈和出栈:
压栈:sp先减2,然后将数据按小端存入存储单元。
出栈:先将ss:sp当前所指向的地址中的数据赋值给指定的寄存器,然后将sp加2。
8086 汇编指令 mov, add, sub, push, pop 的用法:
mov 寄存器 ,数据 /寄存器/内存单元 改变寄存器或内存中的内容(其他形式MOV 内存单元,寄存器/数据(段寄存器,寄存器))
add 寄存器,数据/寄存器/内存单元或add 内存单元,寄存器 把内存或寄存器中的内容相加
sub 寄存器,数据/寄存器/内存单元或sub 内存单元,寄存器 将内存或寄存器中的内容相减
push和pop分别对应出栈和入栈的功能,形式如下:
push 寄存器/段寄存器/内存单元 将寄存器/段寄存器/内存单元中的数据入栈
pop 寄存器/段寄存器/内存单元 出栈,用寄存器/段寄存器/内存单元接收出栈数据
以上是关于汇编实验二 用机器指令和汇编指令编程的主要内容,如果未能解决你的问题,请参考以下文章