文档库 最新最全的文档下载
当前位置:文档库 › 8086微处理器指令系统习题集1

8086微处理器指令系统习题集1

8086微处理器指令系统习题集1
8086微处理器指令系统习题集1

第三章 8086微处理器指令系统习题集

一.单项选择题

1. 逻辑地址1000:2000对应的物理地址为()。

A. 1200H

B. 12000H

C. 2100H

D. 21000H

2. 下面哪个寄存器使用时的默认段寄存器为SS()。

A. AX

B. BX

C. SP

D. SI

3. 当使用BP寄存器作基址寻址时,若无指定段替换,则内定在()段内寻址。

A.程序

B.堆栈

C.数据

D.附加

4.在下面四组寄存器中,第()组都可用于对存储器间接寻址方式的寄存器。

A. AX,BX,CX,IP;

B. BX,SP,DX,SI

C. IP,SP,BP,AX

D. BP,BX,SI,DI

5. 含有立即数的指令中,该立即数被存放在()。

A. 累加器中

B. 指令操作码后的内存单元中

C. 指令操作码前的内存单元中

D. 由该立即数所指定的内存单元中

6. 用段基值及偏移量来指明内存单元地址的方式称为()。

A. 有效地址

B. 物理地址

C. 逻辑地址

D. 相对地址

7. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应的段基地址放在DS中,

则DS=(()。

A. 0FFFFH

B. 0F47FH

C. 2032H

D. 0F000H

8.现行数据段位于存储器BOOOOH到BOFFFH字节单元,则段寄存器DS的内容及该段长度(字节数)分别为: ()

A. BOOOH,1000H B. O0OOH,OFFFH

C. BOOOH,OFFFH

D. BOOOH,OOFFH

9.寄存器间接寻址方式中,操作数在()中。

A. 通用寄存器

B. 堆栈

C. 存储单元

D. 段寄存器

10.下列指令中,有语法错误的指令是()。

A. MOV AX,[1000H]

B. LEA bx,buffer

C. MOV [1000H],AL

D. MOV 1000H,AX

11. 堆栈的工作方式是()

A.先进先出

B.随机读写

C.只能读出不能写入

D.后进先出

12. 8086/8088中除()两种寻址方式外,其它各种寻址方式的操作数均在存储器

中。

A. 立即寻址和直接寻址

B. 寄存器寻址和直接寻址

C. 立即寻址和寄存器寻址

D. 立即寻址和间接寻址

13.指令()的源操作数的寻址方式为直接寻址。

A. MOV [2000H],AL

B. IN AL,DX

C. XOR AL,[2000H]

D. MOV AX,2000H

14. 下列指令中,执行速度最快的指令是()

A. ADD AX,10

B. ADD AL,[SI+10H]

B. ADD AX,CX

C. ADD AX,[BX]

15. 下列指令中,不影响进位的指令是()

A. ADD AX,BX

B. MUL BL

C. INC BX

D.SUB AL,BH

16. 执行PUSH AX指令后,堆栈指针SP的内容: ()

A.减1

B. 减2

C. 加1

D. 加2

17. 下面对PUSH指令描述正确的是()。

A. PUSH只能将字节型数据压入堆栈。

B. PUSH只能将字型数据压入堆栈。

C. PUSH只能将双字节型数据压入堆栈。

D. PUSH可对任何类型数据操作。

18. 当对两个组合(压缩)BCD数(字节)相加后,应使用()调整。

A. AAA

B. DAA

C. AAS

D. DAS

19. 若CX=3,AX=1,执行完SHL AX,CL指令后,AX=()。

A. 1

B. 2

C.4

D. 8

20. 8086中()的源操作数和目的操作数可同时为存储器数。

A. 数据传送指令

B. 算术. 逻辑运算指令

C. 控制转移指令

D. 串操作指令

21. 下列指令中隐含使用寄存器SI的是:

A HLT B. CMPS

B C. XLAT D. NOT

22.下列指令中,有语法错误的指令是()。

A. MOV AX,[BX][SI]

B. LEA DI,[2000H]

C. OUT DX,AL

D. SHL BX,2

23. 将AL中带符号数乘10送AL,正确的程序段是()。

A. SAL AL,1

B. ADC AL,AL

MOV BL,AL MOV BL,AL

SAL AL,1 ADD AL,AL

SAL AL,1 ADD AL,AL

ADD AL,BL ADD AL,AL

C. MOV CL,4

D. ADD AL,AL

MOV BL,AL ADD AL,AL

SAL AL,CL ADD AL,AL

ADD AL,BL ADD AL,AL

ADD AL,AL

24. 假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据

21H的物理地址是()。

A. 20102H

B. 20101H

C. 200FEH

D. 200FFH

25.设(SS)=4000H,(SP)=1000H,(AL)=78H,(AH)=0FCH,(DX)=5609H。现要求把AL

26.在串传送指令MOVSB中,源串操作数和目的串操作数使用的数据段和偏移地址指针寄存器为()。

A. DS和SI; ES和DI

B. DS和DI; ES和SI

C. ES和SI; DS和DI

D. DS和SI; DS和DI;

27.()寻址方式的跨段前缀不可省略。

A. DS:[BP]

B. DS:[SI]

C. DS:[DI]

D. SS:[BP]

28.若要检查BX寄存器中的D12位是否为1,应该用()指令。

A. OR BX,1000H

B. TEST BX,1000H

JNZ NO JNZ YES

C. XOR BX,1000H

D. AND BX,1000H

JZ YES JNZ YES

29.用BP作基址变址寻址时,操作数所在的段是当前()。

A. 数据段

B. 代码段

C. 堆栈段

D. 附加段

30.执行下列指令后:

MOV AX,1234H

MOV CL,4

ROL AX,CL

DEC AX

MOV CX,4

MUL CX

HLT

(AX)=()

A. 8D00H

B. 9260H

C. 8CAOH

D. 0123H

31. 下列程序:

NEXT:MOV AL,[SI]

MOV ES:[DI],AL

INC SI

INC DI

LOOP NEXT

可用指令()来完成该功能。

A. REP LODSB

B. REP STOSB

C. REPE SCASB

D. REP MOVSB

32. 设(AL)=-68,(BL)=86,执行SUB AL,BL指令后,正确的结果是()。

A. CF=1

B. SF=1

C. OF=1

D. ZF=1

33.下列4条指令中,有几条指令需要使用DX寄存器()。

MUL BX; DIV BL; IN AX,20H; OUT 20H,AL;

A.1条 B.2条 C.3条 D.4条

34.下列指令中,不影响标志寄存器的标志位的指令是()。

A.SUB AX,BX B.ROR AL,1

C.JNC Label D.INT n

35.下列指令经汇编后,机器指令代码最长的是()。

A.MOV AX,0 B.SUB AX,AX

C.XOR AX,AX D.MUL BX

36.假设AX和BX寄存器中存放的是有符号整数,为了判断AX寄存器中的数据是否大于BX寄存器中的数据,应采用指令序列()。

A.SUB AX,BX B.SUB AX,BX

JC label JNC label

C.CMP AX,BX D.CMP AX,BX

JA label JG label

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

A. 85B92H

B. 86192H

C. BB690H

D. 12169H

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

A. AX,BX,CX,DX

B. BX,BP,SI,DI

C. SP,IP,BP,DX

D. CS,DS,ES,SS

39.循环指令LOOPNZ终止循环的条件是()。

A. CX=0,且ZF=0

B. CX=0,或ZF=1

C. CX10,且ZF=0

D. CX10,或ZF=1

40.对寄存器AX的内容乘以4的正确指令序列是()。

A. SHR AX,1 SHR AX,1

B. SHL AX,1 SHL,AX,1

C. ROL AX,1 ROL AX,1

D. RCR AX,1 RCR AX,1

41.设DH=10H,执行NEG DH指令后,正确的结果是()。

A. DH=10H CF=1

B. DH=0F0H CF=0

C. DH=10H CF=0

D. DH=0F0H CF=1

42.下列传送指令中有语法错误的是()。

A. MOV CS,AX

B. MOV DS,AX

C. MOV SS,AX

D. MOV ES,AX

43.下面指令执行后,改变AL寄存器内容的指令是()。

A. TEST AL,02H

B. OR AL,AL

C. CMP AL,BL

D. AND AL,BL

44.执行除法指令后,影响的标志位是()。

A. CF,OF

B. SF,ZF

C. CF,OF,SF

D. AF,CF,OF,PF,SF,ZF都不确定

45.执行下面指令序列后,结果是()。

MOV AL,82H

CBW

A. AX=0FF82H

B. AX=8082H

C. AX=0082H

D. AX=0F82H

46. MOV SP,3210H

PUSH AX

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

A. 3211H

B. 320EH

C. 320FH

D. 3212H

47. AL和VAR字节单元中分别存放一个带符号数,执行CMP AL,VAR时,如AL》VAR,那么溢出位和符号位的关系是()。

A. OF=SF

B. OF1SF

C. OF=SF=1

D. OF=SF=0

48.检查BUF的内容是否为正偶数,如是正偶数,则0 TAL。下面程序段正确的是( )。

A. MOV AL,BUF

JS K1

SHR AL,1

JNC K1

MOV AL,0

K1:……

B. MOV AL,BUF

AND AL,11

JNZ K2

MOV AL,0

K2:……

C. MOV AL,BUF

TEST AL,81H

JNZ K3

MOV AL,0

K3:……

D. MOV AL,BUF

JNP K4

TEST AL,80H

JNZ K4

MOV AL,0

K4:……

二.多项选择题

1. 汇编语言操作数类型有()。

A. 立即数

B. 寄存器数

C. 存储器数

D. 素数

2. 下列叙述正确的有()。

A. REPZ和REPE执行相同的操作。

B. IRET用于中断服务程序的返回。

C. 条件跳转指令是以PSW中的标志位为控制跳转操作的依据。

D. LOOP是以CX的值是否等于0来控制循环的。

3. 在下列指令中,隐含使用AL寄存器的指令有()。

A)SCASB B)XLAT C)MOVSB D)DAA E)NOP F)MUL BH 4.下列指令中源操作数使用寄存器寻址方式的有()。

A)MOV BX,BUF[SI] B)ADD [SI+50],BX C)SUB AX,2

D)CMP AX,DISP[DI] E)MUL VAR[BX] F)PUSH CX

5.将累加器AX的内容清零的正确指令是()。

A)CMP AX,AX B)SUB AX,AX C)AND AX,0 D)XOR AX,AX 6.正确将字变量WORD VARR偏移地址送寄存器AX的指令是()。

A)MOV AX,WORD VARR B)LES AX,WORD VARR

C)LEA AX,WORD VARR D)MOV AX,OFFSET WORD VARR 7.调用CALL指令可有()。

A)段内直接 B)段内间接 C)短距离(SHORT)

D)段间直接 E)段间间接

8.将AL中带符号数乘10送AL,正确的程序是()。

A)ADD AL,AL B)ADD AL,AL

ADD AL,AL MOV BL,AL

ADD AL,AL ADD AL,AL

ADD AL,AL ADD AL,AL

ADD AL,AL ADD AL,BL

C)MOV CL,4 D)SAL AL,1

MOV BL,AL MOV BL,AL

SAL,AL,CL SAL AL,1

ADD AL,BL SAL AL,1

ADD AL,BL ADD AL,BL

三.填空题

1. 机器指令由和两部分组成。

2. 8086/8088CPU中存储单元的物理地址 =(__________)×______+__________;若(CS)

=0200H,(IP)=0051H,则物理地址为__________。

3.若一个数据块在内存中的起始地址为9E40H:C52AH,则这个数据块的起始地址的物理地址为(AA92AH )。

4.设有指令MOV [BP][SI], 2000H,源操作数为寻址方式,目的操作数为方式。

5.指令JMP NEAR PROG1,在程序代码段中的偏移地址为2013H(这是该指令第一字节的偏移地址)。组成该指令的三字节机器码为E91234H(其中E9H为操作码)。执行该指令后,程序转移去的偏移地址为 H

6.下列指令执行后,BX=________。

MOV CL,3

MOV BX,4DABH

ROL BX,1

ROR BX,CL

7. ADD AX,BL指令出错的原因是________;MOV [DI],[SI]指令出错的原因是

________;INC 2030H指令出错的原因是________;OUT 378H,AL指令出错的原因是________。

8.设堆栈指针(SP)=6318H,此时若将AX. BX. CX、DX依次推入堆栈后,(SP)=( 6310H )。9.下面程序段执行后,(AX)=________,(BX)=________。

MOV AX,92H

MOV BX,10H

ADD BX,70H

ADC AX,BX

PUSH AX

MOV AX,20H

POP BX

ADD AX,BX

10. 已知BX=7830H,CF=1,执行指令:ADC BX,87CFH之后,BX=________,标志位的状

态分别为CF=________,ZF=________, OF=________,SF=________。

11.(SP)=1000H,(SS)=3000H,(31000H)=2000H,(DS)=4000H,(BX)=1200H,则 POP [BX] 指令执行完后(SP)= H (BX)= H (41200H)= H (一个字的内容)

12.执行下列指令序列后,完成的功能是将(DX,AX)的值_____________。

MOV CX,4

NEXT: SHR DX,1

RCR AX,1

LOOP NEXT

13.假设(BX)= 0449H,(BP)= 0200H,(SI)= 0046H,(SS)= 2F00H,(2F246H)= 7230H 则执行XCHG BX,[BP+SI]指令后,(BX)=_____________。

14.假设(DS)=3000H,(BX)=0808H,(30808H)=012AAH,(3080A)=0BBCCH,当执行指令“LES DI,[BX]”后,(DI)=_____________,(ES)=_____________。

15. 假设程序段如下:

MOV BX,2340H

MOV CL,5

ROL BX,CL

问: BX的值为_____________。

16.(DS)=0F800H,(DI)=180AH,(CX)=0105H,(0F980A)=0064H则指令执行SAR [DI], CL 后,(0F980A)=______________H,CF=______________

17. 对于指令XCHG BX,[BP+SI],如果指令执行前,(BX)=6F30H,(BP)=0200H,(SI)

=0046H,(SS)=2F00H,(2F246H)=4154H,则执行指令后,(BX)= _____________,(2F246H)=_____________。

18. 若AX=5555H,BX=FF00H,试问在下列程序段执行后,AX=_____________,

BX=_____________和CF=_____________。

AND AX,BX

XOR AX,AX

NOT BX

四.判断(正确的在括号画“√”,错误的画“×”)

1. 所有PC机具有相同的机器指令。()

2. 指令SBB SI,[SI],源操作数是寄存器间接寻址方式,目的操作数是寄存器寻址方式。

()

3. XCHG AX,ES 指令不合法。()

4. MOV AX,[BP]的源操作数物理地址为16d ×(DS)+(BP) ()5. 偏移地址和有效地址是相等的。()6.段内转移指令执行结果要改变IP. CS的值。()

7. 8086CPU寄存器中,负责与I/O接口交换数据的寄存器是DX。()

8. 堆栈是以先进后出方式工作的存储空间。()

9. 立即数只能存放在代码段中。()

10. 间接寻址不能同时用于目的和源操作数。()

11. 指令AND AL,0 和指令MOV AL,0执行后的结果完全一样。()

12. 字符串操作指令可以使用重复前缀来实现块操作。()

13. NOP指令不使CPU执行任何操作,因此执行它不需要任何时间。()14.OUT DX,AL指令的输出是16位操作数。()15.不能用立即数给段寄存器赋值。()16.所有传送指令都不影响PSW寄存器的标志位。()17.堆栈指令的操作数均为字。()18.REPE/REPZ是相等/为零时重复操作,其退出条件是:(CX)=0或ZF=0。()19. MOV DS,1234H指令合法。()

20.MOV BL,AX ()

五. 读程序,指出结果。

1. 执行下列指令后AL内容是_____________.

MOV AL,08H

ADD AL,09H

2. 执行下面的程序段后,AX的内容是_____________,BX的内容是_____________.

MOV AX,1234H

MOV BX,5678H

PUSH AX

PUSH BX

POP AX

POP BX

3. 执行下面的程序段后,AL的内容是( 80H ),BL的内容是_____________.

MOV AL,20H

TEST AL,80H

JNZ DO1

MOV BL,0

JMP DO2

DO1:MOV BL,1

DO2:HLT

4、下面程序段执行后,标志位CF=_____________,OF=_____________

MOV AL,-64

MOV BL,-70

ADD AL,BL

5、下面程序段执行后,(AX)=_____________。

MOV SI,0

MOV DI,0

MOV CX,60

REP MOVSB

MOV AX,SI

6、下面程序段执行后,(AX)=_____________,(BX)=_____________。

MOV AX,92H

MOV BX,10H

ADD BX,70H

ADC AX,BX

PUSH AX

MOV AX,20H

POP BX

ADD AX,BX

7、源程序如下:

MOV AH,0

MOV AL,9

MOV BL,8

ADD AL,BL

AAA

AAD

DIV AL

结果AL_________,AH=___________,BL=_____________。

8、已知AX=0FF60H,CF=1

MOV DX,96

XOR DH,0FFH

SBB AX,DX

执行上述指令序列后,AX=____________,CF=_____________

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

XOR AL,0FH

AND BL,0FH

OR CL,0FH

执行上述指令序列后,AL=_________________ ,

BL=_____________________,CL=_____________。

10、已知AX=0A33AH,DX=0F0F0H

AND AH,DL

XOR AL,DH

NEG AH

NOT AL

执行上述指令序列后,AH=__________,AL=__________

11、源程序如下:

MOV AL,0B7H

AND AL,0DDH

XOR AL,81H

OR AL,33H

JP LAB1

JMP LAB2

试问: 执行程序后AL=_______;

程序将转到哪一个地址执行:__________。

六.问答题

1.分别指出下列指令中源操作数和目的操作数的寻址方式

(1) MOV EAX,12345678H

(2) MOV [ESI],AX

(3) MOV 2[EDI],BX

(4) MOV 2[BX+SI],DX

(5) MOV AX,[10]

(6) MOV EAX,2[ESI*4]

(7) MOV EAX,2[EBX*8][EDI]

(8) MOV EAX,[ESI][EBP+0FFFF0H]

(9) MOV EAX,2[EDI*8][EBP+80]

2. 已有AX=E896H,BX=3976H,若执行ADD BX,AX指令,则结果BX,AX,标志位

CF,OF,ZF各为何值?

3.(AX)=1234H,(BX)=5678H,写出各条指令分别执行后,寄存器内容的变化及FLAG 寄存器的变化情况。

1.ADD AX,BX 2.INC BX

3.SBB BX,AX 4.NEG BX

4. 指出下列指令的错误原因

(1) INC [ESI]

(2) MOV AX,BL

(3) MOV 2,EAX

(4) MOV AX,[DX]

(5) MOV AX,[BX+BP]

(6) MOV AX,[SI+DI]

(7) MOV AH,300

(8) MOV [ESI],[EDI]

(9) PUSH AL

(10) POP DH

(11) MOV CS,AX

(12) MOV SS,AX

(13) SHL AX,3

5.比较下列两条指令,指出它们的区别

MOV EAX,[ESI]

MOV [ESI],EAX

6.比较下列两条指令,指出它们的区别

MOV AX,[SI]

LEA AX,[SI]

7.假定(AX)= 5678H,不用计算,写出下面每条指令执行后(AX)=?

① TEST AX,1

② XOR AX,EAX

③ SUB AX,AX

④ CMP AX,8765H

8.假定(AX)=1234H,(BX)=5678H指出下列指令中

①哪些指令执行后,源操作数和目的操作数都不发生变化?

②哪些指令执行后,源操作数和目的操作数都发生变化?

③哪些指令执行后, 源操作数不发生变化而目的操作数发生变化?

指令:

① TEST AX,1234

② AND AX,BX

③ SUB AX,1234H

④ CMP AX,1234H

⑤ XCHG AX,BX

9.源程序如下

CMP AX,BX

JNC L1

JZ L2

JNS L3

JNO L4

JMP L5

设AX=74C3H,BX=95C3H,则程序最后将转到哪个标号处执行?试说明理由。

第4章指令系统层习题参考解答-汇编语言与计算机组成原理 答案

1.什么是“程序可见”的寄存器? 程序可见寄存器是指在用户程序中用到的寄存器,它们由指令来指定。 2. 80x86微处理器的基本结构寄存器组包括那些寄存器?各有何用途? 基本结构寄存器组按用途分为通用寄存器、专用寄存器和段寄存器3类。 通用寄存器存放操作数或用作地址指针;专用寄存器有EIP和EFLAGS,分别存放将要执行的下一条指令的偏移地址和条件码标志、控制标志和系统标志;段寄存器存放段基址或段选择子。 3.80x86微处理器标志寄存器中各标志位有什么意义? 常用的7位: CF进位标志: 在进行算术运算时,如最高位(对字操作是第15位,对字节操作是第7位)产生进位或借位时,则CF置1;否则置0。在移位类指令中,CF用来存放移出的代码(0或1)。 PF奇偶标志: 为机器中传送信息时可能产生的代码出错情况提供检验条件。 当操作结果的最低位字节中1的个数为偶数时置1,否则置0。 AF辅助进位标志: 在进行算术运算时,如低字节中低4位(第3位向第4位)产生进位或借位时,则AF置1;否则AF置0。 ZF零标志:如指令执行结果各位全为0时,则ZF置1;否则ZF置0。 SF符号标志:其值等于运算结果的最高位。 如果把指令执行结果看作带符号数,就是结果为负,SF置1;结果为正,SF置0。 OF溢出标志: 将参加算术运算的数看作带符号数,如运算结果超出补码表示数的范围N,即溢出时,则OF置1;否则OF置0。 DF方向标志: 用于串处理指令中控制处理信息的方向。 当DF位为1时,每次操作后使变址寄存器SI和DI减小;当DF位为0时,则使SI和DI增大,使串处理从低地址向高地址方向处理。 4.画出示意图,简述实模式下存储器寻址的过程。 20位物理地址如下计算(CPU中自动完成):10H×段基址+偏移地址=物理地址 5. 画出示意图,简述保护模式下(无分页机制)存储器寻址的过程。 采用对用户程序透明的机制由选择子从描述子表中选择相应的描述子,得到欲访问段的段基址、段限等有关信息,再根据偏移地址访问目标存储单元。

第二课 Intel 8086微处理器简介

微型计算机主要是由微处理器(CPU)、主存储器、外部设备及互联部件组成,总线(数据总线、地址总线、控制总线)在部件之间提供通信。 Intel 8086微处理器按功能可分为两大部分:执行部件和总线接口部件 执行部件 主要由寄存器组、算逻部件、标志寄存器组成 含有8个16位的标志寄存器,这些标志寄存器属于CPU的专用存储器, 按其用途可分为两组:数据寄存器组和指示器变址寄存器组 数据寄存器组(AX、BX、CX、DX) 数据寄存器主要用来保存操作数和运算结果等信息。 AX:累加器,其作用为乘除运算,字的输入输出,中间结果的缓存 BX:基址寄存器,其作用为存储器的指针使用 CX:计数寄存器,其作用为串操作和循环控制 DX:数据寄存器,其作用为字的乘除运算,间接的输入输出,也可以用作存放I/O的端口地址 高8位H组:AH、BH、CH、DH 低8位L组:AL、BL、CL、DL 指示器变址寄存器(SI、DI、SP、BP) 它们一般存放操作数的偏移地址,用作指示器或者变址寄存器。 SP:堆栈指示器,其作用为存取堆栈的指针 DI:存储器指针,其作用为串指令目的操作数指针(目的变址寄存器) BP:堆栈操作数的基址寄存器 SI:源变址寄存器。 当SI、DI和BP不用做指示器和变址寄存器时,也可以将他们当作数据寄存器使用,用来保存操作数和运算结果,但是这时只能呢个用来做16位寄存器而不能是8位的。 由于SP是专用的堆栈指示器,所以他不能做数据寄存器使用。 总线接口部件 由于执行部件所提供的存储器地址是16位的,而8086访问1M空间却需要20位的地址,为了形成这20位地址,在总线接口部件中设立了4个段寄存器(CS、DS、ES和SS) CS:代码段寄存器,指示当前代码段,即它规定了现行程序所在的存储区首址 DS:数据段寄存器 ES:附加数据段寄存器 SS:堆栈段寄存器, 每个段可达64K字节。 在总线接口部件中,还有一个很重要的寄存器——指令指示器(IP),他总是保存着下一次将要从主存中取出的指令的偏移地址,其值为该指令到所在段段首址的字节距离。

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

寻址方式及指令系统习题与解答 计算机科学与工程学院黄洪波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.无溢出但有进位

习题解答

第1章汇编语言基础知识习题解答 1.1 什么是汇编语言?汇编语言的特点是什么? 答:为了克服机器语言难以记忆、表达和阅读的缺点,人们采用具有一定含义的符号作为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令(或汇编指令)。汇编语言是汇编指令集、伪指令集和使用它们规则的统称。汇编语言的特点是: (1)执行速度快。(2)程序短小。 (3)可以直接控制硬件。 (4)可以方便地编译。 (5)辅助计算机工作者掌握计算机体系结构。 (6)程序编制耗时,可读性差。(7)程序可移植性差。 1.2 把下列十进制数转换成二进制数、八进制数、十六进制数。 ① 127 ② 1021 ③ 0.875 ④ 6.25 答: ① 1111111B;177Q;7FH ② 1111111101;1775Q;3FDH ③ 0.111 B;0.7Q;0.EH ④ 110.01B;6.2Q;6.4H 1.3把下列二进制数转换成十进制数。 ① 1001.11 ② 101011.10011 ③ 111.011 ④ 1011.1 答: ① 9.75D ② 43.59375D ③ 7.375D ④ 11.5D 1.4 把下列八进制数转换成十进制数。 ① 573.06 ② 75.23 ③ 431.7 ④ 123.45 答: ① 379.09375D ② 61.296875D ③ 281.875 ④ 83.578125 1.5 把下列十六进制数转换成十进制数。 ① 0D5.F4 ② 8BA.7C ③ 0B2E.3A ④ 6EC.2D 答: ① 213.953125D ②2234.484375 ③2862.2265625 ④1772.17578125 1.6 把下列英文单词转换成ASCII编码的字符串。 ① Upper ② Blow ③ Computer ④ What 答: ① 55H,70H,70H,65H,72H ② 53H,6CH,6FH,77H ③ 43H,6FH,6DH,70H,75H,74H,65H,72H ④ 57H,68H,61H,74H 1.7求下列带符号十进制数的8位基2码补码。 ① +127 ②?2 ③?128 ④ +2 答: ① 01111111B ② 11111110B ③ 10000000B ④ 00000010B 1.8 求下列带符号十进制数的16位基2码补码。 ① +628 ②?9 ③?1234 ④ +3249 答: ① 0000001001110100B ② 1111111111110111B ③ 1111101100101110B ④ 110010110001B 1.9 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十 六进制数表示其运算结果。 ① 68+(―53)② 68―53 ③ 68―(―53)④(―68)―53 答: ① 0FH ②0FH ③ 0A1H ④87H 1.10 汉字在输入、存储、输出过程中所使用的汉字编码是否一样?使用的是什么编码? 答: 在汉字的输入、存储、输出过程中所使用的汉字编码是不一样的,输入时有输入编码,存储时有汉字机内码,输出时有汉字字形码。

8086指令系统精析解析

8086指令系统精析 3.1基本数据类型 1.IA-32结构的基本数据类型是字节(8位)、字(16位)、双字(32位)、四字 (64位,486中引入的)和双四字(128位,Pentium3中引入的)。 2.低字节占用内存中的最低地址,该地址也是此操作数的地址。图:P44 图3-1 3.字、双字、四字的自然边界是偶数编号的地址,字的自然边界是偶数编号的 地址,双字和四字的自然边界地址要分别能被4和8除尽。 4.数据结构要尽可能在自然边界上对齐 5.对于不对齐的存储访问,处理器要求做两次存储访问操作;而对于对齐的访 问,只要进行一次存储访问操作。 6.数字数据类型(学生自学)PPT 3.28086的指令格式 一、指令格式 Label(标号):mnemonic(助记符)argument1(参数1),argument2(参数2),argument3(参数3)其中: 1.标号是一个标识符,后面跟有冒号 2.助记符是一类具有相同功能的指令操作码的保留名 3.操作数的三个参数是任选的,可以有零到三个操作数,操作数参数的数量取 决于操作码 4.操作数参数可能是文字或数据项的标识符,也可能是寄存器的保留名或在程 序的另一部分声明的赋予数据项的标识符。 5.在算术和逻辑指令中存在两个操作数时,右边的操作数是源,左边的操作数 是目的。例如:LOADREG: MOV AX, SUBTOTAL 功能是把由SUBTOTAL表示的源操作数传送至AX寄存器。 3.38086/8088指令的操作数寻址方式

寻找操作数,操作数能定位在指令中、寄存器中、存储单元中以及I/O端口中。 1.立即数 用包含在指令中的操作数作为源操作数,这些操作数即为立即操作数。 立即数可以是8位或16 例1 MOV AX , 2056H 结果( AH ) = 20H ( AL ) = 56H 例2 MOV AL , 78 H 结果( AL ) = 78H 2.寄存器操作数 操作数在寄存器中,指令中指定寄存器名 8 位操作数,用8 位寄存器: AH、AL、BH、BL、CH、CL、DH、DL 16 位操作数,用16 位寄存器: AX、BX、CX、DX、SP、BP、SI、DI CS、DS、SS、ES 例1 MOV AX , 2056H 执行后:(AX)=2056H 例2 MOV BL , AH 执行前:(BL) = 12H, (AH) = 78H 执行后:(BL) = 78H (AH) = 78H ▲立即数寻址、寄存器寻址的操作数,不用在取完指令后再到内存中取数。 ▲以下的 5 中寻址方式,操作数存放在内存中,取完指令后,还需到内存取数。指令中给出的是该操作数的地址,包括段地址和偏移地址。 3. 内存操作数 ▲指令MOV DS: [ DI ] , CL 完成将CL寄存器中的内容传送到以DS为段值,DI为偏移值的内存单元中。例编程将CL寄存器的内容传送到21000H单元中。PPT 地址21000H=2000:1000H ,编程时,DS 存放段地址2000H,DI 存放偏移地址1000H MOV AX, 2000H MOV DS, AX ; (DS) = 2000H

习题1——指令系统 参考答案

《汇编语言》习题1——指令系统参考答案 习题1-1 在8086CPU中,如果SS的内容设置为1A4BH,堆栈的长度为100H字节,问SP寄存器的初始化值为多少?SP初始指向哪个主存物理地址? 答:SP寄存器的初始化值为:100H SP初始指向的主存物理地址是:1A5B0H 习题1-2 分别说明下述8086指令中的源操作数和目的操作数的寻址方式。 指令目的操作数源操作数 (1) MOV ES, AX 寄存器寻址寄存器寻址 (2) ADD DS:[12H],AL 直接寻址寄存器寻址 (3) SUB BX,1200H 寄存器寻址立即寻址 (4) SHR AX,1 寄存器寻址立即寻址 (5) AND -28H[BP][DI], AX 基址变址寻址寄存器寻址 (6) MOV CX,LAB1[BX] 寄存器寻址基址/变址寻址 (7) SBB AX, [BX] 寄存器寻址寄存器间接寻址 (8) OR DX,-360H[SI] 寄存器寻址基址/变址寻址 (9) ADC VAR1,CX 直接寻址寄存器寻址 (10) XOR [DI],AX 寄存器间接寻址寄存器寻址 习题1-3分别说明下述指令语句的语法正确与否,如果有错,说明其错误。 指令正误 (1)MOV DS, 1234H 错误,立即数不能直接传送到段寄存器中 (2)ADD AH,AL 正确 (3)SUB CS,AX 错误,不能对CS直接操作 (4)MOV BX,[BX][SI] 正确 (5)ADC VAR1,[BP][DI] 错误,两个操作数不能同时都在存储器中 (6) SBB [BX][BP],AX 错误, 基址变址寻址方式中不能两个寄存器都是基址寄存器 (7)PUSH 5678H 错误,立即数不能作为源操作数直接压入堆栈 (8)SHL [BP][SI],CL 错误,目的操作数没有明确指明是字还是字节 (9)ROR AX,2 错误,移位次数大于1时,需将其提前存入CL中 (10)NEG AX,BX 错误,操作数个数错误 (11)LEA CS,AX 错误,目的操作数只能是16位通用寄存器 (12)MOV AL,BX 错误, 操作数位数不一致 (13)ADD DS:200H,AX 正确 (14)AND [BX][BP],AH 错误, 基址变址寻址方式中不能两个寄存器都 是基址寄存器 (15)OR BH,-16H[BP] 正确 (16)CLC AX 错误,操作数个数错误 (17)MUL AX,BX 错误,操作数个数错误 (18)DIV 12H 错误,源操作数不能是立即数 习题1-4 在8086中,如果(DS)=1A26H,(SS)=20B0H,(BX)=1200H,(SI)=0034H, (BP)=5700H(1B484H)=1234H,(26200H)=5678H,给出下面各指令或指令组执行后相应寄存器/存储单元的结果。

第二章8086习题答案

第二章8086习题答案

微机原理第二章习题与分析解答 1.单项选择题 (1)8086工作最大方式时应将引脚MN/MX接() A.负电源 B.正电源 C.地 D.浮空 分析:8086规定工作在最小方式下MN/MX接+5V,工作在最大方式下MN/MX 接地。 答案:C (2)8086能寻址内存储器的最大地址范围为() A.64KB B.1MB C.16MB D.16KB 分析:8086有A 0~A 19 20条地址总线,220=1MB。 答案:B (3)在总线周期,8086CPU与外设需交换() A.地址信息 B.数据信息 C.控制信息 D.A、B、C 分析在总线周期,CPU必须发出地址信息的控制信息以后,才能实现与外设进行交换数据。 答案:D (4)8086用哪种引脚信号来确定是访问内存还是访问外设() A.RD B.WR C.M/IO D.INTA 分析:引脚信号M/IO是Memory or Input Output的缩写,当M/IO=0时,用以访问外设;当M/IO=1,用以访问外设。 答案:C (5)在8086指令系统中,下列哪种寻址方式不能表示存储器操作数()A.基址变址寻址B.寄存器寻址C.直接寻址D.寄存器间接寻址 分析:8086指令系统共有七种寻址方式,只有立即寻址方式和寄存器寻址方式不是表示存储器操作数的。 答案:B (6)当CPU时钟频率为5MHz,则其总线周期() A.0.8 s B.500ns C.200ns D.200μs 分析:时钟周期T=1/?=200ns,而一个总路线周期通常由4个T状态组成,有4╳T=4╳200ns=0.8μs. 答案:A (7)8086工作在最大方式下,总路线控制器使用芯片() A.8282 B.8286 C.8284 D.8288 分析:在最大方式下,系统中主要控制信号是由总路线控制器产生,而只有芯片8288才有这方面的功能。 答案:D (8)取指令物理地址=() A.(DS)╳10H+偏移地址 B.(ES)╳10H+偏移地址 C.(SS)╳10H+(SP) D.(CS)╳10H+(IP) 分析:每当8086CPU取指令时,总是根据CS:IP的所指的存贮单元去取指令。 答案:D (9)一个数据的有效地址是2140H、(DS)=1016H,则该数据所在内存单元

大工计算机原理-第3章 8086微处理器的指令系统(1)

第3章8086微处理器的指令系统(1) 3.1 指令系统概述 ●指令系统是一台计算机所能(识别和执行)的全部指令的集合。它与(微处理器)有着密切的关系,不同的 微处理器有不同的指令系统。8086CPU包含133条指令 ●指令是使计算机执行某种(特定操作)的二进制编码。 指令一般包括两个部分:(操作码域)和(地址域)。填空 操作码域:存放指令的操作码,即指明该指令应由计算机完成何种操作。 地址域:确定操作数的值或地址、操作结果的地址,有的指令的地址域还指出下一条指令的地址。 ●机器指令:计算机能(直接识别)的二进制代码。 ●汇编语言:汇编语言是一种符号语言,用助记符表示操作码,用符号或符号地址表示操作数或操作数地址, 它与机器指令是一一对应的 ●汇编程序:将汇编语言源程序翻译成机器语言(就是一条一条的机器指令),即目标程序。 3.2寻址方式 ●根据(指令内容)确定(操作数地址)的过程,称为寻址。 ●根据寻址方式计算所得到的地址叫做(有效地址EA),也就是(段内偏移地址)。有效地址还需要与相应的(段 基地址)组合才是20位的(物理地址PA) ,该工作由微处理器来完成。 牢记什么是EA?什么是PA?怎么计算? 后面有关于EA和PA的解释及计算方法! ●寻址方式在两种方式下被涉及:(操作数)的寻址方式和(指令)的寻址方式。 如果没有特别说明,寻址方式是指源操作数的寻址方式。 1、隐含寻址(隐含了规定的操作数) 例:DAA指令 ,只有操作码,无操作数。规定对AL中的内容进行压缩BCD码转换。 2、立即寻址(操作数(立即数)直接放在指令中,不需访问存储器) 例:MOV AX ,1234H (若CS=1000H ,IP=100H) 3、寄存器寻址(操作数就放在内部寄存器中, 例:INC CX ;(CX)←(CX)+1 MOV AX ,BX ;执行后BX 4、直接寻址(指令中直接给出操作数的存放地址) 例1:MOV AX ,[4000H] (DS=3000H) ?操作数寻址

8086微处理器引脚

8086微处理器引脚(线)说明 ﹡8086/8088微处理器采用40条引线双列直插(DIP)封装。﹡ 8086/8088微处理器引线是对外前端总线及专用信号引线。 ﹡ 8086/8088微处理器引线,在逻辑上可分为3类:地址总线信号、数据总线信号、控制总线信号。还有一些专用信号:电源、地、时钟。 ﹡ 8086/8088采用引线分时复用技术,一条引线不同时间代表不同信号,解决引线不够问题。基本引脚信号 ﹡AD15~AD0(I/O,三态):地址/数据复用引脚。 ﹡A19/S6 ~ A16/S3(O,三态):地址/状态复用引脚。﹡BHE# /S7 (O,三态):高字节允许/状态复用引脚。﹡NMI(In):非屏蔽中断请求线,上升边触发。﹡INTR (In) :可屏蔽中断请求线,高电平有效。﹡RD# (O,三态) :读选通信号,低电平有效。﹡CLK (In) : 时钟信号,处理器基本定时脉冲。﹡RESET (In) :复位信号,高电平有效。 * WR# (O,三态):写选通信号,低电平有效。﹡READY (In):准备好信号,高电平有效。处理器与存储器及I/O接口速度同步的控制信号。﹡TEST# (In): 测试信号,低电平有效。处理器执行W AIT指令的控制信号。﹡MN/MX# (In):最大/最小工作模式选择信号。硬件设计者用来决定8086工作模式,MN/MX# =1 8086为最小模式, MN/MX# =0 8086为最大模式。﹡Vcc (In): 处理器的电源引脚,接 +5V电源。﹡GND :处理器的地线引脚,接系统地线 2)最小模式下的有关控制信号 ﹡INTA# (O) :最小模式下的中断响应信号。﹡ALE (O) :地址锁存允许信号。 ﹡DEN# (O,三态) :数据总线缓冲器允许信号。 ﹡DT/R# (O,三态) :数据总线缓冲器方向控制信号。﹡M/IO# (O,三态) :存储器或I/O接口选择信号。﹡WR# (O,三态) :写命令信号。﹡HOLD (In) : 总线请求信号。﹡HLDA (O) :总线请求响应信号。(3)最大模式下的有关控制信号 ﹡QS1、QS0 (O) :指令队列状态信号。表明8086当前指令队列的状态。﹡S2# ,S1# ,S0# (O,三态) :最大模式总线周期状态信号。作为总线控制器8288的输入信号,8288输出各种控制信号。 ﹡LOCK# (O,三态) :总线封锁信号。信号有效时不允许其他主控部件占用总线。 ﹡RQ#/GT#0, RQ#/GT#1 (I/O) :最大模式总线请求/总线响应信号,每条引线作为输入时是总线请求RQ信号,每条引线作为输出时是总线请求响应GT信号

第二章8086习题答案

微机原理第二章习题与分析解答 1.单项选择题 (1)8086工作最大方式时应将引脚MN/MX接() A.负电源 B.正电源 C.地 D.浮空 分析:8086规定工作在最小方式下MN/MX接+5V,工作在最大方式下MN/MX 接地。 答案:C (2)8086能寻址内存储器的最大地址范围为() A.64KB B.1MB C.16MB D.16KB 分析:8086有A 0~A 19 20条地址总线,220=1MB。 答案:B (3)在总线周期,8086CPU与外设需交换() A.地址信息 B.数据信息 C.控制信息 D.A、B、C 分析在总线周期,CPU必须发出地址信息的控制信息以后,才能实现与外设进行交换数据。 答案:D (4)8086用哪种引脚信号来确定是访问内存还是访问外设() A.RD B.WR C.M/IO D.INTA 分析:引脚信号M/IO是Memory or Input Output的缩写,当M/IO=0时,用以访问外设;当M/IO=1,用以访问外设。 答案:C (5)在8086指令系统中,下列哪种寻址方式不能表示存储器操作数()A.基址变址寻址B.寄存器寻址C.直接寻址D.寄存器间接寻址 分析:8086指令系统共有七种寻址方式,只有立即寻址方式和寄存器寻址方式不是表示存储器操作数的。 答案:B (6)当CPU时钟频率为5MHz,则其总线周期() A.0.8 s B.500ns C.200ns D.200μs 分析:时钟周期T=1/?=200ns,而一个总路线周期通常由4个T状态组成,有4╳T=4╳200ns=0.8μs. 答案:A (7)8086工作在最大方式下,总路线控制器使用芯片() A.8282 B.8286 C.8284 D.8288 分析:在最大方式下,系统中主要控制信号是由总路线控制器产生,而只有芯片8288才有这方面的功能。 答案:D (8)取指令物理地址=() A.(DS)╳10H+偏移地址 B.(ES)╳10H+偏移地址 C.(SS)╳10H+(SP) D.(CS)╳10H+(IP) 分析:每当8086CPU取指令时,总是根据CS:IP的所指的存贮单元去取指令。 答案:D (9)一个数据的有效地址是2140H、(DS)=1016H,则该数据所在内存单元

第二章 8086微处理器

第二章8086/8088微处理器及其系统结构 内容提要: 1.8086微处理器结构: CPU内部结构:总线接口部件BIU,执行部件EU; CPU寄存器结构:通用寄存器,段寄存器,标志寄存器,指令指针寄存器; CPU引脚及其功能:公用引脚,最小模式控制信号引脚,最大模式控制信号引脚。 2.8086微机系统存储器结构: 存储器地址空间与数据存储格式; 存储器组成; 存储器分段。 3.8086微机系统I/O结构 4.8086最小/最大模式系统总线的形成 5.8086CPU时序 6.最小模式系统中8086CPU的读/写总线周期 7.微处理器的发展 学习目标 1.掌握CPU寄存器结构、作用、CPU引脚功能、存储器分段与物理地址形成、最小/最大模式的概念和系统组建、系统总线形成; 2.理解存储器读/写时序; 3.了解微处理器的发展。 难点: 1.引脚功能,最小/最大模式系统形成; 2.存储器读/写时序。 学时:8 问题:为什么选择8088/8086? ?简单、容易理解掌握 ?与目前流行的P3、P4向下兼容,形成x86体系 ?16位CPU目前仍在大量应用 思考题

1、比较8086CPU与8086CPU的异同之处。 2、8086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么? 3、CPU的运算功能是由ALU实现的,8086CPU中有几个ALU?是多少位的ALU? 起什么作用? 4、8086CPU有哪些寄存器?各有什么用途?标志寄存器的各标志位在什么情 况下置位? 5、8086CPU内哪些寄存器可以和I/O端口打交道,它们各有什么作用? 6、8086系统中的物理地址是如何得到的?假如CS=2400H,IP=2l00H,其物 理地址是多少? 思考题 1.从时序的观点分析8088完成一次存储器读操作的过程? 2.什么是8088的最大、最小模式? 3.在最小模式中,8088如何产生其三总线? 4.在最大模式中,为什么要使用总线控制器? 思考题 1.试述最小模式下读/写总线周期的主要区别。 2.CPU响应中断时,为什么要执行两个连续的中断响应周期? 3.当8086微处理器响应总线请求发出HLDA信号后,有哪些引脚信号处于高 阻? 4.8086/8088微处理器响应总线请求发出HLDA信号后,执行部件EU会立即 停止操作吗?为什么? 5.在8086系统中,地址/数据复用信号是如何区分的? 6.总线周期的含义是什么? 8086/8088的基本总线周期由几个时钟组成?如 果一个CPU的时钟频率为4.77MHz,那么它的一个时钟周期为多少?一个基本总线周期为多少?若主频为l5MHz呢? 7.在最小模式总线写周期的T 1、T 2 、T 3 、T 4 状态,8086CPU分别执行什么动 作? 思考题 1.在8086系统的最大模式下为什么一定要用总线控制器?试述总线控制器 8288的主要功能,并说明它有哪些输入和输出信号?试述8086系统中时钟发生器8284A的主要作用以及可提供的几种时钟信号。

第二章 8086微处理器

考点一:掌握8086/8088CPU的功能构成及流水线技术,理解流水线管理规则。 考点二:掌握8086/8088CPU寄存器的组成及其应用。 考点三:理解8086/8088CPU的内存分配,掌握实地址模式下的存储器地址变换方法。考点四:掌握8086/8088CPU的引脚构成,理解其引脚复用的特性。 2.18086/8088CPU的功能构成 1、8086/8088是Inter公司的第三代位处理器芯片。 其特点: (1)具有20条地址总线,直接寻址能力为1MB。 (2)8086有16条数据总线,为16位微处理器;8088有8条数据总线,为准16位微处理器。 (3)片内总线和ALU均为16位,可进行8位和16位操作。 (4)8086/8088片内均由两个独立的裸机单元组成,即总线接口单元(BIU)和执行单元(EU)

2、总线接口单元BIU (1)组成部件 14个16位段寄存器(CS、DS、SS、ES); 216位指令偏移地址寄存器(IP); 3指令队列寄存器(8086CPU:6字节;8088CPU:4字节); 4形成20位物理地址的加法器 5与EU通讯的内部寄存器; 6总线控制逻辑; (2)功能:实现CPU与存储器或I/O口之间的数据传送 1自动按CS值和IP值组成20位实际地址的存储器中去取指令,一次取两个字节指令存放到指令队列中。 2由EU从指令队列中取指令,并根据EU请求,BIU将20位操作地址传送给存储器; 3取来操作数经总线控制逻辑传送到内部EU数据总线,由EU完成内部操作; 4操作结果:若EU提出请求,则由BIU负责产生20位实际目的地址,将结果存入存储器里; 3、执行单元EU (1)组成部分: 116位算术逻辑单元(ALU); 216位状态标志寄存器FLAG; 38个16位通用寄存器组(AX,BX,CX,DX,SP,BP,SI,DI); 416位数据暂存器;

8086指令总结

8086指令系统总结 学习微处理器及其程序设计,必须掌握微处理器的指令系统。本章以8086 微处理器为例介绍微型计算机的指令系统,包括指令格式、寻址方式和各类指令功能。要明确各种寻址方式的区别和特点,掌握有效地址和物理地址的计算方法,要正确使用指令,掌握各类指令的功能、对标志位的影响和使用上的一些特殊限制。能够编写小汇编程序,初步掌握汇编程序的编写和调试方法。 本章的重点难点内容是:8086 的指令格式及寻址方式,8086 的常用指令和8086 指令前缀的使用。 下面我们分别进行总结: 一.8086寻址方式 (1)操作数是数字,指令中立即写出数字------------立即数寻址 MOV AX,1234H 解释此句意义 (2)操作数是寄存器内容,指令中写出寄存器的符号---------寄存器寻址 MOV AX,BX (3)操作数是存储单元内容,用括号括出存储单元有效地址-----直接寻址 MOV AX,[1234H] MOV AX,ES:[1234H] (4)操作数是存储单元内容,用括号括出寄存器或其表达式,寄存器或其表达式的值为存储单元有效地址-------------间接寻址MOV AH,[BX] MOV AX,ES:[SI] MOV AL,[BX+SI+5]===5[BX+SI]===5[BX][SI] 二.8086指令系统 1.数据传送指令 (一)通用传送指令 (1)MOV指令 指令格式:MOV 目,源 功能:将源操作数传送给目标操作数。 (2)堆栈操作指令 进栈指令:PUSH 格式:PUSH 源 功能:将源操作数压入堆栈。 例:用堆栈指令完成上例的功能。 MOV AX,3000H MOV DS,AX ;段寄存器填充 MOV SI,0100H ;基本指令执 MOV DI,2000H ;行前的初值 MOV CX,50 NT: PUSH [SI] ;程序从这 POP [DI] ;开始设计 INC SI INC SI INC DI INC DI LOOP NT MOV AH,4CH INT 21H

8086微处理器的功能与结构

四、80x86微处理器的结构和功能 (一)80x86微处理器 1.8086/8088主要特征 (1)16位数据总线(8088外部数据总线为8位)。 (2)20位地址总线,其中低16位与数据总线复用。可直接寻址1MB存储器空间。 (3)24位操作数寻址方式。 (4)16位端口地址线可寻址64K个I/O端口。 (5)7种基本寻址方式。有99条基本指令。具有对字节、字和字块进行操作的能力。 (6)可处理内部软件和外部硬件中断。中断源多达256个。(7)支持单处理器、多处理器系统工作。 2.8086微处理器内部结构 8086微处理器的内部结构由两大部分组成,即执行部件EU(Execution Unit)和总线接口部件BIU(Bus Interface Unit)。和一般的计算机中央处理器相比较,8086的EU相当于运算器,而BIU则类拟于控制器。 3.8086最小模式与最大模式及其系统配置 最小模式在结构上的特点表现为:系统中的全部控制信号直接来自8086CPU。 与最小模式相比,最明显的不同是系统中的全部控制信息号不再由8086直接提供,而是由一个专用的总线控制器8288输出的。 4.8087与8089处理机简述 (1)8087协处理机 8087协处理机与8086组合在一起工作,以弥补8086在数值运算能力方面的不足,所以它又称为协处理机。 (2)8089I/O处理机

8089是一个带智能的I/O接口电路,相当于大型机中的通道,它将CPU的处理能力与DMA控制器结合在一起。它具有52条基本指令,1MB的寻址能力,包含两个DMA通道。 8089也可以与8086联合在一起工作,执行自己的指令,进行I/O操作,只在必需时才与8086进行联系。在8089的控制下,可以进行外设与存储器之间、存储器与存储器之间以及外设与外设之间的数据传输。同时,8089还可以设定多种终止数据传输的方式。 5.总线时序 一个基本的总线周期包括4个时钟周期,即4个时钟状态T 1 、T 2 、T 3 和T 4 。 (二)80286\80386\80486微处理器 1.80286微处理器 (1)80286的特征 80286是一种高性能的16位微处理器,向上兼容8086/8088,可以有效地利用8086系列软件。80286引入虚拟地址空间的概念,具有存储器管理功能,能为每一个任务分配多达1G字节的虚拟地址空间并映射到16M字节的物理地址中去。80286具有保护功能,可对段的边界、属性和访问权等进行自动检查,通过四级环结构和任务之间相互隔离,可建立可靠性高的系统软件。80286具有高效率的任务转换功能,适用于多用户、多任务系统。80286工作时钟为8~12MHz,工作时钟多样化,便于组成高性能价格比的系统。 (2)80286的结构 80286内部结构中,除了EU执行单元外,总线接口部件BIU又细分成地址部件AU、指令部件IU和总线部件BU。(3)80286的工作方式 80286微处理器有两种工作方式:实地址方式和保护虚拟地址方式。 2.80386微处理器 (1)80386的特征 80386是一种灵活的32位微处理器,可以处理8位、16位、32位等多种类型的数据,有8个32位通用寄存器。80386可直接输出32位的物理地址,最大可支持4GB字节的物理内存空间。 (2)80386微处理器内部结构

微机原理与接口技术习题答案 - 副本

第3章8086/8088指令系统与寻址方式习题 3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H, BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。 (1)MOV BX,12 ;目标操作数为寄存器寻址 (2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H (3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H (4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H (5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H (6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H (8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H (9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H 3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。 (1)XCHG CS,AX ;错,CS不能参与交换 (2)MOV [BX],[1000] ;错,存储器之不能交换 (3)XCHG BX,IP ;错,IP不能参与交换 (4)PUSH CS (5)POP CS ;错,不能将数据弹到CS中 (6)IN BX,DX ;输入/输出只能通过AL/AX (7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元 (8)MOV CS,[1000] ;CS不能作为目标寄存器 (9)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址 3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么? 当前栈顶的地址=2FF00H 当执行PUSH BX 指令后,栈顶地址=2FEFEH (2FEFEH)=57H (2FEFFH)=34H 3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。 (1) SHR DX,1 ;DX=3C62H CF=1 (2) SAR DX,CL ;DX=03C6H CF=0 (3) SHL DX,CL ;DX=18A0H CF=1 (4) ROR DX,CL ;DX=2BC6H CF=0 (5) RCL DX,CL ;DX=18B7H CF=1 (6) RCR DH,1 ;DX=BCC5H CF=0; 3.9 设AX=0A69H,VALUE字变量中存放的内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF的值。 AX CF ZF OF SF PF (1)XOR AX,VALUE ; 134EH 0 0 0 0 1 (2)AND AX,VALUE ; 0821H 0 0 0 0 1 (3)SUB AX,VALUE ; F142H 1 0 0 1 1 (4)CMP AX,VALUE ; 0A69H 1 0 0 1 1 (5)NOT AX ; F596H X X X X X (6)TEST AX,VALUE ; 0A69H 0 0 0 0 1 3.10 设AX和BX中是符号数,CX和DX是无符号数,请分别为下列各项确定CMP和

大工计算机原理第3章8086微处理器的指令系统(1)资料

第3章 8086微处理器的指令系统(1) 3.1 指令系统概述 ● 指令系统是一台计算机所能(识别和执行)的全部指令的集合。它与(微处理器)有着密切的关系,不同的微处理器有不同的指令系统。8086CPU 包含133条指令 ● 指令是使计算机执行某种(特定操作)的二进制编码。 指令一般包括两个部分:(操作码域)和(地址域)。填空 操作码域:存放指令的操作码,即指明该指令应由计算机完成何种操作。 地址域:确定操作数的值或地址、操作结果的地址,有的指令的地址域还指出下一条指令的地址。 ● 机器指令:计算机能(直接识别)的二进制代码。 ● 汇编语言:汇编语言是一种符号语言,用助记符表示操作码,用符号或符号地址表示操作数或操作数地址,它与 机器指令是一一对应的 ● 汇编程序:将汇编语言源程序翻译成 机器语言(就是一条一条的机器指令),即目标程序。 3.2寻址方式 ● 根据(指令内容)确定(操作数地址)的过程,称为寻址。 ● 根据寻址方式计算所得到的地址叫做(有效地址EA ),也就是(段内偏移地址)。有效地址还需要与相应的(段基地址)组合才是20位的(物理地址PA) ,该工作由微处理器来完成。 牢记什么是EA ?什么是PA ?怎么计算? 后面有关于EA 和PA 的解释及计算方法! ● 寻址方式在两种方式下被涉及:(操作数)的寻址方式和(指令)的寻址方式。 如果没有特别说明,寻址方式是指源操作数的寻址方式。 1、隐含寻址(隐含了规定的操作数) 例:DAA 指令,只有操作码,无操作数。规定对AL 中的内容进行压缩BCD 码转换。 2、立即寻址(操作数(立即数)直接放在指令中,不需访问存储器) 例:MOV AX ,1234H (若CS=1000H ,IP=100H ) 3、寄存器寻址(操作数就放在内部寄存器中,不需访问存储器) 例:INC CX ;(CX)←(CX)+1 MOV AX ,BX ;执行后BX 内容不变 4、直接寻址(指令中直接给出操作数的存放地址) 例1:MOV AX ,[4000H] (DS =3000H ) ?操作数寻址 可以进行寄存器寻址的寄存器: (16位)AX 、BX 、CX 、DX 、SI 、DI 、SP 、BP (8位) AH 、AL 、BH 、BL 、CH 、CL 、DH 、DL

8086微处理器指令系统习题集1

8086微处理器指令系统习题集1 第三章 8086微处理器指令系统习题集 一.单项选择题 1. 逻辑地址1000:2000对应的物理地址为()。 A. 1200H B. 12000H C. 2100H D. 21000H 2. 下面哪个寄存器使用时的默认段寄存器为SS()。 A. AX B. BX C. SP D. SI 3. 当使用BP寄存器作基址寻址时,若无指定段替换,则内定在 ()段内寻址。 A.程序 B.堆栈 C.数据 D.附加 4. 在下面四组寄存器中,第()组都可用于对存储器间接 寻址方式的寄存器。 A. AX,BX,CX,IP; B. BX,SP,DX,SI C. IP,SP,BP,AX D. BP,BX, SI,DI 5. 含有立即数的指令中,该立即数被存放在()。

A. 累加器中 B. 指令操作码后的内 存单元中 C. 指令操作码前的内存单元中 D. 由该立 即数所指定的内存单元中 6. 用段基值及偏移量来指明内存单元地址的方式称为 ()。 A. 有效地址 B. 物理地址 C. 逻辑地址 D. 相对地址 7. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应 的段基地址放在DS中,则DS=(()。 A. 0FFFFH B. 0F47FH C. 2032H D. 0F000H 8. 现行数据段位于存储器BOOOOH到BOFFFH字节单元,则段寄 存器DS的内容及该段长度 (字节数)分别为: () A. BOOOH,1000H B. O0OOH,OFFFH C. BOOOH,OFFFH D. BOOOH,OOFFH 9.寄存器间接寻址方式中,操作数在()中。 A. 通用寄存器 B. 堆栈 C. 存储单元 D. 段寄存器 10. 下列指令中,有语法错误的指令是 ()。

【微机原理与接口课程设计】基于8086微处理器和8255A芯片的汽车信号灯微机控制系统的设计与实现

浙江理工大学课程设计 题目汽车信号灯 学院计算机科学与技术学院 专业软件工程专业 班级软件0803 班 姓名林瑞 指导教师****** 2011 年 1 月 6 日

目录 一、设计目的 (2) 二、系统硬件设计 (3) 三、系统软件设计 (9) 四、系统调试及结果 (15) 五、总结和体会 (16) 六、参考文献 (16)

一、设计目的 通过所学知识和现代计算机技术来模拟模拟汽车信号灯控制系统,把所学的理论的知识用到现实实践中去,加强了对理论知识的理解和记忆。展示了计算机技术在汽车行业的应用。 设计出汽车信号灯微机控制系统。汽车信号灯的作用是大家所熟知的,汽车通过显示不同的信号灯来告诉前后左右的行车者本汽车正在进行的操作,本控制系统采用8086微处理器作为处理器和可编程的8255A芯片来模拟汽车信号灯控制系统。通过在实验箱上分别按K1,K2,K3和K4键来显示汽车左转、右转,前进和后退等状态。左/右转弯开关K1,K2闭合时,对应的仪表板左/右转弯指示灯、左/右转弯头灯和左/右转弯尾灯闪烁;紧急开关闭合时,所有仪表板左右转弯灯、左右转弯头灯和左右转弯尾灯闪烁;当用户按K3时,也即踩刹车时,刹车开关闭合,刹车灯(左右红色尾灯)亮;停靠时(合上停靠开关),即按K4键时,所有的灯闪烁。所需执行的操作由相应的开关状态反映,

所需控制的信号灯有仪表板左/右转弯灯、暂停灯、照明远灯和照明近灯共五类类灯. 二、系统硬件设计 1.硬件连接图:利用8088驱动8255 8253来连接外 部电路。 2.器件选择: CPU(8088) 1个发光二极管 5个 74ALS373 2个电阻 5个 74ALS245 1个 74LS00 5个 8255 1个控制开关 5个 8253 1个 3、8088,8255,8253功能及说明 8088的引脚包括20根地址线,16根数据线及控制线,状态线,时钟,电源和地线等,大致可分五大类. 第一类只传送一种信息,第二类每个引脚电平的高低代表不同信息,第三类代表不同的工作方式,第四类每个引脚可以传送两种信息,第五类引脚在输入和输出时分别传送不同的信息.同时还要地址锁存器及数

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