10微机原理复习.docx
《10微机原理复习.docx》由会员分享,可在线阅读,更多相关《10微机原理复习.docx(15页珍藏版)》请在冰豆网上搜索。
10微机原理复习
第一章微型计算机系统概述
1.指令流水线:
CPU的主要功能分为取指令和执行指令.取指令和执行指令是串行执行的,即一条指令完成后在执行下一条指令.
2.微型计算机系统组成分为硬件(微型计算机)和软件(汇编语言).P7
3.计算机中数的表示与编码.二进制-十进制十进制-二进制二,八,十六进制之间的转换.
4.带符号数的表示方法和求法.原码,反码,补码的8位表示方法
第二章微型计算机系统的微处理器
1.8086/8088CPU的功能结构由以下两部分组成:
总线接口单元BIU(BusInterfaceUnit),
执行部件EU(ExecutionUnit)。
总线接口单元BIU的主要功能是:
负责与存储器、I/O端口进行数据传送。
具体讲:
1)取指令:
总线接口部件从内存中取出指令后送到指令队列。
2)预取指令。
3)配合EU执行指令,存取操作数和运算结果。
4)负责产生总线控制信号,如访问存储器或I/O端口的读写控制信号.
执行部件EU主要功能是:
负责指令执行。
BIU的组成:
1)4个16位段地址寄存器
CS-代码段寄存器,存放当前程序所在段的段基址.
DS-数据段寄存器
ES-附加数据段寄存器
SS-堆栈段寄存器
2)16位指令寄存器IP
3)20位物理地址加法
4)指令列队
5)输入输出控制电路
EU的组成:
1)算数逻辑单元ALU
2)标志寄存器FR
3)寄存器组:
包括8个16位寄存器,既4个通用数据寄存器,
AX累加器
BX
CX计数器
DX.
还包括4个专用寄存器
基址指针寄存器BP
堆栈指针寄存器SP
源变址寄存器SI
目的变址寄存器DI
4)EU执行控制部分
2.总线周期:
BIU通过系统总线对存储器或I/O端口进行一次读/写操作的过程称为一个总线周期.
3.8086CPU指令列队的作用:
存储预取指令
地址加法器的作用:
计算20位的物理地址
4.在总线周期的T1~T4状态,CPU分别执行什么操作?
在CPU的读/写总线周期中,数据在哪个状态出现在数据总线上?
T1状态:
发送地址信息
T2状态:
低16位置为高阻抗状态,为传输数据作准备。
高4位传送状态信息
T3状态:
CPU在总线的高4位传送状态,低16位传送数据
T4状态:
总线周期结束。
数据在T3状态出现在数据总线上。
5.8086/8088常见引脚的功能
最大工作模式和最小工作模式的区别:
最小工作模式是只有一个CPU微处理器.最大工作模式是系统中包含两个或两个以上的微处理器,期中一个为主处理器,其他为协处理器.
1)AD15~AD0-地址/数据总线(分时复用)
2)A19/S6~A16/S3-地址/状态线(分时复用)状态线:
输出状态信息S6~S3。
这里S6始终为0;S5=IF;而S4和S3表示正在使用哪个段寄存器。
3)BHE低/S7(输出)
4)RD低(输出):
表示CPU正从存储器或I/O端口读取信息。
5)WR低(输出),表示CPU正将信息写入存储器或I/O端口。
6)M/(IO低)(Memory/IO)(输出)。
用于区分当前操作是访问存储器还是访问I/O端口。
7)MN/(MX低)(Minimum/Maximum)(输入):
1:
最小方式,0:
最大方式。
8)INTA低(InterruptAcknowledge)(输出),当8086响应来自INTR引脚的可屏蔽中断请求时,在中断响应周期,输出低电平。
9)ALE(AddressLatchEnable)(输出),表示地址线上的地址信息有效。
ALE常用作地址锁存器的锁存控制信号。
10)DT/(R低)(DataTransmit/Receive)(输出)。
用于指示数据传送的方向。
11)DEN(DataEnable)(输出),表示CPU准备接收/发送数据。
通常作为数据缓冲器的选通信号。
6.寄存器结构:
14个16位寄存器AX传送字CX计数器BX,DX
7.8086/8088CPU系统的存储器组成:
物理地址与逻辑地址的关系:
由逻辑地址求物理地址
8086存储器的分体结构:
奇地址存储器和偶地址存储器
字的存放方式读的时候从偶地址开始存放
第三章指令系统
1.MOVDST(目的操作数),SRC(源操作数)
2.会判断源,目的操作数的寻址方式.内存单元操作数均放在内存单元中.
3.寻址方式:
1)立即寻址:
(源操作数紧跟在操作吗后面)直接给出8位或16位的操作数(立即数)。
例MOVAX,3578H;
2)寄存器寻址:
指令给出存放操作数的寄存器名称。
例2MOVAX,BX
3)直接寻址:
直接给出内存单元,例MOVAX,[3000H];
4)寄存器间接寻址:
偏移地址放在寄存器中给出,例MOVAX,[3000H];
5)变址寻址:
既有寄存器又有常数,例MOVAX,4000H[BP]或MOVAX,[BP+4000H]
6)基址加变址寻址:
两个寄存器,一个基址寄存器,一个变址寄存器,例MOVAX,[BX][DI]或MOVAX,[BX+DI]
4.指令系统:
A系统传送类指令
1)1)传送-MOV(Move)
格式:
MOVDST,SRC
;DST≡{R,M};SRC≡{R,M,Imm}
功能:
DSTSRC(8/16)
2)入栈-PUSH
格式:
PUSHSRC;SRC≡{R,M}字
功能:
SPSP-2;(SP,SP+1)SRC
3)出栈-POP
格式:
POPDST;DST≡{R,M}字
功能:
DST(SP,SP+1);SPSP+2;
4)换码-XLAT(TranslateBytetoAL)
格式:
XLAT;隐含操作数BX,AL
功能:
AL[BX+AL]
5)取有效地址-LEA(LoadEAtoRegister)
格式:
LEAREG,SRC;SRC≡{M}
功能:
将SRC的偏移地址传送寄存器REG
例LEAAX,DAT1等效:
MOVAX,OFFSETDAT1
但LEA和OFFSET是有区别的
6)指针送寄存器和LDS(LoadPointertoDS)
格式:
LDSREG,SRC;SRC≡{M}
功能:
REGSRC低字(偏移地址);
DSSRC高字(段地址)
例设数据定义VAR1DD20001000H;
LDSAX,VAR1AX=1000H,DS=2000H
7)指针送寄存器和ES-LES(LoadPointertoES)
格式:
LESREG,SRC;SRC≡{M}
功能:
REGSRC低字(偏移地址);ESSRC高字(段地址)
LDS和LES指令常用于串处理指令之前传送源串和目标
串的地址指针
8)输入输出指令IN,OUT8086/8088通过该指令与外部设备进行数据交换。
B算术运算指令
1)加法-ADD(Add)
格式:
ADDDST,SRC
;DST≡{R,M};SRC≡{R,M,imm}
功能:
DSTSRC+DST且影响FLAGS
注意:
不能同时为M
例设DS=2000H,BX=1200H,(2225AH)=44H,(2225BH)=33H
ADD[BX+105AH],1322H;1322H+3344H=4666H
;OF=0;SF=0;ZF=0;AF=0;PF=1;CF=0;
2)带进位加法-ADC(AddwithCarry)
格式:
ADCDST,SRC;
DST≡{R,M};SRC≡{R,M,imm}
功能:
DSTSRC+DST+CF
用途:
实现多字节(多字)的加法。
例实现两个双字数的加法,DX,AX+CX,BX
DX=0002H,AX=0F365H,CX=0005H,BX=0F024H
ADDAX,BX;OF=0;SF=1;ZF=0;AF=0;PF=0;CF=1;
ADCDX,CX;OF=0;SF=0;ZF=0;AF=0;PF=0;CF=0;
3)加1-INC(Increment)
格式:
INCDST;DST≡{R,M}
功能:
DSTDST+1
注意:
INC不影响CF
例已知DS=1200H,BX=0500H,DI=0004H,(12504H)=0FFH,
(12505H)=0FFH
INCWORDPTR[BX+DI]
PA=12000H+0500H+0004H=12504H
0FFFFH+1=0000H,(12504H)=00H,(12505H)=00H
4)减法-SUB(Subtract)
格式:
SUBDST,SRC
;DST≡{R,M};SRC≡{R,M,imm}
功能:
DSTDST-SRC
5)带借位减法-SBB(SubtractwithBorrow)
格式:
SBBDST,SRC
;DST≡{R,M};SRC≡{R,M,imm}
功能:
DSTDST-SRC-CF
用途:
实现多字节(或多字)的减法。
6)减1-DEC(Decrement)
格式:
DECDST;DST≡{R,M}
功能:
DSTDST-1
注意:
不改变CF标志
7)比较-CMP(Compare)
格式:
CMPDST,SRC
;DST≡{R,M};SRC≡{R,M,imm}
功能:
DST-SRC将结果的标志送Flags。
用途:
比较数的大小,影响标志位,但不回送结果。
例已知DS=3000H,DI=0530H,AX=1FB8H,(30530H)=B8H,
(30531H)=1FH
CMPAX,[DI]
1FB8H-1FB8HCF=0;PF=1;ZF=1;AF=0;OF=0;SF=0
C逻辑运算/移位指令
1)逻辑与指令-AND(And)
格式:
ANDDST,SRC
;DST≡{R,M};SRC≡{R,M,Imm}
功能:
DSTDSTANDSRC
用途:
保留有用位,去掉无用位。
例将AL中的ASCII码转为BCD数
ANDAL,0FH
2)测试指令-TEST(AndFunctiontoFlagsNoResult)
格式:
TESTDST,SRC;DST≡{R,M};SRC≡{R,M,imm}
功能:
DSTANDSRC;不回送结果,但将结果的特征送FR
用途:
在不改变原有操作数的情况下,测试DST中某
些位的状态
例测试AL中的D0位
TESTAL,01H;若ZF=1,则D0=0;若ZF=0,则D0=1
D串操作指令
1)串传送指令-MOVS(MoveByte/Word)
格式:
①MOVS;目标串,源串,MOVS不能单独用
②MOVSB;字节串传送
③MOVSW;字串传送
功能:
从源串中取一个字节/字送目标串,自动修改SI和DI。
若加上REP前缀,则每传送完一个元素,CX减量,直到CX=0为止。
将整注解
个源串送目标串,允许两个串的长度不等。
例DSEGSEGMENT
SRCSTRDB'1234567890'
DSTSTRDB8dup(0)
DSEGENDS
MOVAX,DSEG
MOVDS,AX
MOVES,AX
LEASI,BUF1
LEADI,BUF2
CLD
MOVCX,10
REPMOVSB
2)串比较指令-CMPS(CompareByte/Word)
格式:
①CMPS;目标串,源串
②CMPSB;字节串比较
③CMPSW;字串比较
功能:
将源串的一个元素和目标串中相对应的一个元素进行比较,根
据结果特征置标志位,并修改SI和DI,使之指向下一元素。
通常在CMPS指令前加重复前缀REPE/REPZ,用来寻找两个串中的第一个不
相同数据。
例串比较
BUF1DB'AbcdE'
BUF2DB'AbcdF'
LEASI,BUF1
LEADI,BUF2
CLD
MOVCX,COUNT;串长度
CLD
REPECMPSB;串比较,直到ZF=0或CX=0
;ANDCX,0FFH
;有该指令本比较结果会认为两个串是相同的,CMPSB根
;据结果修改ZF,AND也影响ZF,因此不能用该指令
JZAGAIN
DECSI
MOVBX,SI;取第一个不相同字符偏移地址
MOVAL,[SI];取第一个不相同字符
JMPSTOP
AGAIN:
MOVBX,0;两串完全相同
3)串扫描指令-SCAS(ScanByte/Word)
格式:
①SCAS;目标串
②SCASB;字节串扫描
③SCASW;字串扫描
功能:
从目标串中查找事先置在AX或AL中的关键字。
SCAS指令将AX/AL中的关键字和DI所指向的目标串中一个元素相比较,
不传送结果,只根据结果置标志位,修改DI指向下一个元素。
通常在SCAS指令之前加重复前缀REPNE/REPNZ,用来从目标串中寻找关键
字,操作一直进行到ZF=1或CX=0为止。
E程序控制指令
1)JMP无条件转移指令
格式:
JMPOPRD;OPRD是转移的目的地址
2)条件转移指令
格式:
JXXOPR;OPR≡{标号}
操作:
当条件XX满足时则转移到OPR执行(IPIP+D8),
否则顺序执行。
第四章汇编语言程序设计
1.段结构:
必有代码段,其他段可有可无。
2.语句类型:
执行性语句和说明性语句
3.常用伪指令:
A.段定义伪指令
段名SEGMENT[定位类型][组合类型][类别]
逻辑段内容
段名ENDS
注意:
段名是该逻辑段的标识符,不可以缺省,由它来确定该逻辑段在存储器中的首地址;SEGMENT和ENDS是伪指令名,为关键字,不可以缺省,而且必须成对出现,必须具有相同的段名;
B.段寻址伪指令
格式:
ASSUME段寄存器:
段名[,段寄存器:
段名,…]
C.汇编语言结束伪指令
格式:
END表达式
D.等值伪指令EQU
格式:
符号名EQU表达式
等号伪指令=
格式:
符号名=表达式
E.数据定义伪指令
DB—定义字节,每个数据占一个字节
DW—定义字,每个数据占一个字(2个字节)低字节放在低地址
DD—定义双字,每个数据占2个字,低字节在低地址,高字节在高地址。
F.定位伪指令
格式:
ORG数值表达式
功能:
将汇编地址计数器设置成数值表达式的值。
注意:
该值为0~65535之间的非负整数。
4.运算符
MOD(取余)
1)SEG运算符
格式:
SEG变量或标号;计算段地址
2)OFFSET运算符
格式:
OFFSET变量或标号;计算偏移地址。
MOVAX,SEGNPMOVAX,OFFSETNP
3)TYPE运算符
格式:
TYPE变量或标号;计算变量或标号的类型值。
4)LENGTH运算符
格式:
LENGTH变量
功能:
对于使用DUP单独定义的变量,计算分配给该变量的单元数,其他变量的LENGTH值为1。
5)SIZE运算符
格式:
SIZE变量
功能:
对于使用DUP单独定义的变量,计算分配给该
变量的字节数,其他变量的SIZE值为1
5.基本程序结构设计
1)基本构架
第五章微型计算机系统总线
1.系统总线分为
地址总线AB单向
数据总线DB双
控制总线CB双
2.系统总线的主要性能指标
1)总线宽度
2)总线时钟频率
3)总线带宽
关系:
总线带宽=总线宽度*总线时钟频率/8
3.总线仲裁
总线握手
总线主设备
总线从设备
第六章半导体存储器
1.存储器的分类:
A.安制造工艺1)双极型2)金属氧化物半导体
B.按存取方式1)随机存取存储器RAM。
2)只读存储器ROM
2.半导体存储器的组成1)存储体2)译码驱动电路3)地址寄存器MAR,4)读写驱动电路5)数据寄存器MDR,6)控制逻辑
3.存储器系统的组织
三种片选方法:
①全译码法:
低位地址线作为存储器芯片的片内寻址,剩下的高位地址线作为存储器芯片的片间寻址
②部分译码法:
CPU的高位地址线中只有一部分用于存储器芯片的片间寻址
③线选法:
高位地址线作为存储器芯片的片选信号
第七章微型计算机和外部设备间的数据传输
1、I/O口交换信息分类
数据信息;状态信息;控制信息
2、I/O口功能
设备选择功能;数据缓冲功能;信号转换功能;
可编程功能;中断管理功能;数据宽度变换功能
3.CPU外设之间数据传送方式
1)无条件传送方式
2)查询传送方式
3)终端传送方式
4)DMA方式
第八章中断系统
1.中断:
是指CPU执行程序过程中,由于某种事件发生,迫使CPU暂时终止正在执行的程序(主程序),转去执行该事件的处理程序(中断服务程序),待处理完毕后,又返回到原程序的断点处,继续往下执行的过程
2.中断的分类:
1)外部中断(硬中断)①不可屏蔽中断NMI②可屏蔽中断INTR
2)内部中断(软中断)①除法错误②单步中断③溢出中断④指令中断⑤断点中断
3.8086/8088可以处理256个不同类型的中断源。
中断向量表的位置0-3FFH
4.、中断向量表
中断向量地址=4×中断类型码