微机原理习题集(4章)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.单项选择题:
1、在汇编语言程序设计中,变量定义时,以下为非法的类型属性是__C__;
A 字节
B 字
C 字符
D 双字
2、以下哪个元素是汇编语言中语句的必要组成部分_B___;
A 标号
B 操作助记符
C 操作数
D 注释
3、下列指令错误的是__B__;
A INC WORD PTR [SI]
B PUSH AL
C POP CX
D JMP BX
4、下面说法正确的是_D___;
A 低级语言更接近于自然语言。
B 机器语言编写的程序可以应用于不同微处理器的计算机系统。
C 高级语言编写的程序依赖于微处理器的型号。
D 程序在准备执行时,必须存储于存储器中。
5、以下指令错误的是_D___;
A MOV AX,2000H
B MOV [BP],DL
C MOV DS,AX
D MOV 20H,AL
6、下面叙述错误的是_C___;
A 宏指令是用户自己定义的
B 注释是以分号开头的。
C 名称在语句中是必须的
D 每条语句都必须有操作助记符。
7、条件转移指令“JS”的转移条件是_B___;
A SF=0
B SF=1
C CF=0
D CF=1
8、在微计算机中用来存放源字符串地址的偏移量的寄存器是_C___;
A SP
B BP
C SI
D DI
9、汇编程序是一个__B__;
A 源程序
B 语言加工程序
C 连接程序
D 目标程序
10、下列字符串能用于标识符的是_B___;
A LENGTH
B MOVE
C 13A
D SEGMENT
11、若要对操作数清0,一般对操作数进行__C__运算。
A 相与
B 相或
C 异或
D 移位
12、汇编语言编辑程序输出的文件类型是_A___;
A .asm
B .obj C.exe D .c
13、堆栈的存取规则正确的是_D___;
14、 A FIFO B FILO CLILO D以上都不对
14、以下指令不是逻辑运算指令的是__D__;
A XOR AL,3
B NOT AL
C OR AL,3
D CWD
15、在指令“MOV AX,INBUFF”中,变量INBUFF 的段是_B___ ;
A CS
B DS
C SS
D ES
16、若READY为低电平,此时CPU执行___B_周期;
A T
3 B T
W
C T
4
D T
1
17、连接程序输出的文件类型是_C___;
A .asm
B .obj C.exe D .c
18、已知程序段:_A_
MOV AX,0FF60H
STC
MOV DX,96
XOR DX,0FF00H
SBB AX,DX
程序执行后AX=____,CF=____。
A 0FFFFH,1
B 0000H,1
C 0FFCAH,1
D 0000H,0
19、下列指令错误的是__B__。
A INC WORD PTR [SI]
B PUSH AL
C POP CX
D JMP BX
20、下列语句中有语法错误的语句是_A___;
A MOV AX,[BX][BP]
B ADD AX,[BX]
C CMP [BX],AX
D LEA SI,20H[BX]
21、指令语句“MOV AX,2 LT 5”执行后,AX中的内容是__D__;
A 0FFFFH
B 0000H
C 00EEH
D 0001H
22、相对于子程序而言,使用宏指令__D__;
A 占据空间大,执行时间长
B 占据空间小,执行时间短
C 占据空间大,执行时间短
D 占据空间小,执行时间长
23、INT n指令中断是_C___;
A 由外部设备请求产生
B 由系统断电引起的
C 通过软件调用的内部中断
D 可用IF 标志位屏蔽的
24、下列指令中,错误的指令是_C___;
A MOV AX,100
B POPF
C AD
D OFFSET [BX][SI],DX D DEC DI
25、当程序装入内存时,计算机将起始程序的段地址和偏移地址分别自动装入
__B__;
A DS和SI中
B CS和IP中
C SS和SP中
D ES和DI中
26、汇编程序输出的文件类型是_C__;
A .asm
B .obj C.exe D .c
27、下列指令中,错误的指令是__C__;
A MOV AX,10H
B ADD AH,AL
C POP AL
D MUL CL
28、汇编程序源程序的文件类型是_B__;
A .asm
B .obj C.exe D .c
29、下列语句中有语法错误的语句是__B__;
A ADD AX,[DX]
B CMP AX,[BP]
C INC BYTE PTR [BX]
D MOV SI,5[SI]
30、下面不是主程序与子程序之间的参数传递方式的是_D__;
A 寄存器
B 存储单元
C 堆栈
D 变量
31、下面正确的标识符是_B_;
A 3ab
B .ab
C a.b
D #ab
32、汇编程序输出的文件类型是_B___;
A .asm
B .obj C.exe D .c
33、下列指令错误的是____。
A DEC DAT1
B ROL AX, CL
C MOV [BX], 05H
D JMP SI
34、当8086CPU进行存储器读操作时,对应的引脚状态为__C__ ;
A IO
M/=0, RD=1 M/=0, RD=0 B IO
C IO
M/=1, RD=0 D IO
M/=1, RD=1
35、下面用于定义双字的关键字是__B__;
A D
B B DD
C DW
D DT
二、填空题:
1、根据下面的指令和伪指令序列,AX寄存器的内容为______。
TAB DB 1,2,3,4,5,6
ENTRY EQU 3
MOV BX,OFFSET TAB
ADD BX,ENTRY
MOV AX,WORD PTR [BX]
2、阅读程序并填空:MOV AX,1000H
MOV BX,2000H
MOV CX,3000H
PUSH CX
PUSH BX
PUSH AX
POP CX
POP AX
程序执行后,寄存器的内容是BX= _,CX= 。
3、MOV AL,0FH
MOV BL,0FEH
XOR AL,BL
程序段执行后,(AL)= __ ___,(CF)= ____。
4、程序 MOV CL,3
MOV AL,0AAH
SHR AL,CL
SAR AL,1
RCL AL,1
ROR AL,CL
执行后,AL= __ ___;CF=_____。
5、MOV AX,0FF60H
STC
MOV DX,96
XOR DX,0FF00H
SBB AX,DX
程序执行后AX= ,CF=______。
6、指令“SUB [BX+SI],CX”中源操作数寻址方式是____,目的操作数的寻址方式是_ _。
7、阅读程序并填空: MOV BX,2000H
PUSH BX
MOV AX,0F1H
AND BX,AX
POP AX
程序执行后,寄存器的内容是BX= ,AX= ;
8、阅读程序并填空:MOV BX, 0FFH
AND BX, 0FFFH
OR BX, 0F0FH
XOR BX, 00FFH
上述程序段运行后,BX= ,CF= 。
9、阅读程序并填空:MOV BX, 1234H
AND BX, 00FFH
OR BX, 0F0FH
XOR BX, 00FFH
上述程序段运行后,BX= ,ZF= 。
10、阅读程序并填空: MOV BX,5500H
PUSH BX
MOV AX,0FFH
OR BX,AX
POP AX
程序执行后,寄存器的内容是AX= ,BX= ;
三、名词解释:
1、汇编
2、子程序
3、递归子程序
4、宏指令
5、子程序可再入
6、系统功能调用
7、子程序嵌套
8、子程序入口参数
四、简答题:
1、已知程序段如下,要求
(1)画出此程序段的流程图。
(2)写出该程序段实现的功能。
LEA DI, BUF
MOV CX, 10
XOR AL, AL
AGAIN: MOV [DI], AL
INC DI
LOOP AGAIN
2、已知数据段起始地址为0400H:0000H,并定义如下页所示:
DATA1 DB 0AH
DATA2 DW ‘12’
DATA3 DB ?
DB 3 DUP(00H)
DATA4 DD 34567H
要求画出各变量在内存当中的存放位置。
3、已知程序段如下,回答以下问题:
(1)画出该程序段的流程图;
(2)说明该程序段实现的功能。
MOV BX,2
MOV CX,63H
MOV AX,1
LOP:ADD AX,BX
INC BX
LOOP LOP
4、下面程序段的功能是把DA1数据区的数0—9转换为对应的ASCII码,试完善
本程序段。
DA1 DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
ASCI DB 10 DUP(?)
CUNT EQU ASCI-DA1
LEA SI,DA1
LEA DI,ASCI
_______
LOP1:MOV AL,[SI]
_______
MOV [DI],AL
INC SI
INC DI
LOOP LOP1
5、已知程序段如下:
(1)画出该程序段的流程图;
(2)说明该程序段实现的功能。
DA1 DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
ASCI DB 10 DUP(?)
CUNT EQU ASCI-DA1
LEA SI,DA1
LEA DI,ASCI
MOV CX,COUNT
LOP1:MOV AL,[SI]
ADD AL,30H
MOV [DI],AL
INC SI
INC DI
LOOP LOP1
6、已知程序段如下:
DAT1 DB 00H,00H,56H,73H,00H,65H
CUNT EQU 6
......
MOV CX,COUNT
MOV BX,-1
LOP:INC BX
CMP DAT[BX],BYTE PTR 0
LOOPZ LOP
JNE LOP1
MOV BL,0FFH
LOP1:MOV DAT1,BL
(1)说明该程序段实现的功能;
(2)程序执行后,DAT1字符单元中的内容是什么。
7、已知程序段如下:
DAT1 DB 00H,00H,56H,73H,00H,65H
CUNT EQU 6
......
MOV CX,COUNT
MOV BX,-1
LOP:INC BX
CMP DAT[BX],BYTE PTR 0
LOOPZ LOP
JNE LOP1
MOV BL,0FFH
LOP1:MOV DAT1,BL
(1)画出该程序段的流程图;
(2)说明该程序段实现的功能;
(3)程序执行后,DAT1字符单元中的内容是什么。
8、下面程序将0500H 开始的100 个数中非零数传送到1000H 开始的存储区,
试完成程序。
MOV CX,100
MOV SI,0500H
MOV DI,1000H
S1∶MOV AL,[SI]
S2∶CMP AL,0
_____________
MOV [DI],AL
NEXT1∶INC DI
NEXT2∶INC SI
_____________
(1)画出该程序段的流程图;
9、完成下面将1000H 单元开始100 个数传到1050H 开始存储区中的程序。
MOV BX,1000H
MOV CX,100
_____________
BEGIN∶MOV AL,[BX][SI]
MOV [BX+SI+50H],AL
_____________
LOOP BEGIN
(1)画出该程序段的流程图;
10、已知程序段如下:
MOV BX,1000H
MOV CX,100
MOV SI,0
BEGIN∶MOV AL,[BX][SI]
MOV [BX+SI+50H],AL
INC SI
LOOP BEGIN
(1)画出该程序段的流程图;
(2)说明该程序段实现的功能。
11、已知程序段如下:
MOV BX,01H
MOV CX,99
XOR AX, AX
BEGIN∶MOV AX,BX
INC BX
INC BX
LOOP BEGIN
(1)画出该程序段的流程图;
(2)说明该程序段实现的功能。
12、完成下面将1000H 单元开始100 个数求绝对值并传送到1050H 开始存
储区中的程序。
MOV BX,1000H
MOV CX,100
_____________
BEGIN∶MOV AL,[BX][SI]
AND AL,AL
______________
NEG AL
NEXT: MOV [BX+SI+50],AL
_____________
LOOP BEGIN
(1)画出该程序段的流程图;
13、下面程序将0500H 开始的100 个数加偶校验传送到1000H 开始的存储
区,试完成程序。
MOV CX,100
MOV SI,0500H
MOV DI,1000H
S1∶MOV [SI],AL
MOV BL,AL
OR AL,80H
_____________
MOV [DI],AL
_____________
NEXT∶INC SI
_____________
(1)画出该程序段的流程图;
五、程序设计题:
1、要求从键盘输入10个个位数字,求其中偶数的个数,并将其存入到RESULT 存储单元中。
2、已知BUF缓冲区中存放了10名学生的成绩,要求编程求出成绩的平均值,并存放在AVER存储单元中。
3、编写程序,求某数组中正数的个数。
设数组中第1个元素是数组中数据的个数,第2个元素用来存放结果,即数组中正数的个数,数组中的数据从第3个元
素开始存放。
数组中的每个元素占一个字节。
4、已知数组中存放了10个字节数据,要求编程求数组数据的绝对值。
5、已知两个64位的多位数据相加,要求编程将结果存放在存储单元中。
6、要求编写程序,将两位分离式BCD数转换成组合式BCD。
7、要求编写程序,将字节中低四位的一位16进制显示在屏幕上。
8、要求编写程序,将存储单元DAT字节中存放的二进制数打印在屏幕上
9、要求编写程序,从键盘输入一个字符串存入到缓冲区BUF中,并将字符串中的小写字母都转换成大写字母。
10、编写程序,统计BL寄存器中0的个数,存放在RES单元并显示。
11、编写程序,将存放在BCD1中的两位十进制数ASCII码合并为一个字节的组合BCD码,并存放在BCD2单元中。
12、编写程序,比较存放在A、B两个个字节单元中的数据,若两个数据全不为0,则求出两数之和存放于C中;若两个字节中有一个数据为0,则将另外一个数据清零。
13、编写程序,实现从键盘输入一个字符串,并统计其中非空格字符的个数存放于LEN单元,字符串以‘#’结束。
14、编写程序,求出BUF缓冲区中20个字节数据中的最小值,并存放到MIN单元中。
15、编写程序,实现在50个字节的BUF缓冲区中循环存入字符‘0’~‘9’。