【汇编语言】(王爽著第三版)实验二

时间:2022-05-06 01:26:46

实验二

实验任务(一)

实验前要求我们将书本P74的程序段按理论分析,将结果进行填空。之后用Debug,将该程序段写入内存,逐条执行之后,

根据指令执行后的实际运行的结果填空如下。

 

mov ax,0021

 

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命令将内存单元0021:0~0021:7连续8个字节数据修改为30H,31H,32H,33H,34H,35H,36H,37H,最后用D命令查看是否正确。

【汇编语言】(王爽著第三版)实验二

接着我们再使用a指令去调试每一步的指令

【汇编语言】(王爽著第三版)实验二

 

 【汇编语言】(王爽著第三版)实验二

 

 【汇编语言】(王爽著第三版)实验二

 

 【汇编语言】(王爽著第三版)实验二

 

 【汇编语言】(王爽著第三版)实验二

实验任务(二)

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

【汇编语言】(王爽著第三版)实验二

 

单步执行调试,并且每步调试后都用d命令查看2000:0~2000:f的值:

 【汇编语言】(王爽著第三版)实验二

【汇编语言】(王爽著第三版)实验二

【汇编语言】(王爽著第三版)实验二

从中我们发现前三行的指令的功能为:把0~2000:f这段空间当做栈段,初始化栈顶

mov sp,0010H   :设置栈顶的偏移地址,栈为空,sp=0010H

栈顶为2000:0010,栈底为2000:000E

小结

在完成实验的过程中,由于操作不熟练经常出现失误,例如多敲回车。。(输完一行总是情不自禁敲一个回车)每周如果只花课堂上一节课的时间去学习汇编,好像是真的不可能学好的。课外还需要自己学习。这一章实验依旧花了很久时间,自己思考的也不够,继续努力吧。