实验二

汇编第三章总结(我认为重要的)

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)思考

 

我不会,我是个没有悟性的无知少年......

实验总结

通过实验一更能明白修改栈段寄存器指令时,下一条指令也被执行

这次实验让我看清了自己,鞠躬,谢谢大家

原文地址:https://www.cnblogs.com/fengmian/p/9865174.html