文档库 最新最全的文档下载
当前位置:文档库 › 汇编语言设计复习题(第2章:8086的寻址方式和指令系统)

汇编语言设计复习题(第2章:8086的寻址方式和指令系统)

汇编语言设计复习题(第2章:8086的寻址方式和指令系统)
汇编语言设计复习题(第2章:8086的寻址方式和指令系统)

1、下列指令属于基址加变址寻址方式的是( MOV DX,DS:[BP][SI] )。 DX

2、当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。 DX

A.1 B.2 C.3 D.由指令长度决定的

3、下列属于合法的指令是( D ) DX

A.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI],

BL

4、若AX=349DH,CX=000FH。则执行指令AND AX,CX后,AX的值是( 000DH )。

DX

5、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是

( 85B92H ) DX

6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B ) DX

A、AX,BX,CX,DX

B、BX,BP,SI,DI

C、SP,IP,BP,DX

D、CS,

DS,ES,SS

7、对寄存器AX的内容乘以4的正确指令序列是( SHL AX,1 SHL,AX,

1 )。 DX

8、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( OF,AF,PF )。

DX

9、设DH=10H,执行NEG DH指令后,正确的结果是( DH=0F0H CF=1 )。

DX

10、下列传送指令中有语法错误的是( A )。 DX

A、MOV CS,AX

B、MOV DS,AX

C、MOV SS,AX

D、MOV ES,AX

11、下面指令执行后,改变AL寄存器内容的指令是( D )。 DX

A、TEST AL,02H

B、OR AL,AL

C、CMP AL,BL

D、AND AL,BL

12、执行除法指令后,影响的标志位是( AF,CF,OF,PF,SF,ZF都不确定 )。

DX

13、执行下面指令序列后,结果是( AX=0FF82H )。 DX

MOV AL,82H

CBW

14、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。 DX

A、MOV BX,VAR

B、LDS BX,VAR

C、LES BX,VAR

D、LEA BX,VAR

15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是

( PARA )。 DX

16、MOV SP,3210H

PUSH AX 执行上述指令序列后,SP寄存器的值是( 320EH )。

DX

17、BUF DW 10H DUP(3 DUP(2,10H),3,5)

上述语句汇编后,为变量BUF分配的存储单元字节数是( 100H )。 DX

18、MOV AH,7896H

ADD AL,AH

上述指令执行后,标志位CF和OF的值是( CF=1,OF=0 )。 DX

19、完成将带符号数AX的内容除以2的正确指令是( SHR AX,1 )。 DX

20、在汇编语言程序中,对END语句的叙述正确的是( C )。 DX

A.END语句是一可执行语句 B.END语句表示程序执行到此结束

C.END语句表示源程序到此结束 D.END语句在汇编后要产生机器码

21、已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在(数据段中偏移量为3236H的字节)中。 DX

22、下面指令序列执行后完成的运算,正确的算术表达式应是(y=x2-1)。 DX

MOV AL,BYTE PTR X

SHL AL,1

DEC AL

MOV BYTE PTR Y,AL

23、已知(AX)=1234H,执行下述三条指令后,(AX)= (0000H)。 DX

MOV BX,AX

NEG BX

ADD AX,BX

A.1234H B.0EDCCH C.6DCCH D.

24、将DX的内容除以2,正确的指令是(C)。 DX

A.DIV 2 B.DIV DX,2 C.SAR DX,1 D.SHL DX,1

25、有如下指令序列: DX

ORG 40H

DA1 DW 0AB12H,8574H

……

MOV AX,DA1

MOV BX,OFFSET DA1

上述指令执行后,寄存器AX和BX的值分别为( AB12H,40H )。

26、下列数值表达式和地址表达式中,错误的是( D )。 DX

A.MOV AL,8*14+4 B.MOV SI,OFFSET BUF+13

C.MOV CX,NUM2-NUM1 D.MOV CX,NUM2+NUM1

27、数据段定义如下: DX

X1 DB 10H,50,1

X2 DW 10H,20,3

X3 DD ?

COUNT EQU X3-X1

变量COUNT的值是( 9 )。

28、为使CX=-1时,转至MINUS而编制了一指令序列,其中错误的序列是( C )。 DX

A、INC CX JZ MINUS

B、SUB CX,OFFFFH JZ MINUS

C、AND CX,OFFFFH JZ MINUS

D、XOR CX,OFFFFH JZ MINUS

29、AL和VAR字节单元中分别存放一个带符号数,执行CMP AL,VAR时,如AL>VAR,那么溢出位和符号位的关系是( OF=SF )。 DX

30、下面是关于汇编语言程序中使用RET的描述,不正确的是( C )。 DX

A.每一个子程序中允许有多条RET指令。 B.每一个子程序结束之前一定要有一条RET指令。

C.每一个子程序中只允许有一条RET指令。 D.以过程形式表示的代码段,一定有RET指令存在。

31、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是( CX=0或ZF=0 )。 DX

32、用MOV指令将十进制64以组合型BCD码格式送入AX,正确使用的指令是

( MOV AX,0604H )。 DX

33、重复前缀指令REP的重复次数由 CX 决定。 TK

34、DR1 DB 10H,30H

DR2 DW 10H DUP(0,2 DUP(2))

……

MOV BL,LENGTH DR1

MOV CL,LENGTH DR2 请问指令执行后,BL和CL的值分别为 1 和 10H 。 TK

35、设(SP)=100H,(AX)=0FFFFH

STC

PUSH AX

ADC AX,0

PUSH AX

POP BX 上述程序段运行后,(BX)= 0 ,(SP)=

0FEH 。 CXFX

36、假设数据段定义如下:

DA1 DW ’C’,’D’

DA2 DB 18 DUP(?)

DA3 DW $-DA2

……

MOV BX,DA3

MOV AX,DA1

上述指令执行后,BX寄存器中的内容是12H(或18),AH寄存器中的内容是 00H,AL寄存器中的内容是43H 。CXFX

37、现有如下数据段

DATA SEGMENT

ARRAY1 DB 1,26,‘3456’

ARRAY2 DW 7,89H,10

VAL EQU ARRAY2-ARRAY1

DATA ENDS

请问:该数据段已占有 12(或0CH) 字节的存储空间。 CXFX

38、当执行指令ADD AX,BX后,若AX的内容为2BA0H,设置的奇偶标志位PF=1,下面的叙述正确的是(④)。 DX

①表示结果中含1的个数为偶数②表示结果中含1的个数为奇数

③表示该数为偶数④表示结果中低八位含1的个数为偶数

39、AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是( C ) DX

A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位

B.指令OR DX,1000H执行后,将DX最高位置1,其余各位置0

C.指令AND AX,OFH执行后,分离出AL低四位

D.NOT AX,执行后,将AX清0

40、完成对CL寄存器的内容乘以4的正确操作是( C ) DX

A.ROL CL,1 B.MUL 4

ROL CL,1

C.SHL CL,1 D.MOV CL,2

SHL CL,1 SHL CL,CL

41、下面各传送指令中,正确的是( C ) DX

A.MOV [DI],[SI] B.MOV[DX+DI],AL C.MOV WORD PTR [BX],0100H D.MOV AL,BX

42、要实现使BETA的值为56,应采用语句为(BETA EQU 56 ) DX

43、REPZ CMPSW指令,重复执行的终止条件是(CX=0或ZF=0 ) DX

44、下面程序段执行后,AL中的内容是(21H ) DX

MOV AX,8833H

ADD AL,AH

DAA

45、完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是(①)。DX

① MOV AL,00H ② AND AL,00H ③ XOR AL,AL ④ SUB AL,AL

46、下列指令执行后总是使CF=0,OF=0的是( AND)。 DX

47、完成同指令XCHG AX,BX相同功能的指令或指令序列是(④)。 DX

① MOV AX,BX ② MOV BX,AX

③ PUSH AX

POP BX

④ MOV CX,AX

MOV AX,BX

MOV BX,CX

48、设AH=0,AL=06H,BL=09H,执行指令

ADD AL,BL AAA

之后,其结果应是(AH=01,AL=05 )。 DX

49、设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为(OF=1,CF=1 )。 DX

50、在串操作指令前使用重复前缀指令REPE,终止串的重复操作条件是(CX=0或ZF=0 )。 DX

51、下面指令中,合理而有意义的指令是(④)。 DX

① REP LODSB ② REP SCASB ③ REP CMPSB ④ REP MOVSB

52、在下列串操作指令中,同时使用源串和目的串地址指针的指令是( D )DX

A.STOSW B.LODSW C.SCASW D.CMPSW

53、AL=0AH,下列指令执行后能使AL=05H的是( C ) DX

A.NOT AL B.AND AL,0FH C.XOR AL,0FH D.OR AL,0FH

54、DA1 DW‘AB’,‘CD’,‘EF’,‘GH’

MOV AX,DA1+3

指令执行后AX中的内容是(‘FC’)。 DX

55、在汇编语言程序中,对END语句的叙述正确的是(③)。 DX

① END语句是一可执行语句② END语句表示程序执行到此结束

③ END语句表示源程序到此结束④ END语句在汇编后要产生机器码

56、下面的数据传送指令中,错误的操作是(④)。 DX

①MOV SS:[BX+DI],1000H ②MOV DX,1000H ③MOV WORD PTR[BX],1000H ④ MOV DS,2000H

57、下面指令执行后,变量DAB中的内容是(0F5H )。 DX

DAW DW2A05H

DAB DB 0FAH

:

MOV AL,BYTE PRT DAW

SUB DAB,AL

58、执行下列指令后,正确的结果是(②)。 DX

MOV AL,100

MOV BL,-2

① AL=100H

BL=02H

② AL=64H

BL=0FEH

③ AL=64H

BL=82H

④ AL=100H

BL=0FEH

59、设数据段中已有:

DA1 DB 12H,34H

DA2 DW 56H,78H

下面有语法错误的语句是(②)。 DX

① ADR1 DW DA1 ② MOV DA1+1,AX ③ MOV BYTE PTR DA2+1,AL ④ MOV WORD PTR DA1+1,AX

60、 DATA SEGMENT

TA1 DW 0102H,0304H,0506H

TA2 DB 02H,03H,04H

:

MOV BX,DS:[0006H]

AND BX,0FFH

AND BH,[BX]

上述指令序列运行后,BX的内容是( 0402H)。 DX

61、若DS=0F3EH,SI=2000H,COUNT=0A8H,指令MOV AX,(SI+COUNT)中,源操作数的有效地址EA为___20A8H _____,其物理地址为___11488H _____。 TK

62、如JMP指令采用段间间接寻址,那么由4个相邻字节单元中存放有转移地址,其中前两个字节存放的是____ IP____,而后两个字节存放的是____ CS____。 TK

63、在串操作程序中,通常在重复前缀指令REPZ或REPNZ后,选用的串操作指令是___ STOS____或___ CMP__才有实际意义。 TK

64、已知:BX=1357H,DI=2000H,DS=2000H,CS=4000H,分别指出下面各指令中存储器操作数的物理地址。 JD

(1)MOV AL,[BX]

21357H

(2)MOV CS:[BX+DI],AH

43357H

65、

0P1 DB 1,2

0P2 DW 3412H,5678H

MOV AX,OP1+1;字单元(OP1+1) AX

MOV BL,OP2+1;字节单元(OP2+1) BL

上述二条传送语句有语法错误,请根据注释字段的说明,将其改正。 JD MOV AX,WORD PTR(OP1+1)

MOV BL,BYTE PTR(OP2+1)

66、下列语句在存储器中分别为变量分配多少字节? JD

(1)AD2 DW 10 DUP(?),10 22

(2)AD3 DD 100 DUP(?) 400

67、简述下面两条指令分别是什么语法错误? JD

MOV [BX],[SI]

MOV AX,DL

MOV指令不能在两个存储器操作数之间进行;

操作数类型不匹配。

68、在指令系统中,段内、段间返回均为RET指令。试回答: JD

(1)执行段内返回RET指令时,执行的操作是:栈顶内容→IP,SP+2→SP

(2)执行段间返回RET指令时,执行的操作是:①栈顶内容→IP,SP+2→SP ②栈顶内容→CS,SP+2→SP

69、

ARY DW 10 DUP(?)

MOV AL,TYPE ARY

MOV BL,LENGTH ARY

MOV CL,SIZE ARY

上述MOV指令序列执行后的结果是什么? JD

AL=2

BL=10

CL=20

70、设某数据段: JD

DATA SEGMENT

ORG 20H

NUM1=8

NUM2=NUM1+10H

DA1 DB 'COMPUTER'

DB 0AH,0DH

COUNT EQU $-DA1

DA2 DW'CO','MP','UT','ER'

DATA ENDS

试回答:(1)DA1的偏移地址是: 20H (2)COUNT的值是 0AH (3)DA2+5字节单

元的内容是‘U’的ASCII码_

71、已知

AX=0FF60H,CF=1

MOV DX,96

XOR DH,0FFH

SBB AX,DX

执行上述指令序列后,AX=_________0__________,CF=______0__________。CXFX

72、设寄存器AL,BL,CL中内容均为76H,

XOR AL,0FH

AND BL,0FH

OR CL,0FH

执行上述指令序列后,AL=______79H ___,BL=__06H ___CL=_7FH___。CXFX

73、已知

AX=0A33AH,DX=0F0F0H

AND AH,DL

XOR AL,DH

NEG AH

NOT AL

执行上述指令序列后,AH=____60H____,AL=_____35H_。 CXFX

74、假定(DX)=10111001B,(CL)=0.3,(CF)=1,试确定下列各条指令单独执行后,DX中的值。 JD

(1)SHR DX,1 (2)RCR DL,1 (3)RCL DX,CL 答:(1) 005CH (2) 00DCH (3) 05CCH

75、写出完成下述功能的程序段: JD

(1)传送25H到AL寄存器(2)将AL的内容乘以2 (3)传送15H到BL寄存器(4)AL的内容乘以BL的内容

并请写出最后(AX)=?

答:(1)MOV AL, 25H (2)SHL AL, 1 (3)MOV BL, 15H(4)MUL BL 最后,(AX)=612H =1554

76、写一程序段,求双字长数DX∶bX的相反数。 JD

答: NEG DX

NEG AX

SBB DX, 0

77、在某子程序的开始处要保护AX,BX,CX,DX四个寄存器信息,在子程序结束时要恢复这四个寄存器信息。例如: JD

PUSH AX\

PUSH BX \ 保护现场

PUSH CX /

PUSH DX/

:

}恢复现场

试写出恢复现场时的指令序列。

答:

POP DX

POP CX

POP BX

POP AX

78、完成下列操作,选用什么指令: JD

(1)将AX的内容,减去0520H,和上次运算的借位;(2)将变量名TABL的段地址送AX;

答:(1)SBB AX,0520H(2分)(2)MOV AX,SEG TABL(2分)

79、D1 DB 20H DUP(?)

D2 DW D1 请写出用一条指令实现取D1的偏移地址=>SI中的三种方法。JD

答:① LEA SI,D1 ② MOV SI,OFFSET D1 ③ MOV SI,D2

80、A DW 1234H

B DW 5678H

:

PUSH A

PUSH B

POP A

POP B

试回答: CXFX

①上述程序段执行后(A)=__________,(B)=_____

②设执行前SP=200H,执行后SP=____________

答:

①(A)=5678H(2分)(B)=1234H(2分)

②SP=2000H(2分)

81、现有下列程序段: CXFX

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_

82、分析下面程序段, CXFX

MOV AL,200

SAR AL,1

MOV BL,AL

MOV CL,2

SAR AL,CL

ADD AL,BL 试问程序段执行后(BL)=__0E4H_(AL)=__0DDH ___

83、DA3 EQU WORD PTR DA4

DA4 DB 0ABH,89H

SHR DA3,1

MOV DX,DA3

SHL DA4,1

MOV CX,DA3 上述程序段运行后,CX=___44AAH___,DX=__44D5H___。 CXFX

84、设(SP)=100H,(AX)=0FFFFH

STC

PUSH AX

ADC AX,0

PUSH AX

POP BX 上述程序段运行后,(BX)= 0 ,(SP)=

0FEH 。 CXFX

85、STRING DB ‘ABCDEFGHIJ'

:

MOV AH,01 ;从键盘输入字符1~9

INT 21H

AND AL,0FH

DEC AL

XOR AH,AH

MOV BX,OFFSET STRING

ADD BX,AX

MOV BL,[BX]

MOV AH,02H ;显示输出

INT 21H

:

试回答:

(1)上述程序段的功能是什么? CXFX

根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示STRING中第几个字符。(2)如从键盘输入字符‘4',程序段有什么结果?

显示器显示字符‘D’

86、已知:

BX=4567H

NEG BX

INC BX

NEG BX

DEC BX 程序段执行后,BX=____4565H___,CF=___1_____。CXFX

87、已知数据段中定义

DAT1 DB 12H,34H,56H,78H

MOV CX,0

MOV AX,WORD PTR DAT1

MOV CL,DAT1+3 当程序段执行完后AX=___3412H____,CX=__0078H_____。CXFX

88、DA1 DB 83H,72H,61H,94H,5AH

MOV CX,WORD PTR DA1

AND CX,0FH

MOV AL,DA1+3

SHL AL,CL 上述指令序列执行后,AL=__0A0H____,CL=__03H____。CXFX

89、现有如下程序段: CXFX

DATA SEGMENT DA3 EQU 1234H

ORG 0020H DA4 EQU $-DA2

DA1 DW 12H,23H DA5 DB 31H,32H

DA2 DB 11H,21H DATA ENDS

请回答:(1)该程序段已占有的存储字节数是多少?(2)符号名DA4的值是多少?符号名DA5的值是多少?

答:(1) 该程序段已占有的存储字节数是8个字节。(2) 符号名DA4的值为2,符号名DA5的值是0026H。

90、执行下列程序段后,回答问题。 CXFX

ORG 1221H MOV BX,OFFSET NUM

NUM DW 12H MOV CL,BYTE PTR NUM+1

… MOV CH,TYPE NUM

MOV AX,NUM HLT

请问:(AX)=______,(BX)=______,(CX)=______。

答:(AX)=0012H (BX)=1221H (CX)=0200H

91、执行下列指令后AX、BX寄存器的内容? CXFX

MOV SI,10H

MOV AX,1234H

MOV [SI+12H],AX

LEA BX,[SI]

MOV [SI+14H],BX

答:AX为1234H,BX为22H

LES BX,DWORD PTR [SI+12H]

92、试编制一程序段,用串操作指令实现以DA_BY为首址的20H个字节单元中存放相同字符‘Y’(设DA_BY存储区已有ES指向)。 BC

LEA DI,DA_BY

MOV CX,32

MOV AL,‘Y’

CLD

REP STOSB

93、在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首址的数据区中。BC

DATA SEGMENT

BUF1 DW-56,24,54,-1,89,-8……

BUF2 DW45,-23,124,345,-265,……

SUM DW10DUP(0)

DATA ENDS

94、编制程序段实现:将AX寄存器中的16位二进制数分成四组,每组4位,然后把这4组数分别放在AL、BL、CL、和DL中。 BC

MOV BH,AL

MOV CH,AH

MOV AL,AH

AND AL,0F0H

MOV BL,AH

AND BL,0FH

MOV CL,BH

AND CL,0F0H

MOV DL,BH

AND DL,0FH

95、在NUMW单元存放有一个0-65535范围内的整数,将该数除以500,商和余数分别存入QU1和REM单元,请在空行处各填上一条指令完善该程序。 CXTK ┇

MOV AX,NUMW

____ MOV BX,500_________

XOR DX,DX

DIV BX

MOV QUI,AX

____ MOV REM,DX _________

96、已知数据段中定义

DAT1 DB 12H,34H,56H,78H

MOV CX,0

MOV AX,WORD PTR DAT1

MOV CL,DAT1+3

当程序段执行完后AX=___3412H _____,CX=___0078H _____。 CXFX

97、DA1 DB 83H,72H,61H,94H,5AH

MOV CX,WORD PTR DA1

AND CX,0FH

MOV AL,DA1+3

SHL AL,CL

上述指令序列执行后,AL=___0A0H ____,CL=___03H ____。 CXFX

98、DA3 EQU WORD PTR DA4

DA4 DB 0ABH,89H

SHR DA3,1

MOV DX,DA3

SHL DA4,1

MOV CX,DA3

上述程序段运行后,CX=____44AAH _____,DX=_____44D5H _______。 CXFX

99、编制完整程序实现下列算式:W=X+Y+36-Z。设X、Y、Z、W均为双字长数据,各自的低十六位数和高十六位数分别存放在X、X+2、Y、Y+2、Z、Z+2的存储单元中,结果的低十六位字和高十六位字分别存放在W和W+2两个单元中。 BC DATA SEGMENT

X DD …

Y DD …

Z DD …

W DD …

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV AX,X

ADD AX,Y

MOV BX,X+2

ADC BX,Y+2

ADD AX,36

ADC BX,0

SUB AX,Z

SBB BX,Z+2

MOV W,AX

MOV W+2,BX

CODE ENDS

END START

8086汇编语言指令的寻址方式有哪几类

1. 8086汇编语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快? 寄存器寻址最快 7. 下面这些指令哪些是正确的?哪些是错误的?如是错误的,请说明原因。 XCHG CS , AX ;不能修改CS MOV [BX] , [1000] ;不能在两个内存单元之间直接进行数据传送 XCHG BX , IP ;不能用名字直接访问IP PUSH CS POP CS ;不允许直接修改CS值 IN BX , DX ;输入数据必须使用累加器AL或AX MOV BYTE [BX] , 1000 ;格式错误,且超范围,应为MOV word PTR [BX],1000 MOV CS , [1000];不允许直接修改CS值 20.带参数的返回指令用在什么场合?设栈顶地址为3000H,当执行RET 0006后,SP的值为多少? 利用堆栈传递参数时使用;对于近调用SP=3008H,对于远调用SP=300AH 27.设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶地址为多少?当执行 PUSH BX指令后,栈顶地址和栈顶2个字节的内容分别是什么? 栈顶地址:SS:SP,物理地址为:2FF00H;PUSH 完以后栈顶地址为:SS:SP=2010:FDFEH,即物理地址为:2FEFEH,内容为:57H 34H(由低地址到高地址) B P7 5. 设(DS)=3000H,(BX)=1100H,(CS)=0062H,(S1)=0002H,(31100H)=52H, (31101H)=8FH,(31162H)=6BH,(31163H)=99H,(31103H)=F6H, (32200H)=AAH,(32201H)=B6H,(32800H)=55H,(32801H)=77H,给出下列各指令执行后AX寄存器的内容: (1) MOV AX,BX (2) MOV AX,[BX] (3) MOV AX,4200H (4) MOV AX,[2800H] (5) MOV AX,1100H[BX] (6) MOV AX,[1160H+SI] 9. 分别执行下列各指令组,写出AX的内容: (1) MOV AX,93A4H NEG AX 73A4-8c5c,e689-1977 (AX)=6C5CH (2) XY DW "AB" MOV AX,XY (AX)=4142H (3) MOV AX,2B7EH MOV CX,4DB5H ADD AX,CX (AX)=7933H (4) XA DW 0BD57H MOV AX,0FBCDH AND AX,XA (AX)=B945H (5) STC MOV BX, 0B69FH MOV AX, 43A2H SBB AX, BX

寻址方式及指令系统习题与解答

寻址方式及指令系统习题与解答 计算机科学与工程学院黄洪波2012年3月 一、单项选择题 1.设BX=2000H,SI=3000H,指令MOV AX,[BX+SI+8]的源操作有效地址为()。 A.5000H B.5008H C.23008H D.32008H 2.设DS=1000H,ES=2000H,BX=3000H,指令ADD AL,[BX]的源操作数的物理址为()。 A.13000H B.23000H C.33000H D.3000H 3.设DS=2000H,ES=3000H,SI=200H,指令MOV ES:[SI],AL的目的操作数的物理地址为()。 A.20200H B.30200H C.50200H D.200H 4.指令MOV MEM[BX],AX中的MEM是()。 A.原码B.反码C.补码D.移码 5.用来作为寄存器间接寻址的寄存器有()个。 A.8 B.6 C.5 D.4 6.指令MOV [BX+SI],AL中的目的操作数使用()段寄存器。 A.CS B.DS C.SS D.ES 7.指令MOV BX,[BP+5]中的源操作数使用()段寄存器。 A.CS B.DS C.SS D.ES 8.段内间接寻址只改变()中的内容。 A.CS B.IP C.CS和IP D.PSW 9.段间间接寻址只改变()中的内容。 A.CS B.IP C.CS和IP D.PSW 10.下述指令中不改变PSW的指令是()。 A.MOV AX,BX B.AND AL,0FH C.SHR BX,CL D.ADD AL,BL 11.下述指令中不影响CF的指令是()。 A.SHL AL,1 B.INC CX C.ADD [BX],AL D.SUB AX,BX 12.两个整数补码9CH和7AH相加运算后,会产生()。 A.无溢出且无进位B.无溢出但有进位

汇编语言设计复习题(第2章:8086的寻址方式和指令系统)

1、下列指令属于基址加变址寻址方式的是( MOV DX,DS:[BP][SI] )。 DX 2、当程序顺序执行时,每取一条指令语句,IP指针增加的值是( D )。 DX A.1 B.2 C.3 D.由指令长度决定的 3、下列属于合法的指令是( D ) DX A.MOV DS,ES B.MOV [SI],[DI] C.MOV AX,BL D.MOV [DI], BL 4、若AX=349DH,CX=000FH。则执行指令AND AX,CX后,AX的值是( 000DH )。 DX 5、设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是 ( 85B92H ) DX 6、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( B ) DX A、AX,BX,CX,DX B、BX,BP,SI,DI C、SP,IP,BP,DX D、CS, DS,ES,SS 7、对寄存器AX的内容乘以4的正确指令序列是( SHL AX,1 SHL,AX, 1 )。 DX 8、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( OF,AF,PF )。 DX 9、设DH=10H,执行NEG DH指令后,正确的结果是( DH=0F0H CF=1 )。 DX 10、下列传送指令中有语法错误的是( A )。 DX A、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX 11、下面指令执行后,改变AL寄存器内容的指令是( D )。 DX A、TEST AL,02H B、OR AL,AL C、CMP AL,BL D、AND AL,BL 12、执行除法指令后,影响的标志位是( AF,CF,OF,PF,SF,ZF都不确定 )。 DX 13、执行下面指令序列后,结果是( AX=0FF82H )。 DX MOV AL,82H CBW 14、与MOV BX,OFFSET VAR指令完全等效的指令是( D )。 DX A、MOV BX,VAR B、LDS BX,VAR C、LES BX,VAR D、LEA BX,VAR 15、在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是 ( PARA )。 DX 16、MOV SP,3210H PUSH AX 执行上述指令序列后,SP寄存器的值是( 320EH )。 DX 17、BUF DW 10H DUP(3 DUP(2,10H),3,5) 上述语句汇编后,为变量BUF分配的存储单元字节数是( 100H )。 DX 18、MOV AH,7896H ADD AL,AH 上述指令执行后,标志位CF和OF的值是( CF=1,OF=0 )。 DX 19、完成将带符号数AX的内容除以2的正确指令是( SHR AX,1 )。 DX 20、在汇编语言程序中,对END语句的叙述正确的是( C )。 DX A.END语句是一可执行语句 B.END语句表示程序执行到此结束

作业习题 寻址方式和指令

寻址方式和指令习题 一、选择题 1、MOVX A,@DPTR指令中源操作数的寻址方式是() (A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址 2、ORG 0003H LJMP 2000H ORG 000BH LJMP 3000H 当CPU响应外部中断0后,PC的值是() (A)0003H (B)2000H (C)000BH (D)3000H 3、执行PUSH ACC指令,MCS-51完成的操作是() (A)SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP (C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP 4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=() (A)2000H (B)2001H (C)2002H (D)2003H 5、51执行完MOV A,#08H后,PSW的哪一位被置位() (A)C (B)F0 (C)OV (D)P 6、下面条指令将MCS-51的工作寄存器置成3区() (A)MOV PSW,#13H (B)MOV PSW,#18H (C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.4 7、执行MOVX A,@DPTR指令时,MCS-51产生的控制信号是()(A)/PSEN (B)ALE (C)/RD (D)/WR 8、MOV C,#00H的寻址方式是() (A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址 9、ORG 0000H AJMP 0040H ORG 0040H MOV SP,#00H 当执行完上面的程序后,PC的值是()

第六章_寻址方式和指令系统

1

第 6章 寻址方式和汇编指令 第6章
6.1、寻址方式 6.2、汇编语言指令集 6.3、汇编源程序

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
▲ 汇编指令是可执行指令,每条指令对应一条机器 码,用以控制处理器中的执行部件进行各种操 作。 ▲ TMS320F281X系列的汇编指令有150多条。 ▲ 它们支持各种信号处理运算,同时也提供了应用 中所需要的多级处理和过程控制功能。 ▲ 寻址方式是指寻找指令中操作数地址的方式。

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
TMS320C28x指令集采用7种存储器寻址方式: ▲ 直接寻址方式 ▲ 堆栈寻址方式 ▲ 间接寻址方式 ▲ 寄存器寻址方式 ▲ 数据/程序/IO空间立即寻址方式 ▲ 程序空间间接寻址 ▲ 字节寻址方式

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
F2812 的大多数指令利用操作码中的8位字段来选择寻 址方式和对寻址方式进行修改.在 F2812 指令系统中,这个8 位字段用于以下寻址方式: (1)loc16 。 为16位数据访问选择直接/堆栈/间接/寄存器寻址方
式。
(2)loc32 。 为32位数据访问选择直接/堆栈/间接/寄存器寻址方
式。
以上7种寻址方式都与“loc16/loc32”组合起来使用。

第 6章 寻址方式和汇编指令 第6章
6 . 1 寻址方式
寻址方式选择位
由 于 F2812 提 供 了 多 种 寻 址 方 式 , 因 此 用 寻 址 方 式 选 择 位 ( AMODE )来选择8位字段( loc16/loc32 )的解码。该 位属于状态寄存器ST1。寻址方式可以大致归类如下: ▲ AMODE=0——该方式是复位后的默认方式,也是F2812的C/C++编译
器使用的方式。这种方式与C2xLP CPU的寻址方式不完全兼容。数据页指针 偏移量是6位(在C2xLP CPU中是7位),并且不支持所有的间接寻址方式。
▲ AMODE=1——该方式包括的寻址方式完全与C2xLP 器件的寻址方式
兼容。数据页指针的偏移量是7位并支持所有C2xLP 支持的间接寻址方式。
对与loc16或者loc32字段,其可用的寻址方式总结如P375所示

计算机组成原理,指令系统,练习题

单项选择题 1 在CPU执行指令的过程中,指令的地址由___B__给出。 A 程序计数器PC B 指令的地址码字段 C 操作系统 D 程序员 2 下列关于指令的功能及分类叙述正确的是__B___。 A 算术与逻辑运算指令,通常完成算术运算或逻辑运算,都需要两个数据 B 移位操作指令,通常用于把指定的两个操作数左移或右移一位 C 转移指令,子程序调用与返回指令,用于解决数据调用次序的需要 D 特权指令,通常仅用于系统软件,这类指令一般不提供给用户 3 零地址的运算类指令在指令格式中不给出操作数的地址,参加的两个操作数来自__C__。A累加器和寄存器 B 累加器和暂存器 C 堆栈的栈顶和次栈顶单元 D 堆栈的栈顶单元和暂存器 4 下列一地址运算类指令的叙述中,正确的是_____。 A 仅有一个操作数,其地址由指令的地址码提供 B 可能有一个操作数,也可能有两个操作数 C 一定有两个操作数,其中一个操作数是隐含的 D 指令的地址码字段存放的一定是操作码 5 关于二地址指令一下论述正确的是_____。 A 二地址指令中,运算结果通常存放在其中一个地址码所提供的地址中 B二地址指令中,指令的地址码字段存放的一定是操作数 C二地址指令中,指令的地址码字段存放的一定是寄存器号 D二地址指令中,指令的地址码字段存放的一定是操作数地址 6 单字长四地址指令OP A1、A2、A3、A4的功能为(A1)OP(A2)→A3,且A4给出下一条指令地址,假设A1、A2、A3、A4都为主存储器地址,则完成上述指令需访存_____。 A 1 B 2 C 3 D 4 7 在指令格式设计中,采用扩展操作码的目的是_____。 A 增加指令长度 B 增加地址码数量NN C 增加指令数量 D 增加寻址空间 8 某机器的指令字长为16位,有8个通用寄存器,有8种寻址方式,单操作数指令最多有_____个,双操作数指令最多有_____个。 A 1024 16 B 2048 32 C 256 64 D 1024 32 9 指令寻址方式有顺序和跳跃两种,采用跳跃寻址方式可以实现_____。 A 程序浮动 B 程序的无条件浮动和条件浮动 C程序的无条件转移和条件转移 D 程序的调用 10 某机器指令字长为16位,主存按字节编址,取指令时,每取一个字节PC自动加1,。当前指令地址为2000H,指令内容为相对寻址的无条件转移指令,指令中的形式地址D=40H。那么取指令后及指令执行后PC内容为_____。 A 2000H,2042H B 2002H,2040H C 2002H,2042H D 2000H,2040H 11 指令系统中采用不同的寻址方式的目的主要_____。 A 可降低指令译码难度 B 缩短指令字长,扩大寻址空间,提高编程灵活性

8086 CPU寻址方式

8086 CPU的七种基本的寻址方式 分别是:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址加变址寻址 1. 立即寻址:操作数包含在指令中,是指令的一部分。此时的操作数称为立即数 MOV AX, 1234H 2. 寄存器寻址:操作数在CPU寄存器中,指令中指定寄存器编号 MOV SI, AX MOV AL, AH 3. 直接寻址:操作数在存储器中,指令直接包含操作数的有效地址。此时操作数一般存放在数据段DS中,采用换段前缀可以使用其它段寄存器。 MOV AX, [1234H] 4. 寄存器间接寻址:操作数在存储器中,操作数有效地址在SI、DI、BX、BP之一种。在不使用换段前缀的情况下,若有效地址在SI/DI/BX中,则以DS的值为段值;若有效地址在BP中,则以段寄存器SS的值为段值。 MOV AX, [SI] MOV [BP], CX 5. 寄存器相对寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)内容加上指令中给定的8位或16位位移量之和。即:EA = (BX/BP/SI/DI) + (8/16位位移量) 在不使用换段前缀的情况下,若SI/DI/BX的内容作为有效地址的一部分,则以DS的值为段值;若BP的内容作为有效地址的一部分,则以段寄存器SS的值为段值。 在指令中给定的8位或16位位移量以补码形式表示。在计算有效地址时,若位移量是8位,则将其有符号扩展为16位,当有效地址超过FFFFH,则对其进行64K取模。 例如:MOV AX, [DI+1223H] MOV BX, [BP-4] MOV ES:[BX+5], AL 注意:书写时基址或变址寄存器名一定要放在方括号中,而位移可以不写在方括号中。下面两条指令是等价的: MOV AX, [SI+3] 等价于MOV AX, 3[SI] 6. 基址加变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容相加得到。 EA = (BX/BP) + (SI/DI) 在不使用换段前缀的情况下,若BP的内容作为有效地址的一部分,则以SS的值为段值;否则以DS的值为段值。有效地址超过FFFFH,则对其进行64K取模。例如:MOV AX, [BX+DI] 等价形式MOV AX, [DI][BX] MOV AX, ES:[BX+SI] MOV DS:[BP+SI], AL

寻址方式和指令系统

《微机原理》复习思考题第3章 8086的寻址方式和指令系统 3.1 8086汇编语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快? 3.2 直接寻址方式中,一般只指出操作数的偏移地址,那么,段地址如何确定?如果要用某个段 寄存器指出段地址,指令中应如何表示? 3.3 在寄存器间接寻址方式中,如果指令中没有具体指明段寄存器,那么,段地址如何确定? 3.4 用寄存器间接寻址方式时,BX,BP,SI,DI分别针对什么情况来使用?这四个寄存器组合 间接寻址时,地址是怎样计算的?举例进行说明。 3.5 设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下面两条指令所进行的具体操作: MOV BYTE PTR [BP], 2000 MOV WORD PTR [BX], 2000 3.6 使用堆栈操作指令时要注意什么问题?传送指令和交换指令在涉及内容操作数时分别要注 意什么问题? 3.7 下面这些指令中哪些是正确的?哪些是错误的?如果是错误的,请说明原因。 XCHG CS, AX MOV [BX], [1000] XCHG BX, IP PUSH CS POP CS IN BX, DX MOV BYTE[BX], 1000 MOV CS, [1000] 3.8 8086系统中,当对SS和SP寄存器的值进行修改时,有什么特殊规定?这样做的原因是什么?[解答] 凡是遇到给SS寄存器赋值的传送指令时,系统会自动禁止外部中断,等到本条指令和下条指令执行之后,又自动恢复对SS寄存器赋值前的中断开放情况。这样做是为了允许程序员连续用两条指令分别对SS和SP寄存器赋值,同时又防止堆栈空间变动过程中出现中断。 3.9 以下是格雷码的编码表 0——0000 1——0001 2——0011 3——0010 4——0110 5——0111 6——0101 7——0100 8——1100 9——1101 请用换码指令和其他指令设计一个程序段,实现格雷码往ASCII的转换。 3.10 用加法指令设计一个简单程序,实现两个16位十进制数的加法,结果放在被加数单元。 3.11 为什么用增量指令或减量指令设计程序时,在这类指令后面不用进位标志CF作为判断依 据?

指令系统习的题目解答

指令系统习题解答 一、选择题 1、变址寻址方式中,操作数的有效地址等于______。(C) A 基值寄存器内容加上形式地址(位移量) B 堆栈指示器内容加上形式地址(位移量) C 变址寄存器内容加上形式地址(位移量) D 程序记数器内容加上形式地址(位移量) 2、用某个寄存器中操作数的寻址方式称为______寻址。(C) A 直接 B 间接 C 寄存器直接 D 寄存器间接 3、单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用______。(C) A 堆栈寻址方式 B 立即寻址方式 C 隐含寻址方式 D 间接寻址方式 4、寄存器间接寻址方式中,操作数处在______。(B) A. 通用寄存器 B. 主存单元 C. 程序计数器 D. 堆栈 5、程序控制类指令的功能是______。(D) A 进行算术运算和逻辑运算 B 进行主存与CPU之间的数据传送 C 进行CPU和I / O设备之间的数据传送 D 改变程序执行顺序 6、堆栈寻址方式中,设A为通用寄存器,SP为堆栈指示器,M SP为SP指示器的栈顶单元,如果操作的动作是:(A)→M SP,(SP)- 1 →SP ,那么出栈的动作应是______。(B) A (M SP)→A,(SP)+ 1→SP ; B (SP)+ 1→SP ,(M SP)→A ;

C (SP)- 1→SP ,(M SP)→A ; D (M SP)→A ,(SP)- 1→SP ; 7.指令周期是指______。(C) A CPU从主存取出一条指令的时间; B CPU执行一条指令的时间; C CPU从主存取出一条指令加上CPU执行这条指令的时间; D 时钟周期时间; 8、指令系统采用不同寻址方式的目的是______。(B) A 实现存贮程序和程序控制; B 缩短指令长度,扩大寻址空间,提高编程灵活性; C 可直接访问外存; D 提供扩展操作码的可能并降低指令译码的难度 9、指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现______。(D) A 堆栈寻址 B 程序的条件转移 C 程序的无条件转移 D 程序的条件转移或无条件转移 10、算术右移指令执行的操作是______。(B) A 符号位填0,并顺次右移1位,最低位移至进位标志位; B 符号位不变,并顺次右移1位,最低位移至进位标志位; C 进位标志位移至符号位,顺次右移1位,最低位移至进位标志位; D 符号位填1,并顺次右移1位,最低位移至进位标志位 11、二地址指令中,操作数的物理位置可安排在______。(B) A 栈顶和次栈顶 B 两个主存单元 C 一个主存单元和一个寄存器 D 两个寄存器

第五章 指令系统习题

第五章指令系统 一、选择题 1、采用直接寻址,操作数在中。 A、主存 B、寄存器 C、硬盘 D、光盘 2、为了缩短指令中某个地址段的位数,有效的方法是采取。 A、立即寻址 B、变址寻址 C、间接寻址 D、寄存器寻址 3、指令系统采用不同寻址方式的目的是。 A、实现存储程序和程序控制 B、缩短指令长度,扩大寻址空间,提高编程灵活性 C、可以直接访问外存 D、提供扩展操作码的可能,并降低指令译码难度 4、假设寄存器R中的数值为200,主存地址为200和300的地址单元中存放的内容分别是300和400,则方式下访问到的操作数为200。 A、直接寻址200 B、寄存器间接寻址(R) C、存储器间接寻址(200) D、寄存器寻址R 5、输入输出指令的功能是。 A、进行算术运算和逻辑运算 B、进行主存和CPU之间的数据传送 C、进行I/O设备和CPU之间的数据传送 D、改变程序执行的顺序 6、下列关于RISC的描述中,不正确的是。 A、只选用简单的,使用频率高的指令,所以采用RISC的CPU的性能较差,不能运行复杂的指令 B、指令长度固定,指令格式和寻址方式少 C、采用硬布线逻辑,提高指令执行的速度 D、采用指令流水线技术,大部分指令都能在一个机器周期中完成。 7、间接寻址是指。 A、指令中直接给出操作数地址 B、指令中直接给出操作数 C、指令中间接给出操作数 D、指令中间接给出操作数的地址 8、基址寻址方式中,操作数的有效地址等于。 A、基址寄存器的内容加上形式地址(偏移量) B、变址寄存器的内容加上形式地址(偏移量) C、程序计数器的内容加上形式地址(偏移量) D、堆栈寄存器的内容加上形式地址(偏移量) 8.通常指令编码的第一个字段是__ __ A.操作 B.指令 C.操作码 D.控制码 9.堆栈常用于 _ A.程序转移 B.输入输出 C.数据移位 D.保护程序现场 10.在堆栈中保持不变的是_ _ A.栈指针 B.栈底 C.栈顶 D.栈中数据 11.设寄存器R=1000,地址1000处的值为2000,2000处为3000,PC的值为4000,用相对寻址方式,-2000(PC)的操作数是__ __ A.4000 B.3000

第4部分:指令系统习题

指令系统习题 一、选择题 1、变址寻址方式中,操作数的有效地址等于______。 A 基值寄存器内容加上形式地址(位移量) B 堆栈指示器内容加上形式地址(位移量) C 变址寄存器内容加上形式地址(位移量) D 程序记数器内容加上形式地址(位移量) 2、用某个寄存器中操作数的寻址方式称为______寻址。 A 直接 B 间接 C 寄存器直接 D 寄存器间接 3、单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个常需采用______。 A 堆栈寻址方式 B 立即寻址方式 C 隐含寻址方式 D 间接寻址方式 4、寄存器间接寻址方式中,操作数处在______。 A. 通用寄存器 B. 主存单元 C. 程序计数器 D. 堆栈 5、程序控制类指令的功能是______。 A 进行算术运算和逻辑运算 B 进行主存与CPU之间的数据传送 C 进行CPU和I / O设备之间的数据传送 D 改变程序执行顺序 6、堆栈寻址方式中,设A为通用寄存器,SP为堆栈指示器,M SP为SP指示器的栈顶单元,如果操作的动作是:(A)→M SP,(SP)- 1 →SP ,那么出栈的动作应是______。 A (M SP)→A,(SP) + 1→SP ; B (SP) + 1→SP ,(M SP)→A ; C (SP) - 1→SP ,(M SP)→A ; D (M SP)→A ,(SP) - 1→SP ; 7.指令周期是指______。 A CPU从主存取出一条指令的时间; B CPU执行一条指令的时间; C CPU从主存取出一条指令加上CPU执行这条指令的时间; D 时钟周期时间; 8、指令系统采用不同寻址方式的目的是______。 A 实现存贮程序和程序控制; B 缩短指令长度,扩大寻址空间,提高编程灵活性; C 可直接访问外存; D 提供扩展操作码的可能并降低指令译码的难度 9、指令的寻址方式有顺序和跳跃两种方式,采用跳跃寻址方式,可以实现______。 A 堆栈寻址 B 程序的条件转移 C 程序的无条件转移 D 程序的条件转移或无条件转移 10、算术右移指令执行的操作是______。 A 符号位填0,并顺次右移1位,最低位移至进位标志位; B 符号位不变,并顺次右移1位,最低位移至进位标志位; C 进位标志位移至符号位,顺次右移1位,最低位移至进位标志位; D 符号位填1,并顺次右移1位,最低位移至进位标志位

8086汇编各种寻址方式大全

各种寻址方式 1. 立即寻址:直接放在指令中的常数称为立即数,立即数只能是源操作数,立即数存放在指令操作码之后的存储单元中。 例:MOV AL,50H MOV DS, 1250H 错误 2. 寄存器寻址:存放在寄存器中的数据为操作数,寄存器操作数可以是源操作数,也可以是目的操作数。 例:MOV AL,BL MOV CL, BX 错误 以下寻址方式3~8,操作数都在存储器中。存储器操作数具有类型属性,如字节(BYTE)、字(WORD)、双字(DWORD)等,反映了数据占用存储单元的字节数,指令书写中,约定用方括号内容表示存储 器操作数的偏移地址;用类型名 PTR 偏移地址的形式说明指令中存储器操作数的类型,例:WORD PTR [1000H];用变量名DB/DW/DD数据序列的形式分别定义具有“变量名”的字节、字或双字存 储器操作数,如BUF DB 10H,20H。 3. 存储器寻址 (1)直接寻址:存储器操作数的16位偏移地址直接包含在指令的方括号中。 例:MOV AL,[1000H] 约定由DS提供段地址 MOV AL,CS:[1000H] ;段超越,由CS提供段地址 MOV AL,SS:[1000H] ;段超越,由SS提供段地址 例:MOV AX, [2000H] 如果(DS)= 3000H,则AX的物理首地址为:3000*10+2000 (2)寄存器间接寻址:操作数所在的存储单元的偏移地址放在指令给出的寄存器中。可用于这种寻址方式的寄存器只能是SI、DI、BP和BX。其中,SI、DI、BX约定的段寄存器是DS,而BP约定的段寄存器SS。 例:MOV AX,[SI] ;AX←DS:[SI] MOV [BX],AX ;DS:[BX]←AX 例:MOV AX, [BX] 如果(DS)= 2000H, (BX)= 1000H, 则物理地址 = 20000H + 1000H = 21000H (3)寄存器相对寻址 这种寻址方式通过基址寄存器BX、BP或变址寄存器SI、DI与一个位移量相加形成有效地址,计算物理地址的缺省段仍然是SI、DI和BX为DS,BP为SS。 例:MOV AX, COUNT[SI](也可表示为MOV AX, [COUNT+SI]) 其中COUNT为16位位移量的符号地址。 如果(DS)= 3000H,(SI)= 2000H,COUNT = 3000H 则物理地址 = 30000H + 2000H + 3000H = 35000H (4)基址寻址:操作数的有效地址是指令给定的位移量(8位或16位)与BX、BP内容之和,段寄存器约定同寄存器间接寻址,允许段超越。 例:MOV AX,[BX+3AH] ;AX←DS:[BX+3AH] MOV [BP+4EB3H],AX;SS:[BP+4EB3H]←AX (5)变址寻址:操作数的有效地址是指令给定的位移量与寄存器SI或DI内容之和,段寄存器约定在DS 中,允许段超越。 例:MOV [DI+12H],AX ;DS:[DI+12H] ←AX

指令系统练习与答案

计算机原理 指令系统练习与答案 一、填空题 1 、一个完善的指令系统应满足以下4 个方面的要求,它们是:完备性、有效性、规整性和兼容性。 2 、一条完整的指令是由操作码和地址码(操作数)两部分信息组成的。 3 、指令中的地址码字段包括源操作数的地址和操作结果数的地址(目的操作数的地址),前者用语指明操作数的存放处,后者用语存放运算的结果。 4 、指令格式按地址码部分的地址个数可以分为零地址指令格式、一地址指令格式、二地址指令格式和三地址指令格式。 5 、常见的操作码方法有定长操作码和扩展操作码。 6 、逻辑运算指令包括逻辑乘(与)、逻辑加(或)、逻辑非(求反)和异或(按位加)等操作。 二、单项选择题 1 、直接、间接、立即这3 种寻址方式指令的执行速度有快到慢的排序是(C ) A .直接、立即、间接 B .直接、间接、立即 C .立即、直接、间接 D .立即、间接、直接 2 、指令系统中采用不同寻址方式的目的是(B ) A .实现存储程序和程序控制 B .缩短指令长度,扩大寻址空间,提高编程灵活性 C .可以直接访问外存 D .提高扩展操作码的可能并降低指令译码难度 3 、一地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个数常采用(C ) A .堆栈寻址方式 B .立即寻址方式 C .隐含寻址方式 D .间接寻址方式 4 、对某个寄存器中操作数的寻址方式称为(C )寻址方式 A .直接 B .间接 C .寄存器直接 D .寄存器间接 5 、寄存器间接寻址方式中,操作数在(B ) A .通用寄存器 B .主存单元 C .程序计数器 D .外存 6 、变址寻址方式中,操作数的有效地址等于(C ) A .基址寄存器内容加上偏移量 B .堆栈指示器内容加上偏移量 C .变址寄存器内容加上偏移量 D .程序计数器内容加上偏移量 7 、扩展操作码是(D ) A .操作码字段中用来进行指令分类的代码 B .指令格式中不同字段设置的操作码 C .操作码字段外用来操作字段的代码 D .一种指令优化技术,即让操作码的长度随地址数的变化而变化 8 、下面关于汇编语言的叙述中,不恰当的是(D ) A .对程序员的训练要求来说,需要硬件知识 B .汇编语言对机器的依赖性强 C .用汇编语言编写程序的难度比高级语言大 D .用汇编语言编写的程序执行速度比高级语言慢 9 、能够改变程序执行顺序的是(D ) A .数据传送类指令 B .移位操作类指令 C .输入/ 输出类指令 D .条件/ 无条件转移类指令 10 、以下的(D )不能支持数值处理

MCS-51单片机的寻址方式和指令系统

MCS-51单片机指令系统与汇编语言程序设计 伪指令............................................. (2) MCS-51单片机的寻址方式 (4) MCS-51单片机的指令系统 (7) 数据传送指令 (8) 算数运算指令 (10) 逻辑运算及移位指令 (12) 控制转移指令 (13) 位操作指令 (18)

指令格式:指令的表示方式称为指令格式,它规定了指令的长度和内部信息的安排。完整的指令格式如下: [标号:] 操作码 [操作数] [,操作数] [;注释] 标号: 代表指令的具体地址 操作码: 又称助记符,英文缩写 操作数: 操作数中常数可以用二、八、十、十六进制表示,如果用十六进制表示,最高位用A以上的数开头时,前面须加0,否则机器不识别 注释:增加程序的可读性 伪指令 (1)定位伪指令ORG 格式:ORG n 其中:n通常为绝对地址,可以是十六进制数、标号或表达式。 功能:规定编译后的机器代码存放的起始位置。在一个汇编语言源程序中允许存在多条定位伪指令,但每一个n值都应和前面生成的机器指令存放地址不重叠。 例如程序:ORG 1000H START:MOV A,#20H MOV B,#30H ┇ (2)结束汇编伪指令END 格式:[标号:] END [表达式] 功能:放在汇编语言源程序的末尾,表明源程序的汇编到此结束,其后的任何内容不予理睬。 (3)赋值伪指令EQU 格式:字符名称x EQU 赋值项n 功能:将赋值项n的值赋予字符名称x。程序中凡出现该字符名称x就等同于该赋值项n,其值在整个程序中有效。赋值项n可以是常数、地址、标号或表达式。在使用时,必须先赋值后使用。 “字符名称”与“标号”的区别是“字符名称”后无冒号,而“标号”后面有冒号。 (4)定义字节伪指令DB

指令系统测试题

1、设某计算机为定长指令字结构,指令字长为12位,每个地址码3位,试提出一种分配方案,使指令系统包含:4条三地址指令,8条二地址指令,180条单地址指令。 2、某计算机字长为16位,主存储器容量为64K字,指令格式为单字长单地址,共64条指令。试说明: (1)若只采用直接寻址方式,指令能访问多少主存单元。 (2)为扩大指令寻址范围,可采用直接/间接寻址方式,若仅增加一位直接/间接标志,指令可寻址范围为多少?指令直接寻址的范围为多少? 3、指令格式如下图所示,OP为操作码字段,试分析指令格式特点。 31 26 21 18 17 16 15 0 4、某计算机字长为16位,主存容量为640K字,采用单字长单地址指令,共有80条指令。试用直接、间接、变址、相对四种寻址方式设计指令格式。

1解: 由题意可知,当指令为三操作数时,操作码的位数为12 –3×3 = 3,共23= 8 种编码。现使“000~011”为四条三地址数指令的编码,“100~111”四个编码把一个地址码(三位)扩展为操作码。 用四个扩展编码中的“100”把一个地址码(三位)扩展为操作码,共有23= 8 种编码“100000~100111”为八条二地址数指令的编码,其余3×23 = 24 种编码把一个地址码(三位)扩展为操作码。 用24 种编码把一个地址码(三位)扩展为操作码,共有24×23 =184种编码,用其中的180个编码为180条一地址数指令的编码。 2解: 64条单地址指令,指令字长16位,其中操作码(64 = 26)6位,地址码10位。 ①采用直接寻址,能访问210 = 1024个主存单元。 ②当间接寻址时,地址码可达16位,寻址范围为216 = 64K;直接寻址时地址码为9位(其中有一位要用作寻址标志),寻址范围为29 = 512。 3解: (1)操作码字段为6位,可指定26= 64种操作,即64条指令。 (2)单字长(32位)二地址指令。 (3)一个操作数在源寄存器(共有16个),另一个操作数在存储器中(由变址寄存器内容+偏移量决定),所以是RS型指令。 4解: 80条指令操作码字段(OP)需要7位,4种寻址方式(X)需要2位,形式地址(D)为16-7-2=7位,则指令格式如下: 寻址方式定义为: X=00 直接寻址有效地址为:EA=D,寻址范围为27=128 X=01 间接寻址有效地址为:EA=(D),寻址范围为216=64K X=10 变址寻址有效地址为:EA=(R)+ D(27) X=11 相对寻址有效地址为:EA=(PC)+D(27) 其中R为变址寄存器(16位),PC为程序计数器(16位),在变址和相对寻址时,可采用交错相加的方式来产生有效地址,其最大的寻址空间可达216+7=223〉640K,故满足题目要求。

8086寻址方式

成绩评定 教师签名 嘉应学院计算机学院 实验报告 课程名称:汇编语言程序设计 开课学期:2017-2018学年第1学期班级: 指导老师: 实验题目:80x86的寻址方式 学号: 姓名:

一、实验目的: 通过debug实验理解80x86的寻址方式 二、实验内容 实例实验7种重要的寻址方式 三、实验过程描述3 1.立即寻址方式(immediate addressing) 操作数直接存放在指令中 2.寄存器寻址方式(register addressing) 操作数在寄存器中,指令指定寄存器号 3.直接寻址方式(direct addressing) 操作数的有效地址只包含位移量,段地址带DS中 4.寄存器间接寻址方式(register indirect addressing) 操作数的有效地址只包含基址寄存器或变址寄存器内容一种成分

5.寄存器相对寻址方式(register relative addressing) 操作数的有效地址为基址寄存器或变址寄存器的内容和指令中指定的位移量之和 6.基址变址寻址方式(based indexed addressing) 操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和 7.相对基址变址寻址方式(relative based indexed addressing)操作数的有效地址是一个基址寄存器和变址寄存器的内容和指令中指定的位移量之和 四、实验小结 本实验实现了7种与数据有关的寻址方式,立即寻址与寄存器寻

址方式的操作数都在代码段中,剩下五种的操作数都在代码段外,通过取得操作数的偏移地址即有效地址与DS中的段基址运算得物理地址取得操作数。

第三章寻址方式与指令系统

第三章寻址方式与指令系统 一:选择题 1:下列指令中正确的是() A:MOV BX,AL B:MOV BL,AX C:MOV BL,AL D:MOV BL,BP 2:下列指令不合法的指令是() A:IN AX,03F8H B:MOV AX,BX C:REP CMPSB D:SHR BX,CL 3:下列指令中正确的是() A:MOV 100,CL B:MOV CL,100H C:MOV CL,1000 D:MOV CL,100 4:下列指令中正确的是() A:MOV SS,2400H B:MOV 2400H,SS C:MOV SS,DS D:MOV SS,SP 5:下列指令中正确的是() A:XCHG AH,AL B:XCHG AL,20H C:XCHG AX,DS D:XCHG[BX],[20H] 6:执行完下列程序后,BX寄存器的内容是() MOV CL,3 MOV BX,0B7H ROL BX,1 ROR BX,CL A:002DH B:00EDH C:C02DH D:000DH 7:在程序运行过程中,确定下一条指令的物理地址的计算表达式是() A:CS×16+IP B:BX×16+DI C:SS×16+SP D:ES×16+SI 8:寄存器间接寻址方式中,操作数在()中 A:通用寄存器B:堆栈C:主存单元D:段寄存器 9:下列指令,指令()先执行CX-1赋给CX操作,然后再根据CX的值决定是否转移、循环或进行重复操作。 A:JNC B:REP C:JCXZ D:LOOP 10:运算型指令的寻址和控制转移型指令的寻址,其不同点在于() A:前者取操作数,后者决定程序的转移地址B:后者取操作数,前者决定程序的转移地址 C:两者都是取操作数D:两者都是决定程序的转移地址 11:在PC系列机中调试汇编语言程序的工具是DEBUG。用DEBUG调试程序时,可以在目标程序中设断点,或用单步跟踪来找出程序中的毛病。断点只能在RAM中设置,不能在ROM中设置,这是因为() A:ROM不能存放汇编程序B:ROM中数据不能修改 C:ROM不能放入断点中断指令D:ROM不能保护断点 12:DEBUG调试工具是汇编语言最有力的调试手段,当用D命令时显示的结果如下: 0000:0080 72 10 A7 00 7C 10 A7 00—4F 03 62 06 8A 03 62 06 0000:0090 17 03 62 06 86 10 A7 00—90 10 A7 00 9A 10 A7 00 INT 21H是最常用的DOS中断,试确定INT 21H的中断向量为 A:1072H:00A7H B:7C10H:A700H C:00A7H:107CH D;107CH:00A7H 13:设AL和BL是带符号数,当AL≤BL时转至NEXT处,在CMP AL,BL指令后应选择正确的条件指令是 A:JBE B:JNG C:JNA D:JNLE 二:填空题 1:若累加器AX中的内容为4142H,执行指令CMP AX,4041H后,(AX)= 。执行SUB AX,4041H 后,(AX)= 。 2:用CBW指令生成双倍长度的被除数存放在。用CWD指令生成双倍长度的被除数存放在。

计原指令系统习题

1、(12分)一台处理机具有如下指令格式 k 字。 (1)假设不用通用寄存器也能直接访问主存中的每一个单元,并假设操作码域OP=6位,请问地址码域应分配多少位?指令字长度应有多少位? 假设X=11时,指定的那个通用寄存器用做基值寄存器,请提出一个硬件设计规划,使得被指定的通用寄存器能访问1M主存空间中的每一个单元。 2.(12分)某机的16位单字长访内指令格式如下: 42118 其中D为形式地址,补码表示(其中一位符号位);I为直接/间接寻址方式:I=1为间接寻址方式,I=0为直接寻址方式;M为寻址模式:0为绝对地址,1为基地址寻址,2为相对寻址,3为立即寻址;X为变址寻址。设PC,Rx,Rb分别为指令计数器,变址寄存器,基地址寄存器,E为有效地址,请回答以下问题:(1)该指令格式能定义多少种不同的操作?立即寻址操作数的范围是多少? (2)在非间接寻址情况下,写出各计算有效地址的表达式 (3)设基址寄存器为14位,在非变址直接基地址寻址时,确定存储器可寻址的地址范围 (4)间接寻址时,寻址范围是多少? 3.(12分)一台处理机具有如下指令字格式: 1 3位 X OP 寄存器地址 其中,每个指令字中专门分出3位来指明选用哪一个通用寄存器(12位),最高位用来指明它所选定的那个通用寄存器将用作变址寄存器(X=1时),主存容量最大为16384字. (1)假如我们不用通用寄存器也能直接访问主存中的每一个操作数,同时假设有用的操 作码位数至少有7位,试问:在此情况下,“地址”码域应分配多少位?“OP”码域应分配多少位?指令字应有多少位? (2)假设条件位X=0,且指令中也指明要使用某个通用寄存器,此种情况表明指定的那个 通用寄存器将用作基值寄存器.请提出一个硬件设计规则,使得被指定的通用寄存器能访问主存中的每一个位置。 (3)假设主存容量扩充到32768字,且假定硬件结构已经确定不变,问采用什么实际方法 可解决这个问题?

相关文档
相关文档 最新文档