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

Posted zr-1997

tags:

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

1.预备知识:Debug的使用

    注:详见书第71页。

2.实验任务

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

   mov  ax , ffff

   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内容为6462

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

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

   pop  bx                               ;sp=0100H  ;bx=6462

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

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

   具体的操作步骤见下图:

   a.先用e命令查看和修改,再用a命令输入以上程序

技术分享图片

  b.再用r和t命令分别执行

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

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

技术分享图片

通过观察图中的程序段,用a命令输入程序段后,在2000H内存段创建了一个栈结构,最大空间是10H,ss:sp指向了栈顶2000:10H(栈空),给ax赋值后压栈。在还未执行这段代码时,使用d命令观察2000:00内存,创建栈结构指向这段内存时,这里面就有了ax值等。当t命令执行程序时,CPU会将一些寄存器变量自动压到栈中,就包括了寄存器变量的值。

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

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

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

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

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

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

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