您的位置:首页 > 其它

(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: