微机原理补考知识点总结Word文档下载推荐.docx
《微机原理补考知识点总结Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理补考知识点总结Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
时钟周期、总线周期、指令周期
三者关系:
一个基本的总线周期至少由4个时钟周期组成(T1、T2、T3、T4)。
指令周期是由1个或多个总线周期组合而成。
8086CPU在读/写总线周期的T3状态结束对READY线采样,如果READY为低电平,则在T3与T4状态之间插入等待状态TW。
第三章8086指令系统
第一节8086寻址方式
一、数据寻址方式
指令的格式:
操作码目的操作数,源操作数
例:
MOVAL,19H
其中AL为目的操作数,19H为源操作数
1、立即寻址
操作数(为一常数)直接由指令给出
(此操作数称为立即数)
立即寻址只能用于源操作数
MOVAX,1800H立即寻址指令执行速度最快
2、寄存器寻址
(1)操作数放在某个寄存器中
(2)源操作数与目的操作数字长要相同
MOVAX,BX
3、直接寻址
(1)指令中直接给出操作数的16位偏移地址
偏移地址也称为有效地址(EA,EffectiveAddress)
(2)默认的段寄存器为DS,但也可以显式地指定其他段寄存器——称为段超越
MOVAX,[2A00H]
4、间接寻址
操作数的偏移地址(有效地址EA)放在寄存器中
只有SI、DI、BX和BP可作间址寄存器,可以提供偏移地址EA
例:
MOVAX,[BP]源操作数物理地址为16×
(SS)+(BP)。
MOVCL,CS:
[DI]
错误例:
×
MOVAX,[DX];
只有SI、DI、BX和BP可作间址寄存器
×
MOVCL,[AX];
只有SI、DI、BX和BP可作间址寄存器
5、寄存器相对寻址
EA=间址寄存器的容加上一个8/16位的位移量
MOVAX,[BX+8]
MOVAX,8[BP];
默认段寄存器为SS
6、基址变址寻址
若操作数的偏移地址:
由基址寄存器(BX或BP)给出——基址寻址方式
由变址寄存器(SI或DI)给出——变址寻址方式
由一个基址寄存器的容和一个变址寄存器的容相加而形成操作数的偏移地址,称为基址-变址寻址。
EA=(BX)+(SI)或(DI);
EA=(BP)+(SI)或(DI)
同一组的寄存器不能同时出现。
注意:
除了有段跨越前缀的情况外,当基址寄存器为BX时,操作数应该存放在数据段DS中,当基址寄存器为BP时,操作数应放在堆栈段SS中。
7、相对基址变址寻址
在基址-变址寻址的基础上再加上一个相对位移量
EA=(BX)+(SI)或(DI)+8位或16位位移量;
EA=(BP)+(SI)或(DI)+8位或16位位移量
指令操作例:
MOV1283H[BX][SI],AX
寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较:
寻址方式指令操作数形式
寄存器间接只有一个寄存器(BX/BP/SI/DI之一)
寄存器相对一个寄存器加上位移量
基址—变址两个不同类别的寄存器
相对基址-变址两个不同类别的寄存器加上位移量
1、以下指令中,没有错误的是()。
A)MOVBYTE[BX],1000
B)PUSHCS
C)POPCS
D)MOVAX,[SI][DI]
2、以下几种不同数据寻址方式的指令中,()的指令执行速度最快。
A)MOV[2000],1800H
B)Mov[SI],1800H
C)Movax,1800H
D)MOVDS,1800H
第二节8086指令系统
一、数据传送指令
1、通用传送指令
(1)MOVdest,src;
dest←src
(2)、堆栈指令
按“后进先出”方式工作的存储区域。
1压栈指令PUSH
2弹出指令POP
假设(SS)=2000H,(SP)=0012H,(AX)=1234H,执行PUSHAX后,(SP)=0010H
2、输入输出指令
(1)输入指令IN
(2)输出指令OUT
二、算术运算指令
1、加法指令
(1)不带进位的加法指令ADD
实例:
ADDAL,30H
•ADD指令对6个状态标志均产生影响。
(1)带进位的加法ADC
ADC指令在形式上和功能上与ADD类似,只是相加时还要包括进位标志CF的容,例如:
ADCAL,68H;
AL←(AL)+68H+(CF)
ADCAX,CX;
AX←(AX)+(CX)+(CF)
(3)加1指令INC
功能:
类似于C语言中的++操作:
对指定的操作数加1
INCAL
执行如下程序:
MOVAX,0
MOVBX,1
MOV
CX,100
A:
ADD
AX,BX
INCBX
LOOPA
HLT
执行后(BX)=101
2、减法指令
(1)不考虑借位的减法指令SUB
格式:
SUBdest,src
操作:
dest←(dest)-(src)
指令例子:
SUBAL,60H
(2)考虑借位的减法指令SBB
SBB指令主要用于多字节的减法。
SBBdest,src
dest←(dest)-(src)-(CF)
SBBAX,CX
(3)减1指令DEC
作用类似于C语言中的”--”操作符。
(5)比较指令CMP
CMPdest,src
(dest)-(src)
CMP也是执行两个操作数相减,但结果不送目标操作数,其结果只反映在标志位上。
CMPAL,0AH
2、乘法指令
进行乘法时:
8位*8位→16位乘积
16位*16位→32位乘积
(1)无符号数的乘法指令MUL(MEM/REG)
MULsrc
字节操作数(AX)←(AL)×
(src)
字操作数(DX,AX)←(AX)×
MULBL;
(AL)×
(BL),乘积在AX中
MULCX;
(AX)×
(CX),乘积在DX,AX中
(2)有符号数乘法指令IMUL
格式与MUL指令类似,只是要求两操作数均为有符号数。
IMULBL;
(AX)←(AL)×
(BL)
IMULWORDPTR[SI];
(DX,AX)←(AX)×
([SI+1][SI])
MUL/IMUL指令中
●AL(AX)为隐含的乘数寄存器;
●AX(DX,AX)为隐含的乘积寄存器;
●SRC不能为立即数;
即MUL10H错误,10H为立即数
●除CF和OF外,对其它标志位无定义。
4、除法指令
进行除法时:
16位/8位→8位商
32位/16位→16位商
对被除数、商及余数存放有如下规定:
被除数商余数
字节除法AXALAH
字除法DX:
AXAXDX
(1)无符号数除法指令DIV
DIVsrc
字节操作(AL)←(AX)/(SRC)的商
(AH)←(AX)/(SRC)的余数
字操作(AX)←(DX,AX)/(SRC)的商
DX)←(DX,AX)/(SRC)的余数
DIVCL
(2)有符号数除法指令IDIV
IDIVsrc
操作与DIV类似。
商及余数均为有符号数,且余数符号总是与被除数符号相同。
注意:
对于DIV/IDIV指令
AX(DX,AX)为隐含的被除数寄存器。
AL(AX)为隐含的商寄存器。
AH(DX)为隐含的余数寄存器。
src不能为立即数。
对所有条件标志位均无定
四、控制转移指令
1、转移指令
(1)无条件转移指令JMP
格式:
JMPlabel
本指令无条件转移到指定的目标地址,以执行从该地址开始的程序段。
假设(DS)=2000H,(BX)=1256H,(SI)=528FH;
位移量TABLE=20A1H,(232F7H)=3280H,(264E5H)=2450H,则
执行指令JMPTABLE[BX]后,(IP)=3280H;
执行指令JMP[BX][SI]后,(IP)=2450H。
(2)条件转移指令(补充容)常用指令
①根据单个标志位设置的条件转移指令
JZ/JE;
结果为零(ZF=1),则转移
JNZ/JNE;
结果不为零(ZF=0),则转移
(2)段转移指令执行结果只改变IP的值。
有100个字节数据(补码),存放在数据段中EA=2000H的存储单元中。
以下程序应该从该数据区中找出最小的一个数据,并存入EA=2100H单元中,请将下面程序补充完整。
MIN:
MOVBX,(2000H)
MOVAL,[BX]
MOVCX,(99)
LOOP1:
INCBX
CMPAL,[BX]
(JLE)LOOP2
MOVAL,[BX]
LOOP2:
DECCX
JNZLOOP1
MOV([2100H]),AL
2、循环控制指令
用在循环程序中以确定是否要继续循环。
循环次数通常置于CX中。
循环控制指令不影响标志位。
(1)LOOP
LOOPlabel
(CX)-1→CX;
若(CX)≠0,则转至label处执行;
否则退出循环,执行LOOP后面的指令。
LOOP指令与下面的指令段等价:
DECCX
JNZlabel
第四章8086汇编语言程序设计
一、8086汇编语言的基本语法
1.汇编语言结构
1)标识符
用来对程序中的变量、常量、段、过程等进行命名,它是组成语句的一个常用成分,它的命名应符合下列规定:
①合法符号:
字母(不分大小写)、数字及特殊符号(“?
”,“”,“_”,“$”,“•
”)。
②名字必须以字母开头。
1名字的有效长度不超过31个英文字符。
2不能把保留字(如CPU的寄存器名、指令助记符等)用作名字。
变量是存储单元的符号地址,这类存储单元的容可以在程序运行期间被修改。
8、汇编程序的一般结构
DATASEGMENT
…
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
….
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
第三节程序设计
1、顺序程序的设计
顺序程序:
顺序执行的程序称为顺序程序。
特点:
每一条指令在执行过程中只被执行一次。
例:
根据算式Z=8X+Y/16-W^2,X、Y、W均为8位无符号数,Z为16位无符号数。
XDB?
YDB?
WDB?
ZDW?
CODE,DS:
START:
MOVAX,DATA
MOVAL,X
MOVBL,8
MULBL
MOVDX,AX
MOVAH,0
MOVAL,Y
MOVBL,16
DIVBL
CBW
ADDDX,AX
MOVAL,W
MULAL
SUBDX,AX
MOVZ,DX
MOVAH,4CH
INT21H
ENDSTART
2、分支程序的设计
计算机的一个重要特点在于它能“判断”情况。
计算机指令系统中的比较指令、测试指令和条件转移指令等就反映了这种能力。
例如程序设计中经常会遇到判断“相等”和“不相等”、“负”和“正”、“大于”和“小于”、“满足条件”和“不满足条件”等等。
这种判断使程序的流程不再是一条顺序执行的直线,而变为由两个或多个分支所组成的倒树型结构,其中每一个分支只有在满足条件时才被执行。
3、循环程序。
1)循环程序的构成:
任何循环程序都可分为循环初始部分、循环体和循环结束部分。
2)循环的类型
循环体的结构依照问题的不同,一般可以分为两种类型:
①先判断后处理;
WHILE-DO
②先处理后判断。
DO-WHILE
第六章存储器
一、概述
二、半导体存储器
1.半导体存储器的分类:
(按存取方式)
可分为RAM和ROM。
2、什么是RAM,ROM?
RAM和ROM各有什么特点?
三、存储器芯片的扩展
由于单个存储芯片的容量有限,将若干存储芯片进行连接扩展成大容量的存储器,通常有三种方式:
位扩展、字扩展、字位扩展
进行字位扩展时,一般先进行位扩展,使构成字长满足要求的存模块,然后再用若干这样的模块进行字扩展,使总存储容量满足要求。
一个存储器的容量为M×
N位,若使用P×
K位存储器芯片,那么,这个存储器共需要(M/P)×
(N/K)个存储器芯片。
8、6166为2Kx8位的SRAM芯片,它的地址线条数为(
)。
A)10
B)11
C)12
D)13
8、使用62256(32K×
8位)和28C512(64K×
8位),在8086系统最小模式中设计具有256KBRAM、128KBE2PROM的存储体,分别需要()。
A)8片62512,4片28C512
B)4片62512,2片28C512
C)8片62512,2片28C512
D)4片62512,4片28C512
第7章中断技术
一、中断的基本概念
1、什么叫作中断?
中断的过程是什么?
2、中断的过程可分为中断请求,中断判优,中断响应,中断处理和中断返回。
3、可屏蔽中断的嵌套原则:
中断服务期间禁止同级和较低级的中断请求。
4、8259支持电平触发和边沿触发两种中断触发方式。
5、8259A应用中,需对IR5,IR3进行屏蔽,操作命令字OCW1应写入28H命令字
6、要禁止8259A的IR0的中断请求,则其中断屏蔽操作指令字OCW1应为()。
A)80HB)28HC)E8HD)01H
第8章I/O接口技术
一、接口概述
1、I/O接口的功能:
对输入/输出数据进行缓冲和锁存、对信号的形式和数据的格式进行变换、对I/O端口进行寻址、提供联络信号等。
2、什么是端口?
通常有哪几类端口?
3、8251A芯片的控制字及其工作方式
可编程串行通信接口芯片8251A在使用前必须进行初始化,以确定它的工作方式、传送速率、字符格式以及停止位长度等,这样就需要有三种控制字,分别为工作方式控制字、操作命令控制字和状态控制字。
(1)工作方式控制字
(2)操作命令控制字
要使8251A处于发送数据或接收数据状态,通知外设准备接收数据或是发送数据,是通过CPU执行输出指令,发出相应的控制字来实现的
(3)状态控制字
CPU通过输入指令读取状态控制字,了解8251A传送数据时所处的状态,做出是否发出命令,是否继续下一个数据传送的决定。
状态字存放在状态寄存器中,CPU只能读入状态寄存器,而不能对它写入容
复位命令
要改变8251A的工作方式,必须先复位,再重新设置方式。
8251A有两种复位方式:
硬件复位和软件复位。
硬件的方法是从RESET引脚输入一复位信号
软件复位是编程中常采用的方法。
软件复位的步骤是:
(1)向控制/状态端口连续写入3个0;
(2)写入控制字40H。
【例】编写使8251A发送数据的程序。
将8251A定为异步传送方式,波特率系数为16,采用偶校验,1位停止位,8位数据位。
8251A与外设有握手信号,采用查询方式发送数据。
设8251A数据端口地址为90H,方式命令状态端口地址为91H。
MOVDX,91H
MOVAL,0
OUTDX,AL
OUTDX,AL
MOVAL,40H
OUTDX,AL;
MOVDX,91H
MOVAL,7EH;
写工作方式控制字
OUTDX,AL
MOVAL,37H;
写操作命令控制字
WAIT∶
INAL,DX;
读入状态控制字
ANDAL,01H
JZWAIT;
检查RxRDY是否为1
MOVDX,90H
MOVAL,DATA;
输出的数据送AL