微机原理期末试题卷答案.docx
- 文档编号:14357611
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:42
- 大小:35.56KB
微机原理期末试题卷答案.docx
《微机原理期末试题卷答案.docx》由会员分享,可在线阅读,更多相关《微机原理期末试题卷答案.docx(42页珍藏版)》请在冰点文库上搜索。
微机原理期末试题卷答案
云南大学2009至2010学年上学期物理学院物理系各专业2007级
《微机原理》期末考试(闭卷)A卷
满分100分考试时间120分钟任课教师:
陈永康、杨先楚
学院专业学号姓名
题号
一
二
三
四
五
六
总分
得分
30
18
12
8
20
12
得分
一、计算并填写结果:
(除标明分数的题外,每空1.2分,共30分)
1、通常所说的CPU一般包括运算器、控制器和寄存器组。
2、调用DOS软件中断的要点是:
首先根据要调用的功能确定子功能号并存入寄存器AH中,然后设置各个入口参数的寄存器,再通过INT21H指令调用该DOS中断功能,最后如果有出口参数的还要处理出口参数。
3、8086CPU是一个16位的微处理器,具有16位数据总线,20位地址总线,可寻址空间为1M字节。
4、指令一般都由操作码和操作数来构成,指令MOVAL,6[BX][DI]的源操作数的寻址方式
是基址变址相对寻址。
5、数制转换(小数部分保留位数:
二进制8位,16进制2为,7进制3位):
[124.719]10=[1111100.10111000]2=[7C.B8]16=[235.5014]7
=[000100100100.011100011001]BCD
6、八位二进制代码转换:
[-104]10=[11101000]原=[10010111]反=[10011000]补
设(SS)=4000H,(DS)=3E00H,(ES)=3800H,(BP)=0800H,(SP)=010EH,(AX)=7AE4H,(BX)=2912H,(DI)=0003H,BUF=0111H,(4090EH)=0FH,(4090FH)=75H,(40910H)=93H,(40911H)=22H,下列7-11题的各条指令都分别在此环境下执行,请在下列各小题的空格中填入执行结果:
7、ADDAH,[BP+BUF];(AH)=9CH
8、SHRBYTEPTR[BX-DI],1;CF=1,(4090FH)=3AH
9、POPAX;(SP)=0110H
10、XORAL,28H
ANDAL,0ACH
NOTAL
上述程序段运行后,AL=73H
11、CMPAL,0E4H
JCLIN1
JZLIN2
JNBLIN3;转向地址为:
LIN2
12、模拟运算器,用一字节补码加法实现十进制数-67-79=?
的计算。
(6分)
[-67]补=110111101
+[-79]补=110110001
101101110
其二进制补码加法算式为:
CF=1,SF=0,
ZF=0,OF=1,
PF=0,AF=0
得分
二、程序阅读与分析。
(每小题3分,共18分)
1、SHLBX,1
JCONE
MOVDL,’0’
JMPNEXT
ONE:
MOVDL,’1’
NEXT:
MOVAH,2
INT21H
上述程序段实现的完整功能是:
在显示器上显示BX的最高位,0或者1
2、MOVAX,BX
NOTAX
ADDAX,BX;AX=0FFFFH
INCAX
AX=0000HCF=___0____
XORBL,0CH
上述程序段运行后,BL=H
4、MOVBL,02H
MOVAL,07H
MULBL;AX=_000E_H
AAM
AH=__01__H,AL=___04___H
3、SALAL,1
MOVBL,AL
MOVCL,2
SALAL,CL
ADDAL,BL
回答:
程序实现的完整功能是
将AL中的内容乘10
6、MOVCH,4
ROTATE:
MOVCL,4
ROLBX,CL
MOVAL,BL
ANDAL,0FH
ADDAL,30H
CMPAL,3AH
JLPRINTIT
ADDAL,7H
PRINTIT:
MOVDL,AL
MOVAH,2
INT21H
DECCH
JNZROTATE
若(BX)=1000101110101111B,程序段的功能及执行结果为:
把BX中的二进制数以十六进制的形式显示在屏幕上。
显示结果为8BAF
5、设寄存器AL,BL,CL中内容均
为1CH,执行上述指令序列后,
XORAL,0FH
ANDBL,0FH
ORCL,0FH
AL=13H,BL=0CH,
CL=1FH。
得分
三、在空白处添上适当的指令,使下面的程序段能实现既定功能:
(每空2分,共12分)
1、把DA1数据区的非压缩BCD码依次转换为对应的ASCII码,存放在ASC开始的数据区。
DA1DB03H,01H,09H,08H,04H,07H,06H,02H,00H,09H
CNTEQUASC-DA1
ASCDB10DUP(?
)
┇
LEASI,DA1;初始化
LEADI,ASC
_MOVCX,CNT
L1:
MOVAL,[SI];实现转换
ADDAL,30H
MOV[DI],AL
INCSI
INCDI
_LOOPL1
2、以BUF为首址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中。
DATASEGMENT
BUFDB5,6,7,58H,13H…….
COUNTEQU$-BUF
MAXDB?
DATAENDS
┇
MOVBX,OFFSETBUF;初始化
MOVCX,OUNT-1
MOVAL,[BX]
LOP1:
INCBX;完成最大数查找
__CMPAL,[BX]_
JAENEXT
MOVAL,[BX]
NEXT:
DECCX
__JNZLOP1_
MOVMAX,AL
得分
000E
00H
000D
00H
000C
00H
000B
00H
000A
‘?
’
0009
‘?
’
0008
‘$’
0007
‘:
’
0006
‘O’
0005
‘N’
0004
20H
0003
ADH
0002
98H
0001
0A3H
DATA1:
0000
‘A’
四、根据下面的数据段定义,填写数据区的存储分配图
给出各变量对应的偏移地址与初始值:
(8分)
DATASEGMENT
VAR1DB‘A’,0A3H,98H
VAR2DW20ADH
MISSDB‘NO:
$’
COUNEQU$-MISS
SUMDW?
CCDB4DUP(0)
DATAENDS
VAR1的偏移地址=0000H,初始值=‘A’,
VAR2的偏移地址=0003H,初始值=20ADH,
SUM的偏移地址=0009H,CC的偏移地址=000BH,
MISS的偏移地址=0005H,COUN=0004H
得分
五、论述与问答题:
(共20分,第1、2题为必做题,其余为选做题,选做第6题的不做3、4、5题,反之亦然)
1、画出冯.诺依曼结构图;给出计算机结构的三大要点;简述其基本工作原理:
(5分)
输入设备
存储器
输出设备
控制器
运算器
CPU
数据路径
控制路径
1、计算机由运算器、控制器、存储器、输入设备和输出设备五部分组成;
2、程序和数据以二进制形式不加区分地依次存放在存储器中,存放位置由地址确定;
3、控制器根据存放在存储器中的指令序列(即程序)工作,并由一个程序计数器(PC)控制指令的执行。
控制器主要由指令计数器PC、指令译码器、PAL等组成;通过pc控制,自动、周而复始地完成取指、译码、执行的周期过程,从而实现对存放在存储器中的指令代码V的顺序自动执行控制。
2、比照高级语言编程来讨论汇编语言编程,总结归纳出两者之间三个以上的不同点或共同点(要是独立点,有对照,描述清楚)。
(3分)
答题要点:
1、完成一个具体功能模块的算法,两者是相同的。
2、通过定义数据区,分配存储地址来定义变量,存储地址的符号名就是高级语言中的变量。
3、寄存器可以作为临时变量使用,用完后又可以重新定义,这样可以不占用内存地址,而且执行速度快,这是高级语言不具备的。
4、汇编语言程序需要对寄存器进行分配使用,而且有一些特定用法,如乘除法的默认寄存器,循环计数器CX等。
寄存器一次定义使用未结束前不能再做另外用途,否则需要用堆栈保护。
而高级语言编程不需要。
5、汇编语言可以直接控制和检测计算机的硬件电路,最大限度的发挥硬件的功能,而且速度快、效率高,常用于硬件底层驱动程序和实时控制,这是高级语言无法做到的。
6、汇编语言可以最大限度的发挥编程的灵活性,编制出效率最高、速度最快的程序,所以常用于硬件底层驱动程序和系统核心程序,这是高级语言难于做到的。
7、......
3、(选做6题的同学不做此题)运算器在进行有符号数运算时,判断是否发生了算术溢出,一般采用哪三种方法判别?
在进行无符号数运算时,则使用什么标志判别无符号数运算是否溢出?
(4分)
答题要点:
1、采用双符号法,双符号位不一致时,发生算术溢出
2、次高位向最高位的进位与最高位向前进位不一致时,发生算术溢出
3、同号数运算前符号与结果符号不一致时,发生算术溢出
在进行无符号数运算时,使用进位标志进行判别,CY=1表示有溢出,CY=0表示没有有溢出。
4、(选做6题的同学不做此题)通过简述CPU控制执行一条指令的过程及步骤,诠释程序存储原理。
(4分)
答题要点:
机器语言、指令指针、指令地址、地址总线、存储器、数据总线、操作码、操作数、取指、译码、控制信号序列、时序、执行、结果处理、下一操作、完成启动下一指令周期
控制器主要由指令计数器PC、指令译码器、PAL等组成;通过pc控制,自动、周而复始地完成取指、译码、执行的周期过程,从而实现对存放在存储器中的指令代码的顺序自动执行控制。
5、(选做6题的同学不做此题)总线的功能和作用是什么?
它的工作原则是什么?
(4分)
答题要点:
总线是一组同类信号传送的公共数据通道,通常是同类信号并行同时传送,它按分时共用原则为多种设备分别服务
6、(选做本题的同学不做3、4、5题)编写一段程序,从键盘读入一个十六进制数(使用1号DOS功能调用,在AL中返回键盘按键的ASCII码),判断其合法性(0-9,A-F,不考虑a-f),不合法重读,合法将其转换成对应的二进制数,存放在AL中(0-F)。
参考程序:
INHEXPROC
L1:
MOVAH,01H
INT21H
SUBAL,30H
JBL1
CMPAL,9
JBEDONE
SUBAL,7H
JBL1
CMPAL,0FH
JBEDONE
JMPL1
DONE:
RET
INHEXENDP
得分
六、如果已经有以下数据区定义:
DA1SEGMENT
TXTBDB“ThisaStoryabout……”;一篇英语文章
NUMDW$-TXTB;文章字节数
CHADB‘#’;查找字符
CHBDB‘$’;替换字符
COUNDW?
DA1ENDS
编写一段程序,将这篇英语文章中的‘#’号用‘$’号进行替换,并统计替换个数,存入COUN中(能编成一个通用子程序更好)。
参考程序:
LEABX,TXTB
MOVCX,NUM
MOVDX,0
MOVAL,’#’
MOVAH,’$’
AGAIN:
CMPAL,[BX]
JNZNEXT
MOV[BX],AH
INCDX
NEXT:
INCBX
LOOPAGAIN
MOV[COUN],DX
云南大学2009至2010学年上学期物理学院物理系各专业2007级
《微机原理》期末考试(闭卷)B卷参考答案
满分100分考试时间120分钟任课教师:
陈永康、杨先楚
学院专业学号姓名
题号
一
二
三
四
五
六
总分
得分
30
18
12
8
20
12
得分
四、计算并填写结果:
(除标明分数的题外,每空1.2分,共30分)
1、8086CPU从功能上可分为EU/执行单元部件和BIU/总线接口部件两个独立的功能部件。
2、8086CPU采用引脚复用技术,即地址线和数据线是复用的。
3、每一条指令代码一般都由操作码和操作数来构成。
4、指令MOVAL,6[BX][SI]的源操作数的寻址方式是基址变址相对寻址,目的操作数寻址方式为寄存器寻址。
5、循环指令LOOPZ终止循环的条件是CX=0或者ZF=0。
6、数制转换(小数部分保留位数:
二进制8位,16、7进制3位):
[135.489]10=[10000111.01111101]2=[87.7D]16=[252.326]7
=[000100110101.010010001001]BCD
7、八位二进制代码转换:
[-126]10=[11111110]原=[10000001]反=[10000010]补
设(SS)=4000H,(DS)=3E00H,(BP)=0800H,(SP)=0110H,(AX)=7A34H,(BX)=2912H,
(DI)=0003H,BUF=0111H,(4090EH)=0FH,(4090FH)=57H,(40910H)=93H,(40911H)=20H,
下列8-10题3条指令都在此环境下执行,下列各小题的空格中填入执行结果:
8、SUBAH,[BP+BUF];(AH)=5AH
9、SHRBYTEPTR[BX-DI],1;CF=1,(4090FH)=2BH
10、POPAX;(SP)=0112H
设开始时(AL)=34H,填写11-12题的程序段执行结果:
11、XORAL,28H
ANDAL,0ACH
NOTAL
上述程序段运行后,AL=F3H
12、CMPAL,34H
JCLIN1
JZLIN2
JNBLIN3;转向地址为:
LIN2
13、模拟运算器,用一字节补码加法实现十进制数-78-53=?
的计算。
(6分)
[-78]补=110110010
+[-53]补=111001011
101111101
其二进制补码加法算式为:
CF=1,SF=0,
ZF=0,OF=1,
PF=1,AF=0
得分
五、程序阅读与分析。
(每小题3分,共18分)
1、MOVCX,5
MOVAX,40H
NEXT:
SUBAX,CX
LOOPNEXT
上述程序段运行后,(AX)=31H/49
2、MOVAX,0
DECAX
ADDAX,7FFFH
ADCAX,1
上述程序段运行后,(AX)=8000H
3、MOVSI,2040H
MOVDI,2060H
MOVCX,0AH
AGAIN:
MOVAL,[SI]
XCHGAL,[DI]
MOV[SI],AL
INCSI
INCDI
LOOPAGAIN
RET
这段程序实现的功能是:
将数据区中偏移地址为2040H开始的10个字节数据与偏移地址为2060H开始的10个字节数据对调交换
4、MOVBL,03H
MOVAL,07H
MULBL;AX=_0015_H
AAM
AH=__02__H,AL=___01___H
6、SUB1procnear
movbx,ax
movcx,16
l8:
shlbx,1
jcl9
movdl,'0'
jmpl10
l9:
movdl,'1'
l10:
movah,02h
int21h
loopl8
movdl,'B'
movah,02h
int21h
ret
SUB1endp
若(AX)=56E3H,调用子程序后的执行结果将BX中的内容按二进制的形式显示出来/0101011011100011B.为:
。
5、设寄存器AL,BL,CL中内容均
为68H,
XORAL,0FH
ANDBL,0FH
ORCL,0FH
执行上述指令序列后,
AL=67H,BL=08H,
CL=6FH。
得分
六、在空白处添上适当的指令,使下面的程序段能实现既定功能:
(每空2分,共12分)
1、下面子程序实现:
将AL中的一位16进制数(0~F)转换为相应的ASCII码并在屏幕上显示该字符。
HECAPROCFAR
CMPAL,10
JCKK
ADDAL,7
KK:
ADDAL,30H
MOVDL,Al
MOVAH,2
INT21H;功能调用显示字符
RET
HECAENDP
2、从D1开始的N个单元中存放着N个整数,统计出这些数中正数的个数并存入RS中。
DATASEGMENT
D1DB-1,-3,7,9,0AH,………
NEQU$-D1
RSDW?
DATAENDS
CODESEGMENT
:
LEABX,D1;初始化
MOVCX,N
MOVDX,0
NEXT:
MOVAL,[BX]
CMPAL,0
JSPP/JLPP
INCDX
PP:
INCBX
LOOPNEXT;循环
MOVRS,DX
四、根据下面的数据段定义,填写数据区的存储分配图
000E
000D
000C
000B
00H
000A
00H
0009
‘?
’
0008
‘?
’
0007
‘$’
0006
‘:
’
0005
‘O’
0004
‘N’
0003
FFH
0002
12H
0001
35H
DATA1:
0000
‘F’
给出各变量对应的偏移地址与初始值:
(8分)
DATASEGMENT
VAR1DB‘F’,035H
VAR2DW0FF12H
MISSDB‘NO:
$’
COUNEQU$-MISS
SUMDW?
CCDB2DUP(0)
DATAENDS
VAR1的偏移地址=0000H,初始值=‘F’,
VAR2的偏移地址=0002H,初始值=0FF12H,
SUM的偏移地址=0008H,CC的偏移地址=000AH,
MISS的偏移地址=0004H,COUN=0004H
得分
五、论述与问答题:
(共20分,第1、2小题为必做题,其余为选做题,选做第6题的不做3、4、5题,反之亦然)
1、通过简述CPU控制执行一条指令的过程及步骤,诠释程序存储原理。
(4分)
答题要点:
机器语言、指令指针、指令地址、地址总线、存储器、数据总线、操作码、操作数、取指、译码、控制信号序列、时序、执行、结果处理、下一操作、完成启动下一指令周期
控制器主要由指令计数器PC、指令译码器、PAL等组成;通过pc控制,自动、周而复始地完成取指、译码、执行的周期过程,从而实现对存放在存储器中的指令代码的顺序自动执行控制。
2、画微型计算机结构图;简述主要部件功能。
(6分)
答案要点:
中央处理单元CPU(ControlProcessingUnit)是微型计算机的核心部件,包含有运算器、控制器、寄存器组的一块大规模集成电路芯片;主存储器是微型计算机中存储程序、原始数据、中间结果和最终结果等各种信息的部件;系统总线是CPU与其他部件之间传送数据、地址和控制信息的公共通道;输入输出接口电路是微型计算机外部设备交换信息的桥梁。
存
储
器
I/O
接
口
输
入
设
备
I/O
接
口
数据总线DB
控制总线CB
地址总线AB
输
出
设
备
CPU
3、(选做6题的同学不做此题)归纳总结汇编语言编程的特点,指出它与高级语言编程的不同点,给出汇编语言编程中AX,BX,CX,DX,SI,DI,BP的通常用途。
(4分)
答题要点:
1、特点与不同点:
变量定义、数据区、伪指令、寄存器分配与使用、面对硬件、灵活性等
AX:
累加器,功能强,常用作最重要的用途
BX:
常用作基址指针
CX:
常用作循环控制变量
DX:
乘法运算时存乘积的高位,I/O指令中作外设端口地址寄存器
SI,DI:
变址寻址时作地址指针用
BP:
堆栈寻址时作基址指针用
4、(选做6题的同学不做此题)运算器在进行有符号数运算时,要知道是否发生了算术溢出,可采用哪三种方法判别?
(共3分)
答题要点:
双符号位法;
同号数相加减,结果不同号,溢出;
数位向符号位的进位与符号位向前进位不同,即Cn不等于Cn-1,溢出。
5、(选做6题的同学不做此题)请归纳总结汇编语言编程的特点,以及它与高级语言编程的不同点?
(3分)
不同点与特点:
需要对变量定义、设计数据区、分配使用寄存器、直接面对硬件,功能低级但编程灵活,程序短小,快捷等等
6、(选做3、4、5题的同学不做此题)内存中有一个100字节的数组,da1为开始地址。
编一段程序统计其中大于2FH,小于7DH的元素个数,用寄存器DL统计这些字符的个数。
(10分)
参考程序:
Stringdb‘………….‘
Sbu1procnear
Movbx,offsetda1
Movcx,100
Movdl,0
Again:
Moval,[bx]
Cmpal,2fh
Jlnext
Cmpal,7dh
Jgnext
Incdl
next:
Incbx
Loopagain
Done:
ret
Sub1endp
得分
六、将一个字符串中的所有大写字母改为小写字母,字符串以0结尾。
(12分)
Datasegment
Stringdb‘xxxxxxxxxxxxxxxxxx’,0
Dataends
co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 期末 试题 答案