• 《IBM —PC 汇编语言程序设计》 第三章习题


    寻址方式PPT
     

     
     
     
     
     
     
     
     
     
     
     
     
     
    1 给定 (BX)=637DH ,(SI)=2A9BH ,位移量 D=7237H ,试确定在以下各种寻址方式下的有效地址是什么?(有效地址也是偏移量EA)
    (1) 立即寻址
    (2) 直接寻址
    (3) 使用 BX 的寄存器寻址
    (4) 使用 BX 的间接寻址
    (5) 使用 BX 的寄存器相对寻址
    (6) 基址变址寻址
    (7) 相对基址变址寻址
     
    答:
    (1) 操作数在指令中,即立即数;
    (2) EA=D=7237H ;
    (3) 无 EA ,操作数为 (BX)=637DH ;
    (4) EA=(BX)=637DH ;
    (5) EA=(BX)+D=0D5B4H;
    (6) EA=(BX)+(SI)=8E18H ;
    (7) EA=(BX)+(SI)+D=1004FH;超过了段的边界,最高进位位丢失,因此EA=004FH 。

    2 试根据以下要求写出相应的汇编语言指令
    (1) 把 BX 寄存器和 DX 寄存器的内容相加,结果存入DX 寄存器中。
    (2) 用寄存器 BX 和 SI 的基址变址寻址方式把存储器中的一个字节与AL 寄存器的内容相加,并把结果送到 AL 寄存器中。
    (3) 用寄存器 BX 和位移量 0B2H 的寄存器相对寻址方式把存储器中的一个字和(CX) 相加,并把结果送回存储器中。
    (4) 用位移量为 0524H 的直接寻址方式把存储器中的一个字与数2A59H 相加,并把结果送回存储单元中。
    (5) 把数 0B5H 与 (AL) 相加,并把结果送回AL 中。
     
    答:
    (1) ADD DX, BX
    (2) ADD AL, [BX][SI]
    (3) ADD 0B2H[BX], CX
    (4) ADD WORD PTR [0524H], 2A59H    (WORD PTR相当于指定一个字)
    (5) ADD AL, 0B5H

    3 写出把首地址为BLOCK 的字数组的第 6 个字送到 DX 寄存器的指令。要求使用以下几种寻址方式:
    (1) 寄存器间接寻址
    (2) 寄存器相对寻址
    (3) 基址变址寻址
    答:
    (1) MOV BX, OFFSET BLOCK
          ADD BX, (6 – 1)*2
          MOV DX, [BX]
     
    补充OFFSET的用法:
     
    (2) MOV  BX, OFFSET  BLOCK      改为:MOV  BX, (6-1)*2
         MOV  DX, [BX+(6 –1)* 2]            也可  MOV  DX, BLOCK[BX]
     
    (3) MOV  BX, OFFSET  BLOCK
         MOV   SI, (6–1)* 2
         MOV   DX, [BX][SI]

    4.现有 (DS)=2000H ,(BX)=0100H ,(SI)=0002H ,(20100H)=12H , (20101H)=34H ,(20102H)=56H ,(20103H)=78H ,(21200H)=2AH , (21201H)=4CH,(21202H)=B7H ,(21203H)=65H ,试说明下列各条指令执行完后 AX 寄存器的内容。
     
    (1) MOV  AX, 1200H
    (2) MOV  AX, BX
    (3) MOV  AX, [1200H]
    (4) MOV  AX, [BX]
    (5) MOV  AX, 1100[BX]
    (6) MOV  AX, [BX][SI]
    (7) MOV  AX, 1100[BX][SI]
     
    答:
    (1) (AX)=1200H
    (2) (AX)=0100H
    (3) (AX)=4C2AH
    (4) (AX)=3412H
    (5) (AX)=4C2AH
    (6) (AX)=7856H
    (7) (AX)=65B7H

    5. 给定 (IP)=2BC0H ,(CS)=0200H ,位移量 D=5119H ,(BX)=1200H ,(DS)=212AH ,(224A0H)=0600H , (275B9H)=098AH ,试为以下的转移指令找出转移的偏移地址。
    (1) 段内直接寻址
    (2) 使用 BX 及寄存器间接寻址方式的段内间接寻址
    (3) 使用 BX 及寄存器相对寻址方式的段内间接寻址 
    答: (1) JMP NEAR PTR 5119H ;(IP)=5119H+((IP)+03H)=7CDCH ,物理地址 PA=09CDCH (IP)+03H 是 JMP NEAR PTR 5119H 指令的下一条指令的首地址。 (2) JMP WORD PTR [BX] ;(IP)=((DS)*10H+(BX))=0600H ,PA=02600H (3) JMP D[BX] ;(IP)=((DS)*10H+(BX)+D)=098AH ,PA=0298AH

    6.设当前数据段寄存器的内容为 1B00H,在数据段的偏移地址 2000H 单元内,含有一个内容为 0FF10H 和 8000H 的指针,它们是一个 16 位变量的偏移地址和段地址,画图表示出来。 

    7.在 0624H 单元内有一条二字节 JMP SHORT OBJ 指令,如其中位移量为 (1) 27H,(2) 6BH,(3) 0C6H,试问转向地址 OBJ 的值是多少?

    答: (1) OBJ=0624H+02H+27H=064DH

      (2) OBJ=0624H+02H+6BH=0691H

      (3) OBJ=0624H+02H+0C6H=05ECH ;C6H 对应的负数为 -3AH (向上转移,负位移量)


    8.假定 (DS)=2000H ,(ES)=2100H ,(SS)=1500H,(SI)=00A0H ,(BX)=0100H ,(BP)=0010H ,数据段 中变量名 VAL 的偏移地址为 0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值 是多少?

    (1) MOV  AX, 0ABH

    (2) MOV  AX, BX

    (3) MOV AX, [100H]

    (4) MOV AX, VAL

    (5) MOV AX, [BX]

    (6) MOV AX, ES:[BX]

    (7) MOV AX, [BP] 

    (8) MOV AX, [SI]

    (9) MOV AX, [BX+10]

    (10) MOV AX, VAL[BX]

    (11) MOV AX, [BX][SI]

    (12) MOV AX, VAL[BX][SI] 

    答: (1) 立即方式; 操作数在本条指令中

    (2) 寄存器寻址方式; 操作数为 (BX)=0100H

    (3) 直接寻址方式; PA=20100H

    (4) 直接寻址方式; PA=20050H

    (5) BX 寄存器间接寻址方式; PA=20100H

    (6) 附加段 BX 寄存器间接寻址方式; PA=21100H

    (7) BP 寄存器间接寻址方式; PA=15010H

    (8) SI 寄存器间接寻址方式; PA=200A0H

    (9) BX 寄存器相对寻址方式; PA=20110H

    (10) BX 寄存器相对寻址方式; PA=20150H

    (11) BX 和 SI 寄存器基址变址寻址方式; PA=201A0H

    (12) BX 和 SI 寄存器相对基址变址寻址方式; PA=201F0H 


    9 在 ARRAY 数组中依次存储了七个字数据,紧接着是名为 ZERO 的字单元,表示如下: ARRAY DW 23, 36, 2, 100, 32000, 54, 0 ZERO DW ?

    (1) 如果 BX 包含数组 ARRAY 的初始地址,请编写指令将数据 0 传送给 ZERO 单元。

    (2) 如果 BX 包含数据 0 在数组中的位移量,请编写指令将数据 0 传送给 ZERO 单元。

    答: (1) MOV AX, [BX+(7-1)*2]

      MOV [BX+(7)*2], AX

      (2) MOV AX, ARRAY [BX]

      MOV ARRAY [BX+2], AX 


    10.如 TABLE 为数据段中 0032 单元的符号名,其中存放的内容为 1234H,试问以下两条指令有什么 区别?指令执行完后 AX 寄存器的内容是什么? 

    MOV AX, TABLE

    LEA AX, TABLE 

    答:

    MOV AX, TABLE 是将 TABLE 单元的内容送到 AX ,(AX)=1234H

    LEA AX,TABLE 是将 TABLE 单元的有效地址送到 AX ,(AX)=0032H 


     
  • 相关阅读:
    PetShop数据访问层之消息处理 《解剖PetShop》系列之三
    正则过滤汉字
    c语言 断点续传3
    c 写cgi 与socket通信
    C 语言 断点续传2
    承接B2C商城定制开发 空间+域名+风语商城系统=¥4000
    16进制 SQL注入
    c# socket传送大文件
    c写cgi cookies 设置与读取
    cgi 操作封装
  • 原文地址:https://www.cnblogs.com/lintianxiajun/p/12790301.html
Copyright © 2020-2023  润新知