《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 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM