微机原理期末复习.docx

上传人:b****4 文档编号:6865023 上传时间:2023-05-10 格式:DOCX 页数:13 大小:171.99KB
下载 相关 举报
微机原理期末复习.docx_第1页
第1页 / 共13页
微机原理期末复习.docx_第2页
第2页 / 共13页
微机原理期末复习.docx_第3页
第3页 / 共13页
微机原理期末复习.docx_第4页
第4页 / 共13页
微机原理期末复习.docx_第5页
第5页 / 共13页
微机原理期末复习.docx_第6页
第6页 / 共13页
微机原理期末复习.docx_第7页
第7页 / 共13页
微机原理期末复习.docx_第8页
第8页 / 共13页
微机原理期末复习.docx_第9页
第9页 / 共13页
微机原理期末复习.docx_第10页
第10页 / 共13页
微机原理期末复习.docx_第11页
第11页 / 共13页
微机原理期末复习.docx_第12页
第12页 / 共13页
微机原理期末复习.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理期末复习.docx

《微机原理期末复习.docx》由会员分享,可在线阅读,更多相关《微机原理期末复习.docx(13页珍藏版)》请在冰点文库上搜索。

微机原理期末复习.docx

微机原理期末复习

一、回答问题

问题1:

8086的存储器为什么要进行分段?

答:

8086的地址总线AB有20根地址线,意味着存储器每个存储单元的地址由20位二进制数构成。

而8086内部用来存放地址信息的寄存器只有16位,出现了矛盾,为解决这个问题,8086采取了存储器分段的方式。

由于16位二进制地址可寻址范围是64KB而1MB的存储空间可以在逻辑上分为16个段每段大小是64KB,因此可以用段地址(也称为段基址)给每个段编号,每个段内的地址单元用偏移地址编号。

问题2:

什么是物理地址?

什么是逻辑地址?

请说明二者的关系。

答:

物理地址共有20位,对应一个存储单元的实际地址,物理地址与存储单元是一一对应关系。

逻辑地址则由段地址和偏移地址组成是指令中引用的形式地址。

一个逻辑地址只能对应一个物理地址,而一个物理地址可以对应多个逻辑地址。

(2000:

0202H、2010:

0102H、……)。

段地址——16位,即存储单元所在逻辑段的编号,通常存放在对应的段寄存器中,偏移地址为16位,存储单元在逻辑段内相对于该段第一个存储单元的距离。

20位物理地址=段地址×16+偏移地址取指令操作CS×16+IP堆栈操作SS×16+SP数据存储器操作DS/ES×16+偏移地址

问题3:

请说明段寄存器与提供偏移地址寄存器的对应关系。

答:

CS:

IP对应代码段,DS:

SI(或DI或BX)对应数据段,SS:

SP(或BP)对应堆栈段。

问题4:

8086的有最大和最小两种工作模式,请说明两种工作模式下的特点,并说明如何进行工作模式的设置。

答:

8086微处理器有最小模式和最大模式。

最小模式为单处理器模式,最大模式为多处理器模式;最小工作方式下总线控制信号都直接由8086产生,系统中总线控制逻辑电路被减小到最小,这种方式适合于较小规模系统的应用。

最大工作方式用在需要利用8086CPU构成中等或较大系统时。

由MN/MX的电平高低进行工作模式的设置。

(+5V最小、接地最大)

问题5:

从功能上看,CPU可以分为哪两部分?

各负责什么工作?

有什么优点?

答:

从功能上看8086CPU可分为两部分:

1)总线接口部件BIU——负责指令和操作数读及结果写。

2)执行部件EU——负责指令的执行。

两个部件独立地进行操作,即并行工作,使得取指令、分析指令和执行指令可以并行操作,提高了CPU的工作效率,加快了指令的执行速度。

问题6:

微型计算机由哪几部分组成?

简述各部分功能。

答:

微型计算机系统主要由微处理器(CPU)、存储器、I/O接口和总线组成。

其中微处理器为微型计算机的核心,主要完成取指令、指令译码、简单的算术逻辑运算及程序控制等;存储器主要用来存储程序和数据;I/O接口用于外设与CPU之间的信息协调;总线是CPU与存储器和I/O接口之间传送数据信息、地址信息和控制信息的通道。

问题7:

什么是指令?

什么是指令系统?

请说明指令系统在微机系统中重要性。

答:

指令就是计算机执行某种操作的命令,指令系统是该计算机所以指令的集合,它是综合反映计算机性能的重要因素,不仅直接影响机器的硬件结构,而且影响机器的系统软件及机器的适用范围。

问题8:

什么是数据的寻址方式?

8086/8088的微机系统中有哪些数据寻址方式?

答:

所谓数据的寻址方式就是寻找指令中所需操作数的方法。

寻址方式有:

隐含寻址,立即数寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。

问题9:

什么是中断类型码、中断向量、中断向量表?

在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系?

答:

处理机可处理的每种中断的编号为中断类型码。

中断向量是指中断处理程序的入口地址,由处理机自动寻址。

中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。

在8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。

问题10:

什么叫中断?

请叙述中断向量号(中断类型)、中断向量表和中断服务程序入口地址三者的关系。

答:

中断——由请求中断的外部设备口向CPU提供中断向量,CPU根据这个向量到向量表中转换表跳转中查找中断服务程序入口地址,而转入不同的中断处理服务程序入口。

8088/8086可以处理256种向量中断,对每种中断都指定一个中断向量号代码,从0~255每一种中断向量号代码都可以与一个中断服务程序相对应。

中断服务程序放在存储区域内,而中断服务程序的入口地址存在内存储器中断向量表内,当CPU处理中断时,就需要指向中断服务程序入口地址,中断向量表是中断向量号与这相应的中断服务程序入口地址之间的转换表。

中断向量表占用存储器的最低地址区,因为每个中断向量号要占用4个字节单元。

问题8:

8259A中断控制器的功能是什么?

答:

8259A中断控制器可以接受8个中断请求输入并将它们寄存。

对8个请求输入进行优先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。

8259A可以对中断请求输入进行屏蔽,阻止对其进行处理。

8259A支持多种中断结束方式。

8259A与微处理器连接方便,可提供中断请求信号及发送中断类型码。

8259A可以进行级连以便形成多于8级输入的中断控制系统。

二、指令改错

错误1:

存储器操作数之间不能直接传送

MOV[1000H],[DI]错

应改为MOVAX,[DI]

MOV[1000H],AX

错误2:

立即数不能直接传送段寄存器

MOVDS,2000H错

应改为MOVAX,2000H

错误3:

段寄存器之间不能直接传送

MOVES,DS错

应改为MOVBX,DS

MOVES,BX

错误4:

CS、IP、PSW只可以作为源操作数即不允许给CS、IP、PSW三个寄存器传送数据

MOVCS,AX错

MOVAX,CS对

错误5:

源操作数和目的操作数的宽度必须相同

MOVAL,050AH错

MOVAX,050AH对

错误6:

POP、PUSH指令不以字为操作数

POPDL错

错误7:

端口地址8位,超出范围

INAX,1234H

三、分析程序

例题1设初值为AX=1234H,BX=5678H,DX=0ABCDH,则下面一段程序:

MOVCL,4

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

执行后,请问AX=?

,BX=?

,DX=?

AX=2340HBX=5601HDX=BCD1H

例题2MOVAX,10

SALAL,1

MOVBX,AX

MOVCL,2

SALAL,CL

ADDAX,BX

执行后,AX为?

AX=100

例题3设初值(AX)=4321H,(DX)=8765H,则

MOVCL,04H

SHLDX,CL

MOVBL,AH

SHLAX,CL

SHRBL,CL

ORDL,BL

上述程序执行后(DX)=;(AX)=

(DX)=7654H,(AX)=3210H

例题4假如在程序的括号中分别填入指令:

(1)LOOPL20

(2)LOOPNEL20(3)LOOPEL20

试说明在三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器的内容分别是什么?

CODESGSEGMENT

ASSUMECS:

CODESG,DS:

CODESG.SS:

CODESG

ORG100H

BEGIN:

MOVAX,01

MOVBX,02

MOVDX,03

MOVCX,04

L20:

INCAX

ADDBX,AX

SHRDX,1

()

RET

CODESGENDS

ENDBEGIN

答:

(1)(AX)=5(BX)=16(CX)=0(DX)=0

2)(AX)=2(BX)=4(CX)=3(DX)=1

(3)(AX)=3(BX)=7(CX)=2(DX)=0

例题5以下程序实现的功能是什么20H*30H?

结果存放在哪里?

AX

START:

MOVAL,20H

MOVBL,AL

MOVAL,30H

MOVCL,AL

MOVAX,0

NEXT:

ADDAL,BL

ADCAH,0

DECCL

JNZNEXT

HLT

例题6:

若从NUM开始的存储区存放着ASCII码表示的字符串,指出下列程序的功能。

LEABX,NUM

MOVCX,100

LP:

MOVAL,[BX]

SUBAL,30H

CMPAL,0AH

JCL1

SUBAL,07H

L1:

MOV[BX],AL

INCBX

LOOPLP

HLT

四、编程题

例题1两个32位加数98765432H和8901FA45H分别存放在数据段内2000H单元和2004H单元,编程将两数相加,结果从2100H单元开始存放。

MOVAX,[2000H];AX=5432H,被加数低16位

MOVBX,[2002H];BX=9876H,被加数高16位

ADDAX,[2004H];低16位相加,AX=4E77H

ADCBX,[2006H];高16位及低16位的进位相加,BX=2178H

MOV[2100H],AX;存低16位的和4E77H

MOV[2102H],BX;存高16位的和2178H

MOVAX,0

ADCAX,0;获得最高位的进位

MOV[2104H],AX;存和的最高位

例题2计算(V-(X*Y+Z))/X,XYZV均为16位有符号数,要求商存入AX,余数存入DX

MOVAX,X;X*Y

IMULY

MOVCX,AX

MOVBX,DX;积存入BX,CX

MOVAX,Z

CWD;Z扩展

ADDCX,AX

ADCBX,DX;X*Y+Z

MOVAX,V

CWD;V扩展

SUBAX,CX

SBBDX,BX;相减

IDIVX;除以X

例题3用XLAT指令将BCD码0~9转换成对应的ASCII码,并将ASCII码存入ARRAY中。

例题4设在内存缓冲区中有一数据块BUF,存放着100名学生某门课程的考试成绩(满分为100分,最低为0分),求出成绩不低于90分以及成绩低于60分的学生个数,并将它们分别存于符号地址为GOOD和FAIL的2个内存单元中。

要求画出程序流程框图,编写完整的汇编语言源程序。

DATASEGMENT

BUFDB100DUP(?

GOODDB0

FAILDB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START :

MOVAX,DATA

MOVDS,AX

MOVBX,OFFSETBUF

MOVCX,100

MOVDX,0

L1 :

MOVAL,[BX]

CMPAL,90

JBL2

NL+1

INCDH

JMPL3

L2:

CMPAL,60

JAEL3

INCDL

L3:

INCBX

LOOPL1

MOVGOOD,DH

MOVFAIL,DL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

 

五、存储器

例题1图示为某CPU的最小系统和某存储芯片的框图,已知该CPU共有8位数据总线,最大可以访问1MB的存储空间,其内部结构与8086相同,请回答以下问题:

1、将图中CPU的相关信号线与存储器相连。

2、要求1#存储器的起始地址为32000H,2#存储器的起始地址为38000H,且各存储单元的地址唯一。

根据需要选择合适的门电路与138译码器一起完成译码,画出译码电路图。

3、编写程序片段把1#存储器内容的绝对值按顺序存储到2#存储器。

2#

最小

系统

 

 

AY0

BY1

CY2

Y3

Y4

G1Y5

G2AY6

G2BY7

 

(1)正确连接CPU相关信号

2#

 

最小

系统

 

 

(2)

A18

A19

1.、地址译码输入连接,译码电路不唯一

2.、存储器片选连接

 

&

 

3)程序片段(参考程序,不唯一)

MOVAX,3000H

MOVDS,AX

MOVSI,2000H

MOVDI,8000H

MOVCX,2000H

L1:

MOVAL,[SI]

CMPAL,0

JGEL2

NEGAL

L2:

MOV[DI],AL

INCSI

INCDI

LOOPL1

例题2

六、综合应用题

例题1.已知某8088微机系统包括8255、8253两个可编程接口电路。

其中8253三个计数器分别工作在不同的方式下,可以为A/D转换器提供可编程的采样频率和采样时间;8255A的PB0可用于检测按键开关的位置,PB7可根据PB0的状态决定是否点亮LED指示灯。

设系统所要求有关硬件连线已经全部接好,如图所示。

试完成下列各项要求。

(1)分别列出8255A,8253各个端口的地址编码,其中片选信号

采用图2中的译码地址。

(2)根据图2所示8255A的A口和B口的连接方式,写出接口初始化程序片段。

(3)设计一个程序片段,使8255A监测PB0的输入状态,当PB0=1时使LED灯亮。

 

(1)8255的口地址码为08H,09H,0AH,0BH,8253的口地址码为0CH,0DH,0EH,0FH

(2)8255的初始化程序

MOVAL,10000010B

OUT0BH,AL

(3)8255检测到当PB0=1时点亮灯的程序片段

INAL,09H;读B口状态

K1:

TEST01H;测试PB0=1否

JZK1;不为1,踏步

MOVAL,00H;PB0=1,使PA0=0,点亮LED

OUT08H,AL

例题2图示为键盘电路,试编写8255初始化程序和键值读取程序,并将键值序号在LED七段数码管显示出来。

 

datasegment;数据段中存放数字0~9的LED显示代码

leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7FH

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdx,203h;送8255工作方式字:

A口方式0输出,

moval,10001000b;C口上半部输入,下半部输出

outdx,al

movcx,3;准备键扫

moval,0feh;送第一行扫描码:

PC0=0

movbh,-1;BH=-1表示第一行无键按下

s_next:

movdx,202h;从8255C口下半部送键扫描码

outdx,al

movbl,al

inal,dx;从8255C口上半部读按键状态

andal,70h

cmpal,70h;(AL)=70H表示无键按下

jnzdisp;有键按下,转到显示处理

moval,bl

rclal,1

addbh,3;准备检查第二行(PC1=0)键状态

loops_next

jmpexit

disp:

movcl,4;根据AL值计算键值

shral,cl

nn:

incbh

rcral,1

jcnn

movah,0;查表取键值显示码

moval,bh

movsi,ax

moval,led[si]

movdx,200h;从8255A口送显示码,驱动LED显示

outdx,al

exit:

movax,4c00h;退出

int21h

codeends

ENDSTART

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2