文档介绍:该【微机原理与单片机(部分知识点) 】是由【莫比乌斯】上传分享,文档一共【12】页,该文档可以免费在线阅读,需要了解更多关于【微机原理与单片机(部分知识点) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。,具有16根数据线和20根地址线可以和浮点计算器,I/O处理器或其他处理器组成多处理系统。
。
总线接口单元内有4个16位段寄存器:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加数据段寄存器ES,一个16位的指令指针寄存器IP,一个20位地址加法器,6字节指令队列缓冲器,一个与EU通信的内部寄存器以及总线控制电路等。
(CS)用来存储程序当前使用的代码段和段地址。下一条要读取得指令在代码段中的偏移地址由指令指针寄存器IP提供。数据段寄存器DS用来存放程序当前使用的数据段地址。
,而数据段,堆栈段和附加数据段则根据程序的需要决定是否设置。
。
6.。
,功能:只是负责执行指令。执行的指令从BIU的指令队列缓冲器中直接得到,执行指令时若需要从存储器或I/O端口读取操作数,则由EU向BIU发出请求,再由BIU对存储器或I/O端口进行直接访问。
:1)16位算数逻辑单元(ALU),2)16位标志寄存器FLAGS,3)数据暂存寄存器,4)通用寄存器,5)EU控制电路
:1)外部数据总线不同,8086是16位,8088是8位,2)指令队列缓冲器大小不同,8086可容纳6个字节,8088只能容纳4个字节,3)部分引脚的功能定义有所区别
8086/8088CPU中可供编程使用的有14个16位寄存器,按其用途可分为3类:通用寄存器、段寄存器、控制寄存器。
(累加器AX、基址寄存器BX、计数器CX、数据寄存器DX)高8位AH、BH、CH、DH;底8位AL、BL、CL、DL
段寄存器
提供段内偏移地址的寄存器
CS
IP
DS
BX、SI、DI或一个16位立即数形式的偏移地址
SS
SP或BP
ES
DI(用于字符串操作指令)
:16位寄存器,共9个标志,其中6个用作状态标志,3个用作控制标志。
状态标志CF:进位标志,ZF:零标志位,SF:符号标志位,IF:中断允许标志位
,8282为8位地址锁存器,8086为具有三态输出的8位数据总线收发器
,中断响应信号,作为输出;ALE引脚25,地址锁存允许信号,作为输出;
:1)AD15—A8的定位不同;2)引脚34的定义不同;引脚28的有效电平高低定义不同
,可直接对1M个存储单元进行访问。每个存储单元放一个字节(8位)数据,一个“字”占两个字节即16位,每个存储单元都有一个20位的地址,这1M个存储单元对应的地址为00000H—FFFFFH(0—)
(1)存放指令操作数(2)保护断点和现场;每进行一次进站操作,SP值减2,每进行一次出栈操作,SP加2;栈底(先存),栈顶(先取)
:1)T1,信号:从存储器读还是从I/O设备中读数据;ALE:地址锁存信号,以使地址/数据线分开。2)T2状态,由高电平变为低电平,开始进行读数据操作。
18..8086/8088有20条地址线,可直接对1M个存储单元进行访问。每个存储单元存放一个字节型数据(8位),一个字占两个字节即16位,存放在两个相邻的存储单元中,高字节存放在高地址单元,低字节存放在低地址单元。且每个存储单元都有一个20位的地址,这1M个存储单元对应的地址为00000H~FFFFFH
。此为堆栈的主要功能。
总线读周期的时序
存储器I/O写周期的时序
ALE地址锁存信号。
,通过将段地址乘以10H(16),即左移4位,再与段内偏移量相加得到一个20位的物理地址,该20位的物理地址加载到20位的地址总线上,即可实现对8086/8088系统1M个存储单元的访问。
。指令格式及操作:MOVdst,src;(dst)←(src)
指令格式中的dst表示目的操作数,src表示源操作数
进栈指令PUSH。指令格式及操作:
PUSH src;(SP)←(SP)−2,((SP)+1:(SP))←(src)
出栈指令POP。指令格式及操作:
POPdest;(dest)←((SP)+1:(SP)),(SP)←(SP)+2
ADD加法,ADC带进位位加,SUB减,SBB带进位位减,CMP数据比较
(Callaprocedure)
(1)段内直接调用。指令格式及操作:
CALLnear_proc;(SP)←(SP)-2,((SP)+1:(SP))←(IP)
;(IP)←(IP)+disp
相对位移量disp的范围为-32768~+32767,占2个字节,段内直接调用指令为3字节指令
(2)段内间接调用。指令格式及操作:
CALLreg16/mem16;(SP)←(SP)-2,((SP)+1:(SP))←(IP)
;(IP)←(reg16)/(mem16)
指令的操作数是一个16位的寄存器或存储器,其中的内容是一个近过程的入口地址。
(3)段间直接调用。指令格式及操作:
CALLfar_proc ;(SP)←(SP)-2,((SP)+1:(SP))←(CS)
;(CS)←SEGfar_proc
;(SP)←(SP)-2,((SP)+1:(SP))←(IP)
;(IP)←OFFSETfar_proc
(4)段间间接调用。指令格式及操作:
CALL mem32;(SP)←(SP)-2,((SP)+1:(SP))←(CS)
;(CS)←(mem32+2)
;(SP)←(SP)-2,((SP)+1:(SP))←(IP)
;(IP)←(mem32)
指令格式及操作:
1)从近过程返回:
RET ;(IP)←((SP)+1:(SP)),(SP)←(SP)+2
RETpop_value ;(IP)←((SP)+1:(SP)),(SP)←(SP)+2
;(SP)←(SP)+pop_value
2)从远过程返回:
RET ;(IP)←((SP)+1:(SP)),(SP)←(SP)+2
;(CS)←((SP)+1:(SP)),(SP)←(SP)+2
RETpop_value;(IP)←((SP)+1:(SP)),(SP)←(SP)+2
;(CS)←((SP)+1:(SP)),(SP)←(SP)+2
;(SP)←(SP)+pop_value
RET指令还允许带一个弹出值(pop_value),这是一个范围为0~64K的立即数,通常是偶数。弹出值表示返回时从堆栈中舍弃的字节数。
返回类型
格式
操作
说明
段内
RET
IP出栈
格式RETexp允许在返回的同时,修改堆栈指针
RETexp
IP出栈
SP←SP+exp
段间
RET
IP出栈
CS出栈
RETexp
IP出栈
CS出栈
SP←SP+exp
,每个元素占一个存储单元
DW字型,每个元素占两个存储单元
段名SEGMENT..段名ENDS功能:定义一个逻辑段
ASSUME段寄存器名:段名,功能:明确段与段寄存器的关系
。只读存储器ROM。
I/O接口的基本结构
中断源
中断向量,
向量地址=向量表的首地址+中断类型码×4
对于8086CPU,中断类型号有256,中断向量表占用256×4=1KB
字节
字节数
地址
低字节
1
IP
高字节
1
低字节
1
CS
高字节
1
(1)外部硬件中断
外部硬件中断是指中断源是外部硬电路,通过CPU的NMI引脚或INTR引脚向CPU提出中断请求
可屏蔽中断INTR,受CPU内标志寄存器中IF位的屏蔽。
非屏蔽中断NMI,不受IF位的屏蔽,CPU必须响应。
CPU每执行完一条指令,就会检测NMI和INTR引脚上有无中断请求。
(2)内部异常中断
内部异常中断是指CPU内部正在执行的过程中发生异常情况,如除法操作时结果太大。
(3)中断优先顺序
①除法出错中断,溢出中断,INTn,···②NMI③INTR④单步中断
(4)中断类型码
中断类型码为8位二进制数,它是连接中断源和中断处理程序的唯一桥梁。80X86可处理256级中断,中断类型码为0~255,一部分由系统占用,一部分由用户支配,比如除法错误(n=0)、调试异常(n=1)、NMI中断(n=2)、断点中断(n=3)
中断请求、中断响应和处理、保护现场、恢复现场、开启中断。
初始化命令字
①ICW1主要用于设置工作方式
对A0=0的端口写入一个D4=1的数据,表示初始化编程开始。
D4:特征位,必须为1;
D3:LTIM位,设置中断请求信号的触发方式,0为边沿触发,1为高电平触发。
D1:SGNL位,是否工作在单片方式,0为多片级联,1为单片。
D0:IC4位,是否有ICW4,0表示后面不需设置命令字ICW4,1表示后面还需要设置ICW4。
D2和D7~D5这4位在仅对8080/8085系统有意义,8086/8088系统中这4位不用,通常置为0。
②ICW2用于设置中断类型号,写入A0=1的端口
A0:A0=1时表示ICW2必须写入奇地址
D7~D3:由用户根据中断向量在中断向量表中的位置确定
D2~D0:中断源的IR端号
③ICW3用于设置级联,写入A0=1的端口主片
A0:A0=1时表示ICW3必须写入奇地址
D7~D0:用于说明对应的IR端上有从片(对应位为1)或无从片(对应位为0)
从片
A0:A0=1时表示ICW3必须写入奇地址
D7~D3:不使用时默认为0
D2~D0:为从片的识别码,中断源的IR端号
④ICW4用于设置8259A的工作方式,写入A0=1的端口。ICW1的IC4位为1时,才写入ICW4。
D4:SFNM位,设置中断的嵌套方式,0为一般嵌套方式,1为特殊的全嵌套方式。
D3:BUF位,若该位为1,则8259A工作于缓冲方式,8259A通过数据总线收发器和总线相连,SP/EN引脚为输出;该位为0,8259A工作于非缓冲方式,SP/EN引脚为输入,用做主片、从片选择端。
D2:M/S位,当D3即BUF位为1时,该位才有效,用于主片/从片选择,0表示本片8259A为从片,1表示本片8259A为主片;当BUF位为0时,该位无效,可设为任意值。
D1:AEOI位,设置结束中断方式。0表示中断正常结束,靠中断结束指令清除ISR相应位;1表示自动结束中断,即CPU响应中断后,立即自动清除ISR相应位。
D0:μPM位,设置微处理器类型。0表示系统采用8080/8085微处理器;1表示系统采用8086/8088微处理器。
D7~D5:特征位,必须为000
工作方式编程
①OCW1的功能是设置和清除中断屏蔽寄存器的相应位,写入A0=1的端口
MX=1表示屏蔽中断源IRX;MX=0表示来自IRX的中断请求得到允许。
②OCW2用于设置优先级循环方式和中断结束方式,写入A0=0的端口
D4和D3位是特征位,D4D3=00表示写入的是OCW2。
D7:R位,表示优先级是否循环。为1,采用优先级循环方式;为0,则为非循环方式。
D6:SL位,表示L2~L0是否有效。为1,L2~L0位有效;为0,则L2~L0位无效。
D5:EOI位,中断结束命令位。为1时,OCW2用做结束中断命令;为0时,②OCW2用做设定优先级循环方式的命令字。
③OCW3的功能有三个方面:设置和撤消特殊屏蔽方式、设置中断查询方式以及设置对8259A内部寄存器的读出。OCW3写入A0=0的端口
D4和D3位是特征位,D4D3=01表示写入的是OCW3。
D7:无关位,可设为任意值。
D6:ESMM位,即允许特殊屏蔽方式位。该位为1时SMM位才有意义。
D5:SMM即特殊屏蔽方式位。为1,表示设置特殊屏蔽方式;为0,表示清除特殊屏蔽方式。
D2:P位,为1时表示该OCW3用做查询命令(查询方式在前面已经介绍过,在此不再赘述);为0表示非查询方式。
D1和D0:RR位和RIS位。这两位的组合用于指定对中断请求寄存器(IRR)和中断服务寄存器(ISR)内容的读出。D1D0=10时,表明紧接着要读出IRR的值;
D1D0=11时,表明紧接着要读出ISR的值。
(R0)=30H,执行MOVA,R0后,(A)=30H
(50H)=3AH执行MOVA,50H后,(A)=3AH
(R0)=30H,(30H)=5AH执行MOVA,***@R0后,(A)=5AH
,#50H结果:(A)=50H
,***@A+DPTR”后结果:(A)=88H
,,JCrel存于1000H开始的单元执行JCrel指令后,程序将跳转到1077H单元取指令并执行。
,MOVC,00H执行后,。
数据传送类指令
MOVDPTR,#2000H(16位)
MOVA,20H/R0/#30H/***@R1
MOV20H
①特殊传送指令
读ROM中常数表项指令MOVC2条
读片外RAM及接口单元数据的指令MOVX4条
②堆栈操作指令
后进先出
入栈指令PUSHdirect;SP←(SP)+1,(SP)←(direct)
出栈指令POPdirect;(direct)←((SP)),SP←(SP)-1
③数据交换指令
XCH字节交换指令
XCHD是间址操作数的低半字节与A的低半字节互换。
SWAP是累加器的高低4位互换
(1)中断
①5种类型的中断源
外部中断0--INT0。外部中断1—INT1。定时器0溢出中断--T0。定时器1溢出中断—T1。串行口中断—S
②TCON——定时器控制寄存器,存放有4个标志位
SCON——串行口控制寄存器,存放有2个标志位