微机原理习题答案Word文档格式.docx
- 文档编号:16361093
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:23
- 大小:264.72KB
微机原理习题答案Word文档格式.docx
《微机原理习题答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理习题答案Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
包括SI、DI、SP、BP4个16位寄存器,主要用于存放某个存储单元的偏移地址。
SI是源变址寄存器,DI是目的变址寄存器,在字符串操作中,SI和DI都具有自动增量或减量的功能。
SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址;
BP为基址指针寄存器,用于存放堆栈段中某一存储单元的偏移地址。
段寄存器:
8086CPU的4个16位的段寄存器分别称为代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS,附加数据段寄存器ES。
段寄存器用来确定该段在内存中的起始地址。
代码段用来存放程序的指令序列。
CS存放代码段的段首址,指令指针寄存器IP指示代码段中指令的偏移地址。
8086CPU中的指令指针IP,它总是保存下一次将要从主存中取出指令的偏移地址,偏移地址的值为该指令到所在段段首址的字节距离。
在目标程序运行时,IP的内容由微处理器硬件自动设置,程序不能直接访问IP,但一些指令却可改变IP的值,如转移指令、子程序调用指令等。
标志寄存器:
8086CPU中有一个很重要的16位标志寄存器,它包含9个标志位,主要用于保存一条指令执行后,CPU所处状态信息及运算结果的特征。
5.要完成下述运算或控制,用什么标志位判断?
其值是什么?
(1)比较两数是否相等?
(2)两数运算后结果是正数还是负数?
(3)两数相加后是否溢出?
(4)采用偶校验方式,判定是否需要补“1”?
(5)两数相减后比较大小?
(6)中断信号能否允许?
(1)ZF=0则不等,ZF=1则相等;
(2)SF=0为正,SF=1为负;
(3)OF=0不溢出,OF=1溢出;
(4)需要补“1”;
(5)如ZF=1则相等,否则:
ZF=0时,如CF=0则被减数大于减数;
CF=1则减数大于被减数;
(6)如IF=1则允许CPU响应可屏蔽中断,否则IF=0则CPU不响应。
6.8086系统中存储器采用什么结构?
用什么信号来选中存储体?
8086系统中存储器采用分体结构。
分成奇、偶两个存储体,把1MB分成两个512KB存储体。
分别用A0选中偶存储体,用
选中奇存储体。
12.若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址,若此时入栈10个字节,SP内容是什么?
若再出栈6个字节,SP为什么值?
堆栈段在存储器中的物理地址为:
从以物理地址为35800H的栈顶开始递减的最大为64KB空间。
若此时入栈10个字节,(SP)=03F6H;
若再出栈6个字节,(SP)=03FCH。
15.说明8086系统中“最小模式”和“最大模式”两种工作方式的主要区别是什么?
8086系统中“最小模式”和“最大模式”两种工作方式的主要区别是:
最小模式为单处理器系统,系统中所需的控制信号由CPU提供,实现存储器及I/O接口电路的连接。
最大模式可以构成多处理器/协处理器系统,系统中所需的控制信号由总线控制器8288提供,8086提供信号控制8288,以实现全局资源分配及总线控制权传递。
16.8086系统中为什么要用地址锁存器?
8282地址锁存器与CPU如何连接?
CPU与存储器(或I/O端口)进行数据交换时,CPU首先要送出地址信号,然后再发出控制信号及传送数据。
由于8086引脚限制,地址和数据分时复用一组总线,所以要加入地址锁存器,先锁存地址,使在读/写总线周期内地址稳定。
第三章8086的寻址方式和指令系统
7.已知当前数据段中有一个十进制数字0~9的7段代码表,其数值依次为40H,79H,24H,30H,19H,12H,02H,78H,00H,18H。
要求用XLAT指令将十进制数57转换成相应的7段代码值,存到BX寄存器中,试写出相应的程序段。
TABDB40H,79H,24H,30H,19H,12H,02H,78H,00H,18H
START:
MOVAL,5
LEABX,TAB
XLATTAB
MOVDH,AL
MOVAL,7
LEABX,TAB
MOVBL,AL
MOVBH,DH
10.某班有7个同学的英语成绩低于80分,分数存在ARRAY数组中,试编程完成以下工作:
(1)给每个人加5分,结果存到NEW数组中。
(2)把总分存到SUM单元中。
(3)把平均分存到AVERAGE单元中。
(1)ARRAYDB60,62,63,65,67,68,69
NEWDB7DUP(?
)
LEASI,ARRAY
LEADI,NEW
MOVCX,7
L1:
MOVAL,[SI]
MOV[DI],AL
ADDAL,5
DAA
INCSI
INCDI
LOOPL1
(2)SUMDW0(3)AVERAGEDB0
LEABX,ARRAYMOVAX,SUM
MOVCX,7MOVBX,7
MOVAX,0DIVBX
L2:
MOVDL,[BX]MOVAVERAGE,AL
MOVDH,0
ADDAX,DX
INCBX
LOOPL2
MOVSUM,AX
13.编程将AX寄存器中的内容以相反的次序传送到DX寄存器中,并要求AX中的内容不被破坏,然后统计DX寄存器中的1的个数是多少?
DATADW?
START:
MOVBX,0
MOVCX,16
MOVAX,DATA
ROLAX,1
JNCL2
L2:
RCRDX,1
ENDSTART
第四章程序设计
1.下列变量各占多少字节?
A1DW23H,5876H;
4
A2DB3DUP(?
),0AH,0DH,‘$’;
6
A3DD5DUP(1234H,567890H);
40
A4DB4DUP(3DUP(1,2,‘ABC’));
60
7.编程完成下列功能:
(2)利用中断调用,在屏幕上显示1~9之间随机数。
stackSEGMENT
DW50DUP(?
stackENDS
codeSEGMENT
ASSUMECS:
code,SS:
stack
start:
MOVAX,stack
MOVSS,AX
L1:
MOVAH,2CH
INT21H;
取时间,DL=1/100秒为随机数(0~99)
xorax,ax
moval,dl
movbl,10
divbl;
1/100秒除10
movdl,ah
adddl,30h;
二进制数转换为ascii码
MOVAH,2
显示1~9
MOVAH,4CH
返回DOS
codeENDS
ENDstart
15.从键盘输入20各有符号,将他们排序并在屏幕上显示。
dataSEGMENT
buf1DB20DUP(?
buf2db0dh,0ah,'
$'
dataENDS
code,DS:
data,SS:
MOVAX,data
MOVDS,AX
MOVBX,0
MOVCX,20
input:
MOVAH,1
INT21h
CMPAL,39h
JBEz1
ADDAL,9
z1:
ANDAL,0fh
PUSHCX
MOVCL,4
SALAL,CL
MOVDL,AL
MOVAH,1
JBEz2
z2:
ORAL,DL
MOVbuf1[BX],AL
MOVDL,'
'
POPCX
LOOPinput
MOVBX,0ffffh
DECCX
MOVDX,CX
L2:
MOVAL,buf1[BX]
CMPAL,buf1[BX+1]
JLEcont1
XCHGAL,buf1[BX+1]
cont1:
LOOPL2
MOVCX,DX
;
LEADX,buf2
MOVAH,9
output:
MOVDL,buf1[BX]
PUSHDX
ANDDL,0f0h
SHRDL,CL
CMPDL,0ah
JBs1
ADDDL,07h
s1:
ADDDL,30h
POPDX
ANDDL,0fh
JBs2
s2:
LOOPoutput
MOVAH,4ch
22.编程统计学生的数学成绩,分别归类90~99分、80~89分、70~79分、60~69分及60分以下,并将各段人数送入内存单元中。
分别存放到SCOREE、SCORED、SCOREC、SCOREB、SCOREA
DATASEGMENTSCOREDB90,23,56,67,98,78,10,45,87,98N=$-SCORESCOREEDB0;
60分以下人数SCOREDDB0;
60~69分人数SCORECDB0;
70~79分人数SCOREBDB0;
80~89分人数SCOREADB0;
90~99分人数DATAENDSCODESEGMENT'
CODE'
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEASI,SCORE
MOVCX,N
MOVDL,10
CLASS:
MOVAH,0
MOVAL,[SI]
DIVDL
SUBAL,5
JGGREAT
INCBYTEPTRSCOREE
JMPNEXT
GREAT:
MOVBX,AX
INCBYTEPTRSCOREF[BX]
NEXT:
INCSI
LOOPCLASS
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
第五章存储器
4.什么是Cache?
作用是什么?
处在微处理机中的什么位置?
Cache是由SRAM组成的容量较小的高速缓冲存储器。
它的作用是为了提高CPU的运行效率,将经常访问的代码和数据保存到Cache中。
从而有效的利用某些程序访问存储器在时间上和空间上有局部区域的特性,并且由于Cache的访问速度高于内存的访问速度,因此可以大大的提高CPU的工作效率。
Cache位于CPU和主存储器之间。
6.为什么要保持Cache内容与主存储器内容的一致性?
为了保持Cache内容与主存储器内容的一致性应采取什么方法?
在高速缓冲存储器系统中,主存储器与Cache中的数据可能由于一个被修改了,而另一个未修改而不一致。
所以必须有一个更新系统来保持两个存储内容的一致性。
为了保持Cache内容与主存储器内容的一致性可采取两种方法:
通写式:
Cache中的数据块一经修改,立即将其写入主存储器相关存储块中。
回写法:
当Cache中的数据块被其他数据替换时,才将Cache中的数据回写到主存储器。
8.现有一存储体芯片容量为512×
4位,若要用它组成4KB的存储器,需要多少这样的芯片?
每块芯片需要多少寻址线?
整个存储系统最少需要多少寻址线?
=
=16(片)
由于每片容量为512×
4位,而
=512,所以需要9根寻址线。
4位所以要组成4KB的存储器必须每两片512×
4位组成一组构成
512×
8位即512B容量,共需8组才能构成4KB的存储器,因此片外地址需要3根寻址线(
=8);
所以整个存储系统最少需要12根寻址线。
13.用8K×
8位的2764,8K×
8位的6264和译码器74LS138构成一个16K字ROM,16K字RAM的存储器子系统。
8086工作在最小模式系统带有地址锁存器8282,数据收发器8286。
画出存储器系统与CPU的连接图,写出各块芯片的地址分配。
解:
A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
8.2CPU响应中断的条件是什么?
简述中断处理的过程。
CPU响应中断的条件:
1.外设请求
2.中断接口未屏蔽
3.中断允许
中断处理过程
1.取类型号
2.标志寄存器入栈
3.TF=IF=0(关中断)
4.CS、IP入栈(保护断点)
5.查找入口地址→CS、IP
6.恢复有关寄存器内容(IP、CS、PSW)
8.8假定中断类型号15的中断处理程序的首地址为ROUT15,编写
主程序中为建立一个中断向量的程序。
moval,15
movah,35h;
利用DOS功能35H号
int21h;
获取原15号中断向量
Pushes;
保存段基地址
Pushbx;
保存偏移地址
Pushds;
保存原数据段基地址
movdx,offsetrout15;
取中断程序偏移地址
movax,segrout15;
取中断程序段地址
movds,ax
movah,25h
int21h
popds
Popdx;
恢复原中断向量
Popds
moval,15
movah,25h
int21h
Ret
Rout15:
.
iret
8.15某系统中有3片8259A级联使用,1#片为8259A主片,2#片为8259A从片,从片接入8259A主片的IR2和IR5端,并且当前8259A主片的IR3及两片8259A从片的IR4各接有一个外部中断源。
中断类型基号为80H、90H、A0H,中断入口段基址在2000H,偏移地址分别为1800H、2800H、3800H,主片8259A的端口地址为CCF8H、CCFAH。
一片8259A从片的端口地址为FFE8H、FFEAH,另一片8259A从片的端口地址为FFECH、FFEEH,中断采用电平触发,完全嵌套工作方式,普通EOI结束。
(1)画出硬件连接图;
(2)编写初始化程序。
(1)硬件连接图
(2)初始化程序
设置中断向量:
movax,2000H;
送入段地址
movds,ax
movdx,1800H;
送入偏移地址
moval,83H;
设置83H
movdx,2800H;
moval,94H;
设置94H
movdx,3800H;
moval,A4H;
设置A4H
主片8259A初始化:
Moval,19h;
定义ICW1,主片8259A级联使用、电平触发,0001
movdx,ccf8H
Outdx,al
Movdx,ccfah
Moval.80h;
定义ICW2,中断类型号80H~87H
Moval,24h
Outdx,al;
定义ICW3,IR2和IR5接从片的INT
Moval,11h
定义ICW4,.特殊完嵌套方式,非缓冲方式,非自动EOI
Moval,d3h
定义OCW1,允许IR2、IR3、IR5中断,其余屏蔽
Moval,20h
Movdx,ccf8h
定义OCW2,普通EOI
从片8259A-1初始化:
定义ICW1,级联使用、电平触发、设置ICW4
movdx,ffe8H
Movdx,ffeah
Moval.90h;
定义ICW2,中断类型号90H~87H
Moval,02h
定义ICW3,从片接主片的IR2
Moval,01h
定义ICW4,完全嵌套方式,非缓冲方式,非自动EOI
Moval,EFH
定义OCW1,允许IR4中断,其余屏蔽
Movdx,ffe8h
从片8259A-2初始化:
movdx,0ffe8H
Movdx,0ffeah
Moval.A0h;
定义ICW2,中断类型号A0H~A7H
Moval,05h
定义ICW3,从片接主片的IR5
Moval,0EFH
Movdx,0ffe8h
9.4设8253通道0~2和控制端口的地址分别为300H、302H、304H和306H,定义通道0工作方式3,CLK0=2MHZ。
试编写初始化程序,并画出硬件连线图。
要求通道0输出1.5KHZ的方波,通道1用通道0的输出作计数脉冲,输出频率为300HZ的序列脉冲,通道2每秒钟向CPU发50次中断请求。
(1)硬件连线图
MOVDX,306HMOVDX,306HMOVDX,306H
MOVAL,00110111BMOVAL,01010101BMOVAL,10010101B
OUTDX,ALOUTDX,ALOUTDX,AL
MOVDX,300HMOVDX,302HMOVDX,300H
MOVAL,33HMOVAL,05HMOVAL,06H
OUTDX,ALOUTDX,ALOUTDX,AL
MOVAL,13H
OUTDX,AL
9.8255A的口地址为80H一83H,8253的口地址为84H一87H。
(1)若A口接8个开关K7一K0,B口接8个指示灯LED7一LED0,当开关合上时相应的指示灯点亮,断开时灯灭,要求每隔0.5秒检测一次开关状态,并在开关上显示出来,试画出硬件连线图,编写实现这种功能的程序。
(2)若把接在端口A上的开关去掉,要求接在端口B上的指示灯轮流熄灭灭1秒钟,请编程实现这种功能。
第十章串行通信和可编程接口芯片8251A
1.串行通信与并行通情的主要区别是什么?
各有什么优缺点?
串行通信与并行通情的主要区别是:
串行通信是以一位一位的方式按照一定的顺序发送数据,每次只能发送一位数据;
并行通信是一次发送多位数据;
串行通信的速度慢,但
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 习题 答案