zoukankan      html  css  js  c++  java
  • 汇编语言之实验二

    实验2 用机器指令和汇编指令编程 

    (1)使用DEBUG,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。 

    e 0021:0  0021:7  30H,31H,32H,33H,34H,34H,35H,36H,37H

    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= 00FEH ,修改的内存单元地址是 2200:00FE 内容为 6462H

    push bx       ;sp= 00FCH ,修改的内存单元地址是 2200:00FC 内容为 6c6AH

    pop ax        ;sp= 00FEH ,ax= 6c6AH

    pop bx        ;sp= 0100H ,bx= 6462H

    push [4]      ;sp= 00FEH ,修改的内存单元地址是 2200:00FE 内容为 3534

    push [6]      ;sp= 00FCH ,修改的内存单元地址是 2200:00FC 内容为 3736

    以上是实验指令执行后结果

    按照要求输入指令,使用a指令输入。

     逐条执行,执行后,根据执行后寄存器内容,填写

     

     

     

    实验2 用机器指令和汇编指令编程 

    (2)仔细观察图3.19中的实验过程,然后分析:为什么2000:0~2000:F中的内容会发生改变? 

    输入指令

     执行

     

    之前逐条执行查看2000:0~2000:f 单 元值的变化,发现是当执行mov ss,ax  mov sp,10两个指令时,改变内存单元值

    实验二的预备知识里面有这一块的知识,关于中断机制,Debug的T命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行。

    后来查找资料,得知中断过程使用当前栈空间存放cpu关键数据,所以,你的栈里就有些不是所操作的数据。 

  • 相关阅读:
    关于JAVA的线程问题
    Java 对JTextField添加回车响应
    Failed to install *.apk on device 'emulator-5554': timeout .
    静态属性
    类与对象的实例属性

    面向对象2
    面向对象设计
    re模块,主要用来查询
    xml对标签操作,
  • 原文地址:https://www.cnblogs.com/bowentianxia/p/9867913.html
Copyright © 2011-2022 走看看