检测点3.1,3.2

《汇编语言第三版》王爽著  ------读书笔记 

检测点 3.1

 

答:

 

1)

DS=1,

[0]   ==   0001:0000  == 0000:0010

[1]   ==   0001:0001  == 0000:0011

扫描二维码关注公众号,回复: 12859741 查看本文章

[2]   ==   0001:0002  == 0000:0012

[4]   ==   0001:0004  == 0000:0014

[c]   ==   0001:000c ==0000:001C

 

执行完后:

 

 AX = 26 62H

  BX  =  E6 26H

  AX =   E6 26H

  AX =   26 62H

  BX =   D6 E6H

  AX =   FD 48H

  AX =   2C 14H

  AX =   00 00H

  AX =   00 E6H

  BX =   00 00H

  BX =   00 26H

  AX =   00 1CH

 

2)

     CS:IP  2000:0000

   mov ax, 6622H

       jmp 0ff0:0100     ; jmp 10000:0000      

      mov ax, 2000H

      mov ds,ax

      mov ax,[0008]

      mov ax,[0002]

 

  mov ax, 6622H  CS:IP 2000:0003        ax = 6622H

 

     jmp 0ff0:0100    CS:IP 2000:0008  -->10000:0000  (IP的值改变两次)

    

    mov ax, 2000H   CS:IP 1000:0003       ax = 2000H

  

    mov ds,ax           CS:IP 1000:0005       ds = 2000H

  

   mov ax,[0008]     CS:IP  1000:0008      ax = C3 89H

  

   mov ax,[0002]     CS:IP  1000:000B      ax = EA 66H

 

  ③

       数据和程序在内存中没有区别,均为以二进制形式存放的一组数据,

     被CS:IP所指向的为程序指令,未被CS:IP指向的则为数据

注:jmp指令执行后,IP值改变了两次,

    调试中,Debug T命令单步执行时,修改寄存器SS的指令不会显示执行,其内部已经执行,下一条指令紧跟着被执行

  当寄存器的低位和低位之间进行运算时,若超出存储的范围,进位后直接丢弃,不会存储到高位  如:ADD AL,BL

检测点 3.2(栈:先进后出)

  1)1000H~1000FH区间作数据段,20000H~2000F区间作栈,数据段的数据【0】...[E]

    依次压入栈即逆序复制 

   mov ax,2000H

   mov ss,ax

   mov sp,10H

  2)1000H~1000FH区间作栈,20000H~2000F区间作数据段,栈中的数据依次弹出

      即逆序复制 

   mov ax,1000H

   mov ss, ax

   mov sp, 10H

 

猜你喜欢

转载自blog.csdn.net/weixin_43495262/article/details/114485543
3.1