微机原理期中考试试卷及答案
秦朝皇帝-实践心得
…
…
…
…
…
…
…
…
《微机原理及应用》课程期中测试试卷答案
注意:1、本试卷共 4 页;
2、考试时间120分钟
⑴寄存器与存储单元内容相加送寄存器 ADD AL, [BX] 。
⑵寄存器互送
MOV AX, BX 。
⑶将标志寄存器进栈 PUSHF 。
⑷立即数与寄存器内容相加送寄存器 ADD AX, 1234H 。
名
姓
师
教
号
题
学
审
号
序
号
班
学
教
师
教
纸
题
卷
命
试
学
大
峡
三
…
…
3、姓名、学号必须写在指定地方 阅卷负责人签名:
⑸用伪指令将48H、5AH存入字节数据区ARRAYB
…
题 号 一 二 三
四 五 六 七 八 总 分
…
ARRAYB DB 48H , 5AH 。
.
得 分
…
…
…
阅卷人 得分
一、填空题 (30×1=30分)
…
阅卷人
得分
二、简答题(10+5+15=30分)
线
封
1、调用程序、子程序传送参数的方法通常有寄存器、内存和堆栈三种方法。
2、下述机器数形式可表示的数值范围是(请用十进制形式写出):单字节无符号
整数0~255;单字节有
密
1.指出下列指令所用到的寻址方式(10分)
符号整数-128~+127。
指令 目的操作数寻址方式
过
3、乘法指令MUL的指令格式只有一个源操作数,若源操作数的类型
属性为字节,则乘积在AX中,
MOV AX,1000H 寄存器寻址
超
若源操作数的类型属性为字,则乘积的高16位在 DX 中,低16位在 AX
中。
MOV AX,DS:[1000H] 寄存器寻址
要
4、请给出标志寄存器中标志位OF、IF、SF、ZF、PF、CF的说明: OF
溢出、IF 中断、SF 符号、
MOV AX,DX 寄存器寻址
不
ZF 零、PF 奇偶、CF 进位。
MOV
[BX],AL 寄存器间接寻址
5、寄存器间接相对寻址的有效地址是寄存器的内容与相对地址位移量代数和。
题
MOV [BX+SI+5],AX 基址变址相对寻址
6、指令XLAT通常用于查表操作,在使用该指令前,应把表首的偏移首地址送入BX,待转换的
MOV [BP],BX 寄存器间接寻址
试
代码在表中的序号送AL。
…
MOV AX, [DI+10]
寄存器寻址
…
7、对于指令 MOV
AX,[BX]执行前(DS)=1000H,(BX)=11H,则源操作操作数的物理地址为
MOV AX,[SI] 寄存器寻址
.
…
10011H
。设主存中的部分存储单元的物理地址及存储数据如下表所示,则前述指令执行后的
MOV
AX,[BX+BP] 寄存器寻址
…
…
AX中数据为 0A7F 。
LODSB
隐含寻址
…
1000F 10010 10011 10012
10013
.
…
3AH 45H 7FH 0AH FCH
2、阅读如下程序段,回答提出的问题。(5分)
…
…
8、
80868088CPU共有
_____
20 根地址线,IO端口最大允许数是
65536 个。
MOV AX,3456
…
9、80868088的
MNMX
引脚接 高
电平时,处于最小工作模式。
XCHG AX,BX
…
10、为下述情况各举一例。
…
MOV AX,3456
…
…
A卷
源操作数寻址方式
立即寻址
直接寻址
寄存器寻址
寄存器寻址
寄存器寻址
寄存器寻址
寄存器间接相对寻址
寄存器间接寻址
基址变址寻址
隐含寻址
1
SUB AX,BX
JE DONE
KK: ADD AX,BX
...
DONE:
设“KK”标号所在指
令在内存中物理地址为51010H;“DONE”标号所在指令在内存中的物理地址
为512A0H,
且(CS)=5000H,则
该程序执行完 “JE DONE” 指令后,AX=(
0000H ), ZF=( 1 ), IP=( 12A0H )
3、按要求编写程序段(只需要写出核心语句)
1)写出两条使AL中内容为0的指令
(2分)
MOV AL,00H
XOR AL,AL
2)使BL寄存器中高、低四位互换 (3分)
MOV CL,4
ROL BL,CL 或 ROR BL,CL
3)统计AX中“1”的个数,结果放在BL中(用移位指令实现)。(5分)
阅卷人 得分
答案一:
MOV BL ,00H
LOOP1: SHL AX,1
JNC NEXT
;最高位不是1
INC BL BL的数据加1
NEXT: JZ DONE; AX中数据为0,则结束
JNZ LOOP1
A卷
DONE:
HLT
答案二:
MOV BL ,00H
MOV
CX,16;循环16次
LOOP1: SHL AX,1
JNC NEXT 最高位不是1
INC BL
;BL的数据加1
NEXT: LOOP LOOP1
4)两个16位带符号数分别存放于X1和X2变量中,求X1X2,商和余数分别放
在Y1和Y2中;如果除数为0,则商和余数都置为0。(5分)
答: MOV AX,
X1
CWD 位扩展
MOV
BX,X2
IDIV BX
MOV
Y1,AX
MOV Y2,DX
三、程序设计题 (15×2=30分)
1.编写汇编程序完成以下功能:DEST和SOU
RCE是数据段中定义的长度为100
个字节的两个变量。找出第一个不相同的字节,找到后(假设一定
能找到),则将
SOURCE中的这个数送AL中,并将这个数相对于SOURCE数据区第一个元素的
位置记录在BL中。(只需要写出核心代码,推荐不使用串操作指令)
答:
2
MOV BL,00H
LEA
SI,SOURCE 源数据区首地址送SI
LEA DI,DEST
;目的数据区首地址送DI
MOV CX,100
ASSUME CS:CODE1,DS:DATA1,SS:STACK1
START:
MOV AX,DATA1
MOV DS,AX
MOV AL, AL中放置第一个数
NEXT: MOV
AL,[SI] 取第一个数据于BL中
CMP AL,[DI]
;比较两个数据
JNZ DONE;
INC SI
INC
DI
INC BL
LOOP NEXT
DONE:HLT
2. 试编制一程序,找出数据区DA中带符号数的最大
数,并将结果保存于MAX变量中。要求写
出所有代码,包括伪指令部分。(假定DA区数据为字节,且
一共有500个数据)
答:
DATA1 SEGMENT
MAX DB
?
DA DB -1,2,3,100,99,…
DATA1
ENDS
STACK1 SEGMENT STACK
DB 100 DUP(?)
STACK1 ENDS
CODE1 SEGMENT
A卷
LEA BX, DA
MOV CX,500
LOOP1:
CMP AL,[BX]
JGE NEXT
MOV AL,[BX]
NEXT: INC BX
LOOP LOOP1
MOV MAX,AL
CODE1
ENDS
END START
设置初始地址指针
循环次数
比较两数大小
将大数放于AL中
地址指向下一个数
循环
保存结果
3
;
;
;
;
;
;
…
…
…
…
…
…
…
…
《微机原理及应用》课程期中测试试卷答案
注意:1、本试卷共 4 页;
2、考试时间120分钟
⑴寄存器与存储单元内容相加送寄存器 ADD AL, [BX] 。
⑵寄存器互送
MOV AX, BX 。
⑶将标志寄存器进栈 PUSHF 。
⑷立即数与寄存器内容相加送寄存器 ADD AX, 1234H 。
名
姓
师
教
号
题
学
审
号
序
号
班
学
教
师
教
纸
题
卷
命
试
学
大
峡
三
…
…
3、姓名、学号必须写在指定地方 阅卷负责人签名:
⑸用伪指令将48H、5AH存入字节数据区ARRAYB
…
题 号 一 二 三
四 五 六 七 八 总 分
…
ARRAYB DB 48H , 5AH 。
.
得 分
…
…
…
阅卷人 得分
一、填空题 (30×1=30分)
…
阅卷人
得分
二、简答题(10+5+15=30分)
线
封
1、调用程序、子程序传送参数的方法通常有寄存器、内存和堆栈三种方法。
2、下述机器数形式可表示的数值范围是(请用十进制形式写出):单字节无符号
整数0~255;单字节有
密
1.指出下列指令所用到的寻址方式(10分)
符号整数-128~+127。
指令 目的操作数寻址方式
过
3、乘法指令MUL的指令格式只有一个源操作数,若源操作数的类型
属性为字节,则乘积在AX中,
MOV AX,1000H 寄存器寻址
超
若源操作数的类型属性为字,则乘积的高16位在 DX 中,低16位在 AX
中。
MOV AX,DS:[1000H] 寄存器寻址
要
4、请给出标志寄存器中标志位OF、IF、SF、ZF、PF、CF的说明: OF
溢出、IF 中断、SF 符号、
MOV AX,DX 寄存器寻址
不
ZF 零、PF 奇偶、CF 进位。
MOV
[BX],AL 寄存器间接寻址
5、寄存器间接相对寻址的有效地址是寄存器的内容与相对地址位移量代数和。
题
MOV [BX+SI+5],AX 基址变址相对寻址
6、指令XLAT通常用于查表操作,在使用该指令前,应把表首的偏移首地址送入BX,待转换的
MOV [BP],BX 寄存器间接寻址
试
代码在表中的序号送AL。
…
MOV AX, [DI+10]
寄存器寻址
…
7、对于指令 MOV
AX,[BX]执行前(DS)=1000H,(BX)=11H,则源操作操作数的物理地址为
MOV AX,[SI] 寄存器寻址
.
…
10011H
。设主存中的部分存储单元的物理地址及存储数据如下表所示,则前述指令执行后的
MOV
AX,[BX+BP] 寄存器寻址
…
…
AX中数据为 0A7F 。
LODSB
隐含寻址
…
1000F 10010 10011 10012
10013
.
…
3AH 45H 7FH 0AH FCH
2、阅读如下程序段,回答提出的问题。(5分)
…
…
8、
80868088CPU共有
_____
20 根地址线,IO端口最大允许数是
65536 个。
MOV AX,3456
…
9、80868088的
MNMX
引脚接 高
电平时,处于最小工作模式。
XCHG AX,BX
…
10、为下述情况各举一例。
…
MOV AX,3456
…
…
A卷
源操作数寻址方式
立即寻址
直接寻址
寄存器寻址
寄存器寻址
寄存器寻址
寄存器寻址
寄存器间接相对寻址
寄存器间接寻址
基址变址寻址
隐含寻址
1
SUB AX,BX
JE DONE
KK: ADD AX,BX
...
DONE:
设“KK”标号所在指
令在内存中物理地址为51010H;“DONE”标号所在指令在内存中的物理地址
为512A0H,
且(CS)=5000H,则
该程序执行完 “JE DONE” 指令后,AX=(
0000H ), ZF=( 1 ), IP=( 12A0H )
3、按要求编写程序段(只需要写出核心语句)
1)写出两条使AL中内容为0的指令
(2分)
MOV AL,00H
XOR AL,AL
2)使BL寄存器中高、低四位互换 (3分)
MOV CL,4
ROL BL,CL 或 ROR BL,CL
3)统计AX中“1”的个数,结果放在BL中(用移位指令实现)。(5分)
阅卷人 得分
答案一:
MOV BL ,00H
LOOP1: SHL AX,1
JNC NEXT
;最高位不是1
INC BL BL的数据加1
NEXT: JZ DONE; AX中数据为0,则结束
JNZ LOOP1
A卷
DONE:
HLT
答案二:
MOV BL ,00H
MOV
CX,16;循环16次
LOOP1: SHL AX,1
JNC NEXT 最高位不是1
INC BL
;BL的数据加1
NEXT: LOOP LOOP1
4)两个16位带符号数分别存放于X1和X2变量中,求X1X2,商和余数分别放
在Y1和Y2中;如果除数为0,则商和余数都置为0。(5分)
答: MOV AX,
X1
CWD 位扩展
MOV
BX,X2
IDIV BX
MOV
Y1,AX
MOV Y2,DX
三、程序设计题 (15×2=30分)
1.编写汇编程序完成以下功能:DEST和SOU
RCE是数据段中定义的长度为100
个字节的两个变量。找出第一个不相同的字节,找到后(假设一定
能找到),则将
SOURCE中的这个数送AL中,并将这个数相对于SOURCE数据区第一个元素的
位置记录在BL中。(只需要写出核心代码,推荐不使用串操作指令)
答:
2
MOV BL,00H
LEA
SI,SOURCE 源数据区首地址送SI
LEA DI,DEST
;目的数据区首地址送DI
MOV CX,100
ASSUME CS:CODE1,DS:DATA1,SS:STACK1
START:
MOV AX,DATA1
MOV DS,AX
MOV AL, AL中放置第一个数
NEXT: MOV
AL,[SI] 取第一个数据于BL中
CMP AL,[DI]
;比较两个数据
JNZ DONE;
INC SI
INC
DI
INC BL
LOOP NEXT
DONE:HLT
2. 试编制一程序,找出数据区DA中带符号数的最大
数,并将结果保存于MAX变量中。要求写
出所有代码,包括伪指令部分。(假定DA区数据为字节,且
一共有500个数据)
答:
DATA1 SEGMENT
MAX DB
?
DA DB -1,2,3,100,99,…
DATA1
ENDS
STACK1 SEGMENT STACK
DB 100 DUP(?)
STACK1 ENDS
CODE1 SEGMENT
A卷
LEA BX, DA
MOV CX,500
LOOP1:
CMP AL,[BX]
JGE NEXT
MOV AL,[BX]
NEXT: INC BX
LOOP LOOP1
MOV MAX,AL
CODE1
ENDS
END START
设置初始地址指针
循环次数
比较两数大小
将大数放于AL中
地址指向下一个数
循环
保存结果
3
;
;
;
;
;
;