• 实验二


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

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

     

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

    实验总结

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

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

  • 相关阅读:
    确定比赛名次
    What Are You Talking About
    小兔的棋盘
    How Many Answers Are Wrong
    备份当前的ubuntu系统生成iso
    eclipse导入maven项目有时出现web.xml is missing的问题
    eclipse自动添加版权信息
    javac不是内部或外部命令
    linux目录权限
    python import error:no module named yaml
  • 原文地址:https://www.cnblogs.com/fengmian/p/9865174.html
Copyright © 2020-2023  润新知