汇编语言第03章习题(数据传送指令)
3.10 TABLE 是一个在数据段中0032上的符号, 它的内容是1234H, 下面指令有什么不同?执行指令后AX寄存器的内容是什么?
(1)MOV AX, TABLE
(2)LEA AX, TABLE
解: (1)mov指令是将内容放进目的操作数 (AX)=1234H
(2)而LEA指令是将偏移地址放入目的操作数 (AX)=0032H
3.11 执行下列指令后AX 寄存器的内容是什么?
TABLE DW 10, 20, 30, 40, 50
ENTRY DW 3
MOV BX, OFFSET TABLE
ADD BX, ENTRY
MOV AX, [BX]
解:
第一步: (BX)=0000H
第二步: (BX)=0003H
第三步: (AX)=3000H
3.13 给出SS 寄存器的内容是0FFA0H, 和SP 寄存器的内容是00B0H。首先执行两个PUSH 指令把8057H 和0F79H 压入栈中, 然后执行POP 指令. 请以图表的形式给出栈的变化和SP的值 (用下划线划出内存单元的物理地址).
解:
第一步:PUSH 8057H
第二步:PUSH 0F79H
第三步:POP
第一步:压栈前:SS:SP = 0FFA0H:00B0H, 压栈后:SS:SP = 0FFA0H:00AFH
第二步:压栈前:SS:SP = 0FFA0H:00AFH, 压栈后:SS:SP = 0FFA0H:00ADH
第三步:出栈前:SS:SP = 0FFA0H:00ADH, 出栈后:SS:SP = 0FFA0H:00AFH
7.8下列指令中,符号ABCD 是一个变量。说出两条指令的不同。
MOV AX, OFFSET ABCD
LEA AX, ABCD
答:两条指令都是取ABCD的偏移地址,但MOV指令能以更少的时间完成同样的功能。
3. 回答执行指令后的问题:
A DW 1234H
B DW 5678H
……
PUSH A
PUSH B
POP A
POP B
解:
① 执行之后(A)=5678H , ( B)= 1234H
② 执行程序之前SP=200H, 执行之后SP= 200H
4. 读程序题:
DATA SEGMENT
A DB 12H,’12’
B DW 34H,45H
C DW B
DATA ENDS
…………
在下列的指令完成之后,排列主存储器中的数据段。
MOV AX, A+1; AX=3231H
LEA BX, B; BX=0003H
MOV CX, C; CX=0003H
解:
00H_______高地址处_DATA+8
03H__C
00H
45H
00H
34H__B
32H
31H
12H_A_____低地址处_DATA+0
1. 程序分析:
MOV AX,6540H
MOV DX,3210H
MOV CL,04
SHL DX,CL
MOV BL,AH
SHL AX,CL
SHR BL,CL
OR DL,BL
解:执行指令后:(AX)=5400H,(BL)=06H,(DX)=2106H
2. 程序分析:
MOV AL,200
SAR AL,1
MOV BL,AL
MOV CL,2
SAR AL,CL
ADD AL,BL
解:执行指令之后(BL)=0E4H,(AL)=0DDH
3. 当在串指令之前使用REPE立即前缀时, 当 ( ),串指令将会停止。 C
A. CX = 0 AND ZF = 0
B. CX = 0 AND ZF = 1
C. CX = 0 OR ZF = 0
D. CX = 0 OR ZF = 1
1.当在串指令之前使用REPE 立即前缀时,当 ( ),串指令将会停止。 C
A. CX=0 and ZF=0 B. CX=0 and ZF=1 C. CX=0 or ZF=0 D. CX=0 or ZF=1
2. 下列哪条指令有合理和充分的意义? D
A. REP LODSB B. REP SCASB C. REP CMPSB D. REP MOVSB
3. 英特尔 8086 CPU中的每一个寄存器都是为在执行指令时的一些特定的功能而设计的. 描述使用或者修改下列寄存器的两条特别的指令。
• (i) SP,
• (ii) SI,
• (iii) DX.
解:
PUSH DX;
POP SI ;
3.47指令填空: (1) LOOP L20 (2)LOOPE L20 (3)LOOPNE L20
尝试指出在3个不同情况下,程序执行之后AX,BX,CX,DX 寄存器的内容 ?
TITLE EXLOOP.COM
CODESG SEGMENT
ASSUME CS: CODESG, DS: CODESG,SS:CODESG
OGR 100H
BEGIN: MOV AX, 01
MOV BX, 02
MOV DX, 03
MOV CX, 04
L20: INC AX
ADD BX, AX
SHR DX, 1
( )
RET
CODESG ENDS
END BEGIN
解:
(1) LOOP L20 : AX=05H ; BX=10H ; CX=00H ; DX= 00H
(2) LOOPNE L20: AX=03H; BX=7H; CX=2H ; DX=00H
(3)LOOPE L20:没有进行循环 AX=02H; BX=4H; CX=3H; DX=1H