zoukankan      html  css  js  c++  java
  • 实验二 用机器指令和汇编指令编程

    1、预备知识:Debug的使用

    Debug在执行“d 1000:0”时,会将段地址送入ds中。

    Debug的命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行。

    2、实验任务

    补充: 为了便于验证实验结果,对「2. 实验任务」中的(1)做如下两点调整: 

    ① 在使用 a 命令输入指令调试前,使用 e 命令将内存单元 0021:0 ~0021:7 连续 8 个字节数据修改为 30H, 31H, 32H, 33H,34H,35H,36H,37H 

    ② 将 P74 实验任务(1)中第 1行的 mov ax, ffff → 改为 mov ax, 0021 

    ①使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运算情况填空。

    mov ax,0021

    mov ds,ax

    mov ax,2200

    mov ss,ax

    mov sp,0100

    mov ax,[0]                                            ;ax= 3130          

    add ax,[2]                                             ;ax= 6462            

    mov bx,[4]                                            ;bx= 3534            

    add bx,[6]                                             ;bx= 6C6A            

    push ax                                                ;sp= 00FE           ;修改的内存单元的地址是 2200:FE到FF 内容为   62       64                 

    push bx                                                ;sp= 00FC           ;修改的内存单元的地址是 2200:FC到FD 内容为   6A        6C                 

    pop ax                                                  ;sp= 00FE           ;ax=  6C6A              

    pop bx                                                  ;sp=0100            ;bx=   6462            

    push [4]                                                ;sp= 00FE          ;修改的内存单元的地址是  2200:FE到FF   内容为   34      35                

    push [6]                                                ;sp= 00FC          ;修改的内存单元的地址是  2200:FC到FD   内容为    36      37                

    实验数据请截图如下:

    本次实验的数据段和栈段的地址分别被赋值为0021,2200.首先执行指令使ax,bx,得到新数据6462,6c6a。然后将ax,bx数据,存入栈中。通过pop完成数据交换。最后通过push将数据段中0021:0004和0021:0006对应的数据存入段中。

    ②仔细观察图中的实验过程,然后分析:为什么2000:0~2000:f中的内容会发生改变。

     

     因为在用T命令执行mov ss,ax的时候,他的下一条指令mov sp,10也执行了。他是修改栈段寄存器ss的指令。

    也就是说一个T命令执行两条指令,mov ss,ax和mov sp,10.而mov sp,10是让安排2000:0000——2000:00

    0F为栈空间,初始化栈顶。所以2000:0000——2000:000f里面数据才会变.

  • 相关阅读:
    台州 OJ 3847 Mowing the Lawn 线性DP 单调队列
    洛谷 OJ P1417 烹调方案 01背包
    快速幂取模
    台州 OJ 2649 More is better 并查集
    UVa 1640
    UVa 11971
    UVa 10900
    UVa 11346
    UVa 10288
    UVa 1639
  • 原文地址:https://www.cnblogs.com/wangchuan-LC/p/9863587.html
Copyright © 2011-2022 走看看