zoukankan      html  css  js  c++  java
  • 汇编语言(王爽)实验三 编程、编译、连接、跟踪

    (1)将下面程序保存为t1.asm,生成可执行文件t1.exe。

    assume cs:codesg
    
    codesg segment
       mov ax,2000H
       mov ss,ax
       mov sp,0
       add sp,10
       pop ax
       pop bx
       push ax
       push bx
       pop ax
       pop bx
    
       mov ax,4c00H
       int 21H
    
    codesg ends
    
    end

    (2)用debug跟踪t1.exe的执行过程,写出每一步执行后,相关寄存器中的内容和栈顶内容。
     step 0:通过debug t1.exe加载程序后:

    ax=0000H;bx=0000H;

    cx=0016H(表示程序长度,为22个字节);

    ds=13D5H(表示操作系统给t1.exe分配的空闲区域的段地址);

    cs=13e5H(=ds+10H,与之前描述一致);

    ss=13e5H,sp=0000H;通过d 13e5:0 1命令查看栈顶内容,为00b8H;

    step1:单步执行第一条指令后:

    ax=2000H;bx=0000H;

    其余cx,ds,cs,ss,sp均不变;

    此时栈顶内容理应不变,查看依旧为00b8H;

    step2:单步执行第二条指令后,自动连带执行第三条指令:

    ax=2000H;bx=0000H;

    其余cx,ds,cs均不变;ss和sp被重置,栈顶指向:2000:0,查看栈顶内容,为:0ff1H;

    step3:单步执行第四条指令后:

    ax=2000H;bx=0000H;

    其余cx,ds,cs,ss均不变;sp被重置,栈顶指向:2000:0a,查看栈顶内容,为:615fH;

    step4:单步执行第五条指令后:

    ax=615fH(与上一步所得一致);bx=0000H;

    其余cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0c,查看栈顶内容,为:0DF0H;

    ----------因重新debug,导致前后ax不一致-----------

    step5:单步执行第六条指令后:

    ax=13e5H;bx=0DF0H(与上一步所得一致);

    其余cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0E,查看栈顶内容,为:0B16H;

    step6:单步执行第七条指令后:

    ax=13e5H;bx=0DF0H;

    其余cx,ds,cs,ss均不变;sp=sp-2,栈顶指向:2000:0C,查看栈顶内容,为:13E5H(与AX一致);

    step7:单步执行第八条指令后:

    ax,bx,cx,ds,cs,ss均不变;sp=sp-2,栈顶指向:2000:0A,查看栈顶内容,为:0DF0H(与BX一致);

    step8:单步执行第九条指令后:

    ax=0DF0H(与上步查看一致);

    bx,cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0C,查看栈顶内容,为:13E5H;

    step9:单步执行第十条指令后:

    bx=13E5H(与上步查看一致);

    ax,cx,ds,cs,ss均不变;sp=sp+2,栈顶指向:2000:0E,查看栈顶内容,为:0B16H;

    (3)PSP头两个字节为CD 20,用debug加载t1.exe.查看PSP内容:

    PSP区域地址范围为:ds:0~ds:ff.

  • 相关阅读:
    我知道开发已经接近于成功了
    反射获取运行时属性值的替代方法
    Fix Visual Studio 2013 Razor CSHTML Intellisense in Class Library or Console Application
    领域模型
    UI设计心得
    ADO.NET EF 中的实体修改方法
    .net与com组件
    win8设置开机启动项
    编程架构
    禁止UITextField 使用粘贴复制功能
  • 原文地址:https://www.cnblogs.com/tsembrace/p/3223419.html
Copyright © 2011-2022 走看看