(2011.11.06)汇编语言第03章习题(数据传送指令)
2011-11-06 11:05
405 查看
汇编语言第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
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
相关文章推荐
- 汇编语言学习笔记 第二节:数据传送指令
- 32位汇编语言学习笔记(2)--数据传送指令
- 8086汇编 数据传送指令
- 汇编语言中把数据打印到屏幕上的指令是什么啊?急求答案
- (2011.11.06)汇编语言第02章习题(寻址方式与汇编语言程序的组织)
- 8086汇编语言自学经验分享 两个8位数据相乘mul byte ptr指令
- 汇编语言中的串传送指令
- 汇编(五)——数据传送指令一
- 汇编--学习笔记(七)-数据传送指令
- 汇编语言——传送指令
- 汇编语言:浮点数传送指令
- 汇编语言--指令和数据
- 32位汇编语言学习笔记(11)--条件传送指令
- 汇编之数据传送指令
- [汇编]8086指令系统---数据传送指令
- 汇编与接口:数据传送指令
- 关于汇编语言中传送指令存在一些限制的理解
- 汇编语言一 利用移位,传送和相加指令实现AX的内容扩大十倍。
- MASM汇编语言笔记(三)数据传送和算术运算
- 汇编语言基础教程-指令:传送,交换,取地址