资源描述
微机原理与接口技术练习题
一、选择题
1、通常说计算机的内存为32M、64M或128M指的是:(c)
A、RAM的容量 B、ROM的容量 C、RAM和ROM的容量 D、硬盘的容量
2、汇编语言的优点不包括__d___。
A、直接有效地控制硬件 B、生成的代码序列短小
C、运行速度快 D、编程容易
3、十六进制数88H,可表示成下面几种形式,请找出错误的表示(d )。
A.、无符号十进制数136 B、带符号十进制数-120
C、压缩型BCD码十进制数88 D、8位二进制数-8的补码表示
4、下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(b )
A、AX,BX,CX,DX B、BX,BP,SI,DI
C、SP,IP,BP,DX D、CS,DS,ES,SS
5、可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是( d )。
A、.AX,BX,CX,DX B、DS,ES,CS,SS
C、SP,BP,IP,BX D、SI,DI,BP,BX
6、当运行结果为0时,ZF=____b______。
A、0 B、1 C、任意 D、不影响
7、某次求和结果最高位为1,则SF=____b______。
A、0 B 、1 C、任意 D、不影响
8、设DS=5788H,偏移地址为94H,该字节的物理地址_____c________。
A、57974H B、5883H C、57914H D、58ECH
9、 “MOV AX,[BP+DI]”指令从_____b_____段取出数据送AX。
A CS B SS C DS D ES
10、下面不能用于寄存器寻址的寄存器有( c )
A、CS B、AX C、IP D、SI E、CL F、SP
11、存储器寻址方式在指令中给出操作数在内存中的地址,该地址是(c)
A 逻辑地址 B.有效地址 C偏移地址 D.物理地址 E.段地址
12、堆栈的操作原则是________b_____。
A先进先出 B后进先出 C后进后出 D循环
13、“MOV SP,3210H”和“PUSH AX”指令执行后,SP寄存器值是_c___。
A、3211H B、320EH C、320FH D、3212H
14、假设当前SP=700H,执行pop ax指令后,SP内容变为__d___
A、6FEH B、6FFH C、701H D、702H
15、用一条指令实现将AX←BX+SI的方法是__d____
A 、XCHG AX,[BX][SI] B、 MOV AX,[BX][SI]
C、MOV AX,[BX+SI] D、LEA AX,[BX][SI]
16、设AX=1000H,BX=2000H,则在执行了指令“SUB AX, BX”后,
标志位CF和ZF的值分别为________c_____。
A、 0,0 B、0,1 C、1,0 D、1,1
17、设DH=10H,执行NEG DH指令后,正确的结果是( d )。
A.、DH=10H CF=1 B、DH=0F0H CF=0
C、DH=10H CF=0 D、DH=0F0H CF=1
18、IMUL CL指令实现__a____功能
A、有符号乘法:AX←AL×CL B、无符号乘法:AX←AL×CL
C、有符号乘法:DX←AL×CL D、无符号乘法:DX←AL×CL
19、执行除法指令后,影响的标志位是___a___
A、所有状态标志都不确定 B、CF OF C、SF、ZF D、AF、PF
20、下列4条指令中,有___a___条指令需要使用DX寄存器
MUL BX、IDIV BL、IN AX,20H、OUT 21H,AL
A 1 B 2 C 3 D 4
21、执行下面指令序列后,结果是( a )。
MOV AL,82H
CBW
A、AX=0FF82H B、AX=8082H C、AX=0082H D、AX=0F82H
22、执行AND AL,80H后,可以肯定的执行结果是AL寄存器的__c_
A最高位为0 B 最高位为1 C低7位均为0 D 低7位均为1
23、指令_a__实现对AX当中D15和D0位设置为0,其他位不变的功能。
A AND AX,7FFEH B OR AX,8001H
C XOR AX,8001H D NOT AX
24、指令__b___实现对AX当中D15和D0位设置为1,其他位不变的功能。
A AND AX,7FFEH B OR AX,8001H
C XOR AX,8001H D NOT AX
25、执行OR AL,80H后,可以肯定的执行结果是AL寄存器的__b____
A 最高位为0 B最高位为1 C低7位均为0 D低7位均为1
26、指令______c____实现对AX当中D15和D0位求反,其他位不变的功能。
A AND AX,7FFEH B OR AX,8001H
C XOR AX,8001H D NOT AX
27、设AX=1000H
NEG AX
NOT AX
执行上述指令后,AX=__b____
A 1001H B 0FFFH C 1000H D 0111H
28、下列指令中,执行后对标志未发生影响的是__a____。
A MOV AX,[BX] B ADD AX,0FFHH
C AND AX,[BX] D TEST AX,0FFHH
29、执行“SAR BX,1”指令后,BX最高D15位等于___d_______。
A 0 B 1 C D0 D D14
30、对寄存器AX的内容乘以2的指令是__b____。
A SHR AX,1 B SHL AX,1
C ROR AX,1 D RCR AX,1
31、 8086/8088CPU的条件转移指令Jcc采用____a______地址寻址方式。
A相对 B直接 C 寄存器间接 D存储器间接
32、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( d )。
A、CMP B、SUB C、AND D、MOV
33、当标志CF=1时转移到目的地址的条件转移指令是____a__
A JC B JNC C JZ D JNZ
34、条件转移指令JA产生程序转移的条件是__b____
A CF=0和ZF=1 B CF=0和ZF=0 C CF=1和ZF=1 D CF=1和ZF=0
35、循环指令LOOPNZ继续循环的条件是___c___
A CX=0,且ZF=0 B CX=0,或ZF=1 C CX≠0,且ZF=0
D CX≠0,或ZF=1
三、判断错对
1、“-46”用原码表示为:(10101110)原码对
2、086/8088系统中,堆栈的操作可以是字节或字操作。错
3、已知AX=1234H、BX=4612H,计算1234-4612的差的算法不能写成下面的形式:对
SUB AX,BX DAS
4、已知CL=23H,指令“CMP CL,CL”执行后标志位的值是:CF=0,ZF=1,SF=0对
5、判断下列8086指令的对错:SHL AX,3错
6、对寄存器AX的内容乘以4的正确指令序列是SHL AX,1;SHL,AX,1 对
7、已知CL=0,指令INC CL的执行的结果CF=不变对
8、设DH=10H,执行NEG DH指令后,正确的结果是 DH=0F0H CF=0错
9、下列指令中,执行后对标志未发生影响的是D错
A MOV AX,[BX] BADD AX,0FFHH
C AND AX,[BX] D TEST AX,0FFHH
10、对寄存器AX的内容乘以2的指令是SHL AX,1对
11、8088按逻辑段组织程序,数据变量应该且必须在数据段中。错
12、说明性语句可以在任何一个段中。对
13、使用简化段定义源程序格式,必须具有.MODEL语句,
且位于所有简化段定义语句之前。对
14、使用简化段定义源程序格式,必须具有.MODEL语句,但写在何处没有关系.错
15、正误判断题:源程序中只能用标号START表示程序的起始执行点。错
16、完整段定义的程序入口点首先应该设置数据段寄存器的值。对
17、汇编源程序可以用WORD文字处理系统处理,并保存为WORD文档。错
18、对于常数41H,在汇编语言中表达成字符’A’也是正确的,
因’A’的ASCII码就是41H。对
19、 EQU和=两个伪指令的功能和用法一样。错
20、 MOV AX , DI + SI有没有语法错误?错
四.填空题
1、段的定义用的是伪指令()SEGMENT/ENDS
2、程序结束的语句是()解答:MOV AX,4C00H INT 21H
3、用汇编语言编写的程序称为______,它必须用______程序将它转换成二进制的机器语言程序,这种机器语言程序被称为______,而转换的过程称为______。它还必须用______程序连接,才能生成可执行的程序 汇编源程序,汇编程序,目标代码,汇编。连接
4、汇编源程序不可以用word文字处理系统处理,并保存为word,师因为文档汇编源程序必须是纯文本文件
5、在表达存储容量时,1KB=_____B;1MB=___________KB。1024 1024
6、8086/8088CPU的地址线有20条,它的存储容量为_______。1MB
1KB=210B=1024B,1MB=220B=210KB=1024KB,1GB=230B=210MB=220KB=1024MB,1TB=240B=230KB=220MB。所以答案:1024/210 1024/210/1K
7、外设与系统之间必须通过________连接。系统通过___________与外设进行通信。
输入输出接口电路(I/O接口) I/O端口
8、机器指令是一组 ___,由__和__构成。机器语言程序常被称作___。二进制代码,操作码 操作数 目标程序
9、对于计算机内部的一个编码:01001001,他代表什么含义01001001作为ASCII码,表示字符I
10、计算1101+11,1101-11,1101*11,1101/11的值。
1101+11=10000 1101-11=1010 1101*11=100111 1101/11=100(余数1)e
11、8086CPU的主存寻址范围是(),数据线有()条
主存寻址空间为1M,数据线有16条eee
12、8086CPU的内部结构分为总线接口(BIU)和执行单元(EU)两大部分。BIU负责CPU对存储器和外设的访问;EU负责指令的译码、执行和数据的运算。
13、完成一条指令的功能可以分为两个主要阶段:(取指令)和(执行指令)
14、Intel 8086 CPU的段寄存器有________________________。
15、Intel 8086 CPU的SP寄存器的主要作用是_____________________________。
16、(CS)=1000H,(DS)=2000H,(ES)=3000H,(SS)=4000H,(DI)=a100,操作数 [DI+1000H] 的寻址方式是_________,物理地址是______ 。
17、标志寄存器中OF标志位的主要作用是_____________________。
18、TEST指令的功能是______________________________。
19、指令LEA__AX, [SI+100H]的具体操作是_____________________。
20、有符号二进制字节数可表示的数的范围是_____________________ 。
五、回答问题
1、说明下列指令中源操作数的寻址方式?如果BX=2000H,DI=40H,给出DX的值或有效地址EA的值。
(1) MOV DX,[1234H] (1)直接寻址,EA=1234H
(2) MOV DX,1234H (2)立即数寻址,DX=1234H
(3) MOV DX,BX (3)寄存器寻址,DX=2000H
(4) MOV DX,[BX] (4)间接寻址,EA=2000H
(5) MOV DX,[BX+1234H] (5)相对寻址,EA=3234H
(6) MOV DX,[BX+DI] (6)基址变址寻址,EA=2040H
(7) MOV DX,[BX+DI+1234H] (7)相对基址变址寻址,EA=3274H
2、已知DS = 2000H、BX = 0100H、SI = 0002H,存储单元[20100H] ~ [20103H]依次存放12 34 56 78H,[21200H] ~ [21203H]依次存放2A 4C B7 65H,说明下列每条指令执行完后AX寄存器的内容。
(1) MOV AX,1200H (1)AX=1200H
(2) MOV AX,BX (2)AX=0100H
(3) MOV AX,[1200H] (3)AX=4C2AH
(4) MOV AX,[BX] (4)AX=3412H
(5) MOV AX,[BX+1100H] (5)AX=4C2AH
(6) MOV AX,[BX+SI] (6)AX=7856H
(7) MOV AX,[BX][SI+1100H] (7)AX=65B7H
3、请分别用一条汇编语言指令完成如下功能:
(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器。
(2)用寄存器BX和SI的基址变址寻址方式把存储器的一个字节与AL寄存器的内容相加,并把结果送到AL中。
(3)用BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和CX寄存器的内容相加,并把结果送回存储器中。
(4)用位移量为0520H的直接寻址方式把存储器中的一个字与数3412H相加,并把结果送回该存储单元中。
(5)把数0A0H与AL寄存器的内容相加,并把结果送回AL中。
(1)ADD DX,BX
(2)ADD AL,[BX+SI]
(3)ADD [BX+0B2H],CX
(4)ADD WORD PTR [0520H],3412H
(5)ADD AL,0A0H
六、编程序
1、已知两个八位无符号数x和y,分别存放在BUF和BUF+1单元中,且x>y。请编程序计算x-y,结果存回BUF单元。(4.1)此题为两个八位无符号数相减,我们可以直接使用减法指令SUB来实现。
源程序如下:
SSEG SEGMENT STACK ‘STACK’
STA DW 100 DUP(?)
SSEG ENDS
DSEG SEGMENT ‘DATA’
BUF DB 82,60
DSEG ENDS
CSEG SEGMENT ‘CODE’
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
START: MOV AX,DSEG
MOV DS,AX
MOV AL,BUF
SUB AL,BUF+1
MOV BUF,AL
MO AH,4CH
INT 21H
CSEG ENDS
END START
2、已知DAT单元有一数x。现要求编程将x的低四位变为1010,最高位D7置为1,其它三位不变。
MOV AL,DAT ; 取x
AND AL,70H ;清低四位和D7位
OR AL,8AH ;置低四位为1010,D7位为1
MOV DAT,AL ;送回DAT单元
3、 DAT单元的内容拆成高、低各四位,然后分别存于DAT+1及DAT+2的低四位。(4.1)、
此类拆字问题一般均采用移位指令。先将DAT单元内容取出,屏蔽高四位,送入DAT+2单元。再将DAT单元内容右移四位。即:将高四位移至低四位,高四位补0,送入DAT+1单元。
程序如下:
MOV AL,DAT
MOV DAT+2,AL
AND DAT+2,0FH
MOV CL,4
SHR AL,CL
MOV DAT+1,AL
HLT
4、在DATA单元有一个二进制数x,要求编程完成运算
x+1
x>0
y=
x
x=0
x-1
x<0
本题为分支加简单运算。判断条件在零的左右,分支有三条,
程序如下:
MOV AL,DATA
OR AL,AL
JZ L1
JNS I1
DEC AL
JMP L1
I1: INC AL
L1: MOV Y,AL
HLT
5、编一程序,要求将BUF单元开始的100个存储单元全部清零。只知以0FFH作为结束标志,又该如何处理?
本题所要做的工作是将100个连续单元逐一清零。采用循环的方法最为简单。设置一个循环计数器,每清完一个单元,计数器减1,然后判断计数器是否为0,不为0则再去清一个存储单元,否则清零工作完成。
一般情况下,已知循环次数的,循环判断放在循环体的后面。未知循环次数但已知结束条件的,循环判断置于循环体的前面。
编程如下:
LEA BX,BUF
MOV CL,64H
LP: MOV [BX],0
INC BX
DEC CL
JNZ LP
HLT
注:以上采用字节操作,每次清一个存储单元。也可以采用字操作,每次清两个存储单元。
程序如下:
LEA BX,BUF
MOV CX,0032H
MOV AX,0
LP: MOV [BX],AX
ADD BX,2
LOOP LP
HLT
注:当不知道所清单元个数但已知结束条件时,可编程序如下:
LEA BX,BUF
MOV AL,0FFH
LP: CMP AL,[BX]
JE DONE
MOV [BX],0
INC BX
JMP LP
展开阅读全文