实验二
汇编第三章总结(我认为重要的)
1. 2个内存单元=1个字
4E20H的地位字节存放在0号单元中,高位字节存放在1号单元中
2. 将起始地址为N的字单元简称为N地址字单元
3. Mov 寄存器名,内存单元地址
4.段地址默认放在DS中,注意:不支持将数据直接放入段寄存器的操作,DS存放数据段的段地址
5.栈:一种具有特殊的访问方式的存储空间,最后进入这个空间的数据,最先出去
6.栈的2个基本操作:入栈和出栈
入栈:将一个新元素放到栈顶
出栈:从栈顶取出一个元素 LIFO
7.Push ax 将寄存器ax中的数据送入栈中
Pop ax 从栈顶取出数据送入ax
注意:入栈和出栈的操作都是以字为单位
8.任意时刻 SS:SP指向栈顶元素
9.pop操作前的栈顶元素仍然存在,但是他已经不在栈中了
10.debug的T命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行
实验内容
(1)程序填空
第一步:用e命令修改内存单元的值并且用d命令进行查看是否成功
第二步:用a命令写入指令
(1)利用ax寄存器进行中转对段寄存器进行赋值
(2)一系列操作
第三步:用t命令进行一步一步的执行
实验的数据为
mov ax,0021
mov ds,ax
mov ax,2000
mov ss,ax
mov sp,0100
mov ax,[0] ;ax=3130H
add ax,[2] ;ax=6462H
mov bx,[4] ;bx=3534H
add bx,[6] ;bx=6C6AH
push ax ;sp=00FEH; 修改内存单元地址是2200:FE,内容为6462H
push bx ;sp=00FCH; 修改内存单元地址是2200:FC,内容为6C6AH
pop ax ;sp=00FEH;ax=6C6AH
pop bx ;sp=0100H;bx=6462H
push [4] ;sp=00FEH; 修改内存单元地址是2200:FE,内容为3534H
push [6] ;sp=00FCH; 修改内存单元地址是2200:FC,内容为3736H
(2)思考
我不会,我是个没有悟性的无知少年......
实验总结
通过实验一更能明白修改栈段寄存器指令时,下一条指令也被执行
这次实验让我看清了自己,鞠躬,谢谢大家