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

Posted yangpengassembly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验 2 用机器指令和汇编指令编程相关的知识,希望对你有一定的参考价值。

实验结论

实验任务(1)

1.使用 e 命令修改 0021:0~0021:f 数据,及修改后查看是否正确写入的操作

技术分享图片

2.使用 a 命令输入指令

技术分享图片

3.每一行指令单步调试

技术分享图片技术分享图片技术分享图片

4.指令执行后各个寄存器存值情况

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,内容为3130H

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

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,内容为6C6AH

5.发现:在执行"mov ss,ax"后,直接执行了“mov ax,[0]”,跳过了“mov sp,0100”。

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

 

实验任务(2)

1.使用 a命令输入7行指令,使用 e 命令修改 2000:0~2000:f 的值,查看修改后的部分

技术分享图片

mov ax,2000;    将数字2000H存入寄存器ax中

mov ss,ax;         将存在寄存器ax中的数字2000H存入栈段寄存器ss中

mov sp,10;         将数字10H存入栈地址寄存器sp中

初始栈顶为2000:0010,初始栈底为2000:0010。

2.单步调试每一行汇编指令,且每一条指令单步调试后,都使用 d 命令查看2000:0~2000:f 的值

技术分享图片技术分享图片技术分享图片

执行“mov ss,ax”后,内存2000:0到2000:f中的值变了后9个,之后每执行一条指令,内存2000:0到2000:f中的值变化量增加一个。

 

总结与体会

  通过本次实验,我基本了解了栈的原理和基本操作。同时,我还发现了:Debug的T命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行。

 

以上是关于实验 2 用机器指令和汇编指令编程的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

汇编语言实验1 查看CPU和内存,用机器指令和汇编指令编程

[汇编语言]实验一:查看CPU和内存,用机器指令和汇编指令编程。