微机原理练习题

更新时间:2023-12-10 04:12:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、判断题 A对B错

1、与十进制数56等值的二进制数是111000 A 2、与十六进制数BC等值的二进制数是10111100 A 3、十进制正数1的八位二进制补码是00000001 A

4、十进制负数-1的八位二进制补码是 11111111 A 5、如果字母A的ASCII码值为61H,则字母D的ASCII码值为64H A 6、8086CPU中的BIU部件内部有6个字节的指令队列。 A

7、8086/8088微处理器在取指令与执行指令时,总线总是处于忙状态。 B

8、通用寄存器中的变址寄存器也可以分为高8位.低8位的寄存器单独使用。 B

9、溢出与进位具有相同概念。 B

10、存取操作数时所需要的段内偏移量可以是指令中提供的直接地址。 A

11、8086中段寄存器有4个 A 12、8086中标志寄存器的状态标志占6位 A 13、8086中标志寄存器的控制标志占3位 A 14、8086的一个基本总线周期为4个T状态。 A 15、段与段之间可以连续,也可以重叠 A 16、 8086中状态寄存器为16位寄存器。 A 17、8088 中,取指令和执行指令可以并行操作。 A 18、每条指令都必须有操作码和操作数。 B 19、计算机中的指令是由操作码和操作数组成。 A 20、立即寻址方式不能用于目的操作数字段。 A

21、在8086CPU中的堆栈的存取可以以字节或字为单位,所以PUSH和POP指令可以作字节或字操作。 B

22、MOV指令要影响标志位。 B 23、CF位可以用来表示有符号数的溢出。 B 24、指令DEC CX 影响标志位ZF,但不影响标志位CF。 A 25、指令“ADD AX,[BX+2000H]”是一条不带进位的加法指令,因此该指令执行后进位标志位CF将不受影响。 B

26、子程序调用命令为CALL、返回命令RET 。 A

27、就取得操作数的速度而言,寄存器寻址比直接寻址快。 A 28、ROR指令是循环右移。 A

29、JNZ表示ZF=0 则转移,JS表示SF=1 则转移。 A 30、物理地址是唯一代表存储空间中每一个字节单元的地址。 A 31、 IMUL指令除计算对象为带符号二进制数以外,其它都与MUL一样的,但结果不同。 A

32、MUL BL 隐含另一个乘数在AL中。 A 33、MUL BX 隐含另一个乘数在AX中。 A

34、16位二进制数乘法:其32位积的高16位存于DX,低16位存于AX。 A

35、8位二进制数乘法:其16位积的高8位存于AH,低8位存于AL。 A

36、除数必须为被除数的一半字长。 A 37、当8位数除以8位数,16位数除以16位数时,必须对被除数 进行扩展。 A

38、8086系统规定余数的符号和被除数相同 A 39、负数的反码表示为它的正数原码按位求反 A 40、0的补码唯一 A 41、采用补码做运算时必须对运算结果做“溢出”检查。 A

二、填空题

1、通常人们所说的微型计算机的“三总线”是指:地址总线、数据总线、控制总线。 2、在计算机内部,一切信息的存取、处理和传送都是以二进制形式进行的。

3、在8086CPU寻址的1M字节的存储器里,每一个存储单元都有一个唯一的20位地址,称为该存储单元的物理地址。

4、若把组成计算机中的运算器和控制器集成在一块芯片上称为微处理器。 5、微型计算机各部件之间是用 系统总线 连接起来的。 6、微型计算机中主要包括有 微处理器、存储器和I/O接口 7、8086微处理器中的BIU和EU是处于 并行 的工作状态.

8、逻辑与指令AND,运算方法是;二者均为1,结果为1;否则为0。 9、逻辑或指令OR,运算方法:二者均为0,结果为0;否则为1 10、逻辑异或指令XOR,运算方法:二者相反,结果为1;否则为0

11、将数字5转换成ASCII形式;执行下面指令后,(AH)=35H MOV AH, 05H OR AH, 30H

11、执行下列指令,相当于指令NEG AX(求补码) NOT AX INC AX

12、设:AX=73H DX= 85H,执行下列指令后,结果(AX)=0FF7AH MOV AX, DX

NOT AX

13、若:设(DS)=2000H,VALUE的偏移地址为1000H,(21000H)=34H, (21001H)=12H.

执行指令:LEA BX, VALUE MOV AX, VALUE

执行指令后,(BX)=1000H,(AX)=1234H

14、逻辑右移指令SHR,右移1位,相当于无符号数 除2 ,

逻辑左移指令SHL,左移1位,相当于无符号数 乘2 。 15、串操作指令 是唯一一条从内存到内存的指令

16、段内转移 — 近转移(near),不需要更改CS段地址,只要改变IP偏移地址。 段间转移 — 远转移(far),需要更改CS段地址和IP偏移地址。 短转移与近转移属段内转移,远转移属段间转移。 17、指令系统 是指微处理器能执行的各种指令的集合。

寻址方式 是指令中用于说明如何寻找操作数的方法。 18、CPU通过总线读/写一次数据所需时间称为:总线周期

CPU执行一条指令所需时间称为:指令周期

19、(226.625)10=(11100010.101)2=(342.5)8 =(E2.A)16 20、十进制数89,压缩BCD码表示为二进制数是1000 1001B

非压缩BCD码表示为二进制数是00001000 00001001B

21、高位字节先入栈,放在较高地址单元,低位字节后入栈,放在较低地址单元;“先进后出”原则。

22、比较11111111和00000000这两个数。

当为无符号数时:两个数分别为255和0,前者大于后者; 当为有符号数时,两个数分别为-1和0,前者小于后者; 23、下面程序段执行后,AX=? AX= 0FFF0H

MOV AX,0FFFFH ; AX: 1111 1111 1111 1111 MOV CX, 4

LOP1: SHL AX, 1 ; AX: 1111 1111 1111 1110

LOOP LOP1 ; 循环4次

三、选择题

1、以下叙述正确的是( B )。

A 微机的字长可以是8、16、24、32位 B. 微机的字长可以是8、16、32、64位 C. 微机的字长可以是8、16、24、32K D. 字长是指计算机处理数据的精度 2、以下叙述不正确的是( C )。

A. 一个字节由8位二进制数构成。 B. 字节是衡量存储容量的基本单位。 C. 字节是衡量微机性能的重要指标。 D. 字节是衡量微机字长的基本单位。

3、8086/8088微处理器( B )部件中有能够计算20位物理地址的地址加法器 A.EU B.BIU C.CU D.ALU

4、8086CPU 内部指令队列中有( A )个字节空时,则会自动访问存储器填充指令队列.

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

5、当执行部件执行一条( B )指令时,则BIU中的指令队列会自动清空,以便装入新的内容.

A.传送 B.跳转 C.堆栈操作 D.移位

6、若指令队列处于满,执行部件又没有向总线接口部件发出总线请求,则总线接口处于( A )状态.

A.空闲 B.取指 C.读操作 D.写操作. 7、8086/8088微处理器内部寄存器中的累加器是( A )寄存器 A.16位数据寄存器 B.16位段寄存器

C.16位变址寄存器 D.16位基址指针寄存器 8、当标志寄存器中( A )标志位为1时,允许开中断. A.IF B.TF C.DF D.OF

9、8086/8088微处理器内部能够计算出访问内存储器的20位物理地址的附加机构是( B )

A.EU中的地址加法器 B.BIU中的地址加法器

C.指令队列 D.内部通用寄存器

10、8086微处理器内部具有自动加1功能的寄存器是( D ). A.SI B.AX C.BP D.IP 11、编程人员不能直接读写的寄存器是( C ).

A.DI B.CX C.IP D.SP

13、8086/8088微处理器中下列寄存器中既可以作为8位又可以作为16位寄存器的是( A )

A.SI B.SP C.IP D.CX

14、.8086微处理器以BP内容作为偏移量,则段基址是由( C )寄存器提供。 A.CS B..ES C.SS D.BX 15、指令指针中存放的是( C )。 A. 数据 B. 地址

C. 下一指令的地址 D. 下一指令的数据 16、8086的寻址能力为( B )。

A. 20MB B. 1MB C. 64KB D. 4MB

17、一般地,我们将计算机指令的集合称为 ( D ) 。 A)机器语言 B)汇编语言 C)翻译程序 D)指令系统

18、直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序为 ( C )。 A)直接、立即、间接 B)直接、间接、立即 C)立即、直接、间接 D)不一定

19、CPU要访问的某一存储单元的实际地址称( C ) A.段地址 B.偏移地址 C.物理地址 D.逻辑地址

20、下面各传送指令中,正确的是( C ) A.MOV [DI],[SI] B.MOV [DX+DI],AL

C.MOV WORD PTR [BX],0100H D.MOV AL,BX

21、下面 XCHG 指令语句中 , 语法正确的是( B ) A.XCHG AX,DS B.XCHG BL,[BX]

C.XCHG AL,OFH D.XCHG [SI],[DI]

21、使用DOS系统功能调用时,使用的软中断指令是( D ) A.INT 21 B.INT 10H C.INT 16H D.INT 21H

22、设SS=2050H,SP=0140H,则栈顶存贮单元的物理地址是( A ) A.20640H B.2063EH C.2063FH D.21900H 23、用MOV指令将十进制数89以非压缩BCD码格式送入AX,可使用的指令是( B ) A.MOV AX,89 B.MOV AX,0809H

C.MOV AX,89H D.MOV AX,0809

24、下列寄存器组中,在访问存储器操作数地址时,可以提供偏移地址的是( A ) A. BP 、 BX 、 SI 、 DI B. AX 、 BX 、 CX 、 DX C. SP 、 IP D. BX 、 SI 、 DI 、 DS 25、若(AL)=0FH,(BL)=04H,则执行CMP AL,BL后,AL和BL的内容为( A )。 A .OFH和04H; B. 0B和04H; C. 0F和0BH; D .04和0FH 26、下列指令中,隐含使用AL寄存器的指令有( D ) A、SCASW B、 CWD C、HLT D、MUL BL 27、标志寄存器中属于控制标志位的是( B ) A.DF,OF,SF B.DF,IF,TF C.OF,CF,PF D.AF,OF,SF

28、用一条指令实现将寄存器BX和SI中的内容相加,结果送入AX中,这条指令是( D )

A.ADD AX,[SI][BX] B.MOV AX,[BX+SI] C.AND AX,[BX+SI] D.LEA AX,[BX][SI]

29、下列指令执行后对源和目的操作数均无影响的是( D ) A.MOV [BX+2],AX B.SUB AX,2467H C.SBB [SI],BX D.CMP AX,BX

30、将CX寄存器低4位清零的正确指令是( B )。 A.AND CX,0F0H B.AND CX,0FFF0H C.AND CX,1110H D.MOV CX,0 31、定义子程序的伪指令是 ( A ) A.PROC 和 ENDP B.CODE 和 ENDS C.EQU 和 END D.MACRO 和 ENDM 32、

4、指出下列指令的错误,说明原因,并改正错误。 1、MOV AL, 02H

SAL AL, 4 ;错

原因:对于移位指令,若移位位数大于1,所移的位数用CL存放。 改:MOV AL, 02H ;AL: 0000 0010 MOV CL, 4

SAL AL, CL ;AL: 0010 0000 2、MOV [1000H] , [DI] 错 原因:存储器操作数之间不能直接传送 改:MOV AX , [DI] MOV [1000H], AX

3、MOV DS,2000H 错 原因:立即数不能直接传送段寄存器 改:MOV AX, 2000H

MOV DS , AX

4、MOV ES , DS ; 错 原因:段寄存器之间不能直接传送

改: MOV BX , DS MOV ES , BX

5、 MOV CS,AX ; 错

原因:CS、 IP只可以作为源操作数,即不允许给CS、IP寄存器传送数据。 改: MOV AX,CS

6、MOV AL, 050AH; ; 错 原因:源操作数和目的操作数的宽度必须相同 改:MOV AX, 050AH

7、MOV SS, 2400H ; 错 原因:立即数不能直接送段寄存器 改:MOV AX, 2400H

8、PUSH AH ; 错

原因:堆栈操作指令PUSH和POP,只能对16位数进行操作,一次压入弹出一个字 改:PUSH AX

9、PUSH 2000H ; 错

原因:堆栈操作指令PUSH和POP,必须对寄存器的内容或内存单元的内容进行操作 改:PUSH [2000H]

四、简单题

1、若用一个字节来表示带符号数,判断下列各运算在机内进行时是否会产生溢出,写出判断过程。

(1). 5BH+32H; (2). -08H-15H;

答:A. 产生溢出, 5BH=01011011B其补码表示的机器数为:01011011 32H=00110010B其补码表示的机器数为:00110010 相加的结果为:10001101

数值最高位向符号位进位,但符号位向前无进位,故产生溢出。 B. 不产生溢出, -08H=-00001000B其补码表示的机器数为:11111000 -15H=-00010101B其补码表示的机器数为:11101011 相加的结果为:111100011 数值最高位向符号位进位,符号位同时也向前进位,故不产生溢出. 2、分别指出下列指令中的源操作数和目的操作数的寻址方式。

(1)MOV AX,2000H 立即寻址 (2)MOV CX,DATA[SI] 寄存器相对寻址 (3)ADD AX,[BX+DI] 基址变址寻址 (4)AND AX,BX 寄存器寻址 (5)MOV [SI],AX 寄存器间接寻址 (6)MOV AX, [BX+DI+06H] 相对基址变址寻址

3、现有(DS)=2000H,(ES)=1200H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。

(1)MOV AX,1200H (2)MOV AX,BX (3)MOV AX,[1200H] (4)MOV AX,[BX] (5)MOV AX,[BX+1100H]

答:(1)指令MOV AX,1200H执行完后AX寄存器的内容为1200H; (2)指令MOV AX,BX执行完后AX寄存器的内容为0100H;

(3)指令MOV AX,[1200H]是将从物理地址=(DS)*10H+1200H=21200H开始的两个单元内容送AX,执行完后AX寄存器的内容为4C2AH;

(4)指令MOV AX,[BX]是将从物理地址=(DS)*10H+(BX)=20100H开始的两个单元内容送AX,故执行完后AX寄存器的内容为3412H;

(5)指令MOV AX,[BX+1100]是将从物理地址=(DS)*10H+(BX)+1100H=21200H开始的两个单元内容送AX,故执行完后AX寄存器的内容为4C2AH; 4、设DS= 2000H , SS=3000H , SP=0064H,执行下列程序: MOV AX, 1000H PUSH AX MOV BX, AX PUSH [BX] POP [1002H] POP [BX]

表1 表2 表3

(1)执行完PUSH AX指令后,填写表2,并写明过程。 堆栈段物理地址:PA=(SS)*10H +(SP) =30000H + 0064H =30064H

堆栈指针先减1,则SP指向30063H,高位字节先入栈,放在较高地址单元,SP指针再减一,低位字节后入栈,放在较低地址单元;

(2)执行完PUSH [BX]指令后,填写表2,并写明过程 数据段的物理地址:PA=(DS)*10H +(BX) =20000H + 1000H =21000H

从物理地址21000H开始的两个单元内容压入堆栈段。执行完后(30061H)=34H, (30060H)=12H。

(3)先后执行完POP [1002H] , POP [BX]后,填写表3,并写明过程。 执行POP [1002H]后的物理地址:PA=(DS)*10H +1002H =20000H + 1002H

=21002H

把堆栈段里面的内容出栈放入以物理地址21002H开始的两个内存单元中,执行完后:(21002H)=12H,(21003H)=34H 。

执行POP [BX]后的物理地址:PA=(DS)*10H +1000H =20000H + 1000H =21000H

把堆栈段里面的内容出栈放入以物理地址21000H开始的两个内存单元中,执行完后:(21000H)=00H,(21003H)=10H 。

5、在B1,B2,B3字节类型变量中,分别存有8位带符号数a,b,c,实现 (a*b+c)/a运算。 程序如下:

MOV AL,B1 ;a→(AL) IMUL B2 ;实现a*b→(AX) MOV CX,AX ;(AX)→(CX) MOV AL,B3 ;c→(AL)

CBW ;扩展符号位至AH中

ADD AX,CX ;(AX)+(CX)→(AX),完成a*b+c IDIV B1 ;完成(a*b+c)/a,商→(AL),余数→(AH)

6、算术运算综合举例,计算: (V-(X*Y+Z-540))/X,其中X,Y,Z,V均为16位带符号数,已分别装入X,Y,Z,V单元中,要求上式计算结果的商存入AX,余数存入DX寄存器。 程序如下:

7、编程实现将AL中的数乘以10(求10x); 程序如下: SAL AL, 1

; 将AL中数左移1位,得2x

MOV BL, AL ; 2x保存在BL中. MOV CL, 2 ; 移位次数送入CL SAL AL,CL; 2x左移2位,得8x ADD AL, BL

; 2x 加上8x,AL中为10x

8、 将AL中的压缩BCD码变成非压缩BCD码,并存放在NUM开始的存区。

程序如下:

MOV AL, 48H ; AL: 0100 1000 MOV AH, AL ;

AND AL, 0FH ; AL: 0000 1000 MOV CL, 4 ;

SHR AH, CL ; 把AH单元的内容右移4位。AH: 0000 0100

MOV NUM, AX ; NUM: 0000 1000 NUM+1: 0000 0100

9、要求将2000:1000地址开始的100个数传送到3000:0000开始的单元中去。 程序如下:

MOV AX,2000H ;设置源操作数段地址

MOV DS,AX

MOV AX,3000H ;设置目的操作数段地址 MOV ES,AX

MOV SI,1000H ;源操作数偏移地址送SI MOV DI,0 ;目的操作数偏移地址送DI MOV CX,100 ;传送的字节数送CX CLD ;使DF=0,指针按增量修改 NEXT: MOVSB

DEC CX ;计数减1

JNZ NEXT ;计数器不为0,则继续传送 ??

10、比较两个字符串是否相同,并找出其中第一个不相等字符的地址,将该地址送BX,不相等的字符送AL。两个字符串的长度均为200个字节,M1为源串首地址,M2为目标串首地址。

LEA SI,M1 ;SILEA DI,M2 ;DIMOV CX,200 ;CX

CLD ;DF=0,使地址指针按增量方向修改 RERP CMPSB ;若相等则重复比较

JZ STOP ;若ZF=1,表示两数据串完全相等,转STOP

DEC SI ;否则SI-1,指向不相等单元 MOV BX,SI ;BXMOV AL,[SI] ;ALSTOP:HLT ;停止

程序中找到第一个不相等字符后,地址指针自动加1,所以将地址指针再减1,即得到不相等单元的地址。 11、

本文来源:https://www.bwwdw.com/article/uh95.html

Top