设计微机最小系统.ppt
《设计微机最小系统.ppt》由会员分享,可在线阅读,更多相关《设计微机最小系统.ppt(147页珍藏版)》请在三一办公上搜索。
1、第一章8086/8088系统,*工作模式*引脚信号,第一章8086/8088系统,最小模式和最大模式的概念为了尽可能适应各种各样的使用场合,在设计8086/8088CPU芯片时,使它们可以在两种模式下工作,即最小模式和最大模式。,第一章8086/8088系统,最小模式在系统中只有8086或者8088一个处理微器。系统中的所有的总线控制信号都直接由8086或8088产生。因此,系统中的总线控制电路被减到最少。,第一章8086/8088系统,最大模式是相对最小模式而言的 最大模式用于中等规模的或大型的8086/8088系统中。在最大模式系统中,总是包含有两个或多个处理微器,其中一个主处理器就是80
2、86或者8088,其他的处理器称为协处理器,它们是协助主处理器工作的。,第一章8086/8088系统,8086/8088到底工作在最大模式还是最小模式,这完全有硬件决定。,第一章8086/8088系统,8086/8088的引腿信号特点,*8086/8088的数据线和地址是复用的*除了第28腿和第34腿以外,8086和 8088的控制线引腿定义是一样的。,第一章8086/8088系统,第21腿(RESET)是输入复位信号的。在8086/8088系统中,CPU被启动后,处理器的标志寄存器,指令指针寄存器IP,段寄存器DS,SS,ES和指令队都被清除,但是代码段寄存器CS被设置为FFFFH。,第一章
3、8086/8088系统,因为IP=0000,CS=FFFFH。所以,8086/8088将从地址FFFF0H开始执行指令。通常,在安排内存区域时,将高地址区作为只读存储区,且在FFFF0H单元开始的几个单元中放一条无条件转移指令,转到一个特定的程序中。这个程序往往实现系统初始化,引导监控程序或者引导操作系统等功能,这样的程序叫引导和装配程序。,第一章8086/8088系统,第22引腿用于从内存或I/O接口往CPU输入“准备好”(READY)信号 第23腿(TEST)是在多处理器系统中使用的。,第一章8086/8088系统,A19/S6A16/S3:该高4位地址线和状态线复用。在总线周期的前一部分
4、时间,A19/S6A16/S3腿用来输出高4位地址,在总线周期的其余部分时间,则用来输出状态信息。,第二章 指令系统,直接寻址:所需的操作数通过指令直接提供的偏移地址来得到。MOV AX,2000H偏移地址:2000H段地址:(隐含DS)(DS)=3000H 2000H+30000H 物理地址:32000H结果:(AH)=3050H,OP,AX,50,00,30,32000H,数据段,代码段,寄存器间接寻址操作数在存储器中的地址在(SI,DI,BP,BX)中。(1)若以SI,DI,BX间接寻址,操作数在现行数据段中,例:MOV AX,SI,1000H,20000H,SI,+DS,物理地址:21
5、000H,21 43,21000H,AX,21,43,FF,00,第二章 指令系统,(2)若以寄存器BP间接寻址,则操作数在堆栈段中。,例:MOV AX,BP,3000H,20000H,BP,+SS,物理地址:23000H,23000H,AX,21 43,21,43,第二章 指令系统,(3)若指令中规定是段超越的,也可以寻访其他段。MOV AX,ES:BX,第二章 指令系统,直接变址寻址 寄存器相对寻址 由指定的寄存器内容,加上指令中给定的8位或16位偏移量(当然有一个段寄存器作基本地址)作为操作数地址。,例,第二章 指令系统,例:MOV AX,countSI,例:MOV AX,BP,2000
6、H,30000H,SI,Count,35000H,count,(AX)=4525H,+DS,45 25,45,25,3000H,AX,00,30,OP,第二章 指令系统,变址地址也可以使段跨越前缀。MOV DL,ES:STRINGSI正常情况下,SI,DI,BX作变址,与DS联用。若用BP变址,与DS联用。,第二章 指令系统,基址变址寻址 操作数的偏移地址是一个基址寄存器(BX,BP)和一个变址寄存器的内容之和。(SI,DI),基址寄存器=BX;段寄存器是DS隐含 基址寄存器=BP;段寄存器是SS,例,第二章 指令系统,该寻址方式同样可以段超越使用 MOV AX,ES:BXSI,0158H,1
7、0A5H,BX,+DS,221FDH,DI,21000H,AX,21,45,21 45,MOV AX,BXDI DS=2100H;BX=0158H;DI=10A5H,第二章 指令系统,操作数偏移地址由一个基址寄存器、一个变址寄存器的内容和8位或16位位移量之和构成。,例:MOV AX,MASKBXSI,1000H,2000H,SI,BX,33250H,33 44,33,44,AX,30000H,(MASK),DS,0250H,该地址也可以段超越。,第二章 指令系统,寻找一个操作数,只能在某一个段的64KB范围中寻找。已什么寄存器间址、变址等,则操作数就在什么段域中,8086/8088有约定,只
8、要不在指令中超越这个约定,就按平常状态来寻找操作数。,第二章 指令系统,第二章 指令系统,(1)操作码(OP)的机器语言表示,(3)指令的执行时间,(2)寻址方式的机器语言表示,第二章 指令系统,8086/8088指令是多字节指令,一条指令可由17个字节构成,操作码通常是第一字节表示。,OP d w,0,7,0 字节操作 0 源操作数 W=d=(双操作数指令)1 字操作 1 目的操作数 说明:Ret的用途。,第二章 指令系统,若采用立即寻址:操作码:,OP s w,0,7,sw=01 指令有16位立即数,而且作字操作 11 指令有8位立即数,00 字节操作,第二章 指令系统,机器指令的第二个字
9、节用于表明寻址方式,Mod Reg R/m,2 65 32 0,Reg表示寄存器方式,双操作数指令规定必须有一个操作数在寄存器中,该寄存器由reg决定。Mod与r/m结合在一起确定另一操作数的寻址方式。,第二章 指令系统,若无段超越,则使用隐含段寄存器,若指定段前缀,则在机器指令之前的一个字节来表示。,001 SEG 110,7 0,标志,例,第二章 指令系统,ADD CL,BH,000 000 1 0 02H d:reg为目的操作数,11 001 111 CFH mod ret r/w 与w=0寄存器寻址 CL BH,CF,02,高,低,OP,W:字节,第二章 指令系统,ADD DISP B
10、XDI,DX 000000 0 1 w:字运算 OP d:reg为源操作数,10 010 001 01000101 00100011 mod ret r/m DISP 相对基址变址寻址 DX,第二章 指令系统,指令执行时间 f=5MHz T=1/5MHz=0.2sADD AX,BX 寄存器寄存器方式 T=30.2=0.6(s)ADD AX,DISPBXDI 存储器寄存器方式 T=(9+EA).().(s),第二章 指令系统,指令系统可以分为6组,数据传送指令,逻辑运算,控制转移,处理机控制,串操作,算术指令,第二章 指令系统,1、通用数据传送指令:MOV;PUSH;POP;XCHG,3、地址传
11、送指令:LEA;LDS;LES,4、寄存器传送指令:LAHF;SAHF;PUSHF;POPF(标志入AH)(AH入标志)(标志入栈)(标志出栈),2、累加器专用传递指令:IN,OUT,XLAT 这组指令只限于累加器AX,AL。,第二章 指令系统,MOV传送指令:MOV OPRD1,OPRD2 目的 源CPU内部寄存器之间数据传送(除CS,IP外)MOV AL,BL MOV AX,BX MOV DS,BX,第二章 指令系统,立即数传送至CPU内部的通用寄存器(段寄存器除外)AX,BX,CX,DX,BP,SP,SI,DI MOV CL,4 MOV AX,03FFH MOV SI,057BH,第二章
12、 指令系统,CPU内部寄存器(除CS,IP)与存储器(所有寻址方式)之间的数据传送 MOV AX,SI MOV AL,VFFER MOV AX,PPBXSI,第二章 指令系统,MOV指令不能实现存储单元之间的数据传递,但可通过CPU内部寄存器为桥梁来实现 MOV AL,ARER1 MOV ARER2,AL,第二章 指令系统,二个段寄存器之间不允许直接传递信息,第二章 指令系统,PUSH 进栈指令堆栈是以“先进后出”方式工作的一个存储区,它在堆栈段中。其段地址在SS中。只有一个出口,偏移地址在SP之中,SP在任何时候都指向栈顶。,第二章 指令系统,PUSH AX SP SP-2(SP+1)AH(
13、SP)AL,堆栈的存取以字为单位,可以使用除立即数以外的其他寻址方式来保存程序区或寄存器的内容。,低,高,高,低,AH,AL,后,前,SP,SP,第二章 指令系统,POP 出栈指令将压入堆栈的数据弹出。,例:POP AX AL(SP)AH(SP+1)SP SP+2,AL 07,AH 21,(AX)=2107,21,07,后,前,SP,两条指令均不影响标位。这两条指令主要用于数据保护。,POP,SP,第二章 指令系统,XCHG:交换指令,XCHGOPR1,OPR2把一个字节或字的源操作数与目的操作数相交换,交换可在通用寄存器之间,通用寄存器与存储器之间。但段寄存器除外。,XCHG AL,CL X
14、CHG BX,DATASI XCHG BX,BP+SI,第二章 指令系统,IN 输入指令:,CPU,I/O,DB,CB,AB,输入指令允许把一个字节或一个字由输入端口传送至AL或AX。由于8086可供64K的I/O端口空间,所以可有65536个I/O端口,前256个端口(0FFH)可以在指令中指定;端口号超过256个,则将端口地址放在OX,再用输入指令输入数据。,例,第二章 指令系统,IN AX,28H IN AL,29H端口号大于256:MOV DX,3FCH IN Ax,DX输入数据是字还是字节,取决于外设DB宽度。,第二章 指令系统,OUT:输出指令,输出指令允许把AL或AX中的一个字节
15、或一个字内容传送至输出端口 OUT 14H,AL端口号大于256:MOV DX,0714H OUT DX,AX,第二章 指令系统,XLAT:换码指令,用于将一种代码转换为另一种代码。用指令之前,先将表的首地址放入BX中,在AL中置好偏移量(即所需换码字节在表中的相对位置),然后XLAT指令将(BX)内容加上AL中的内容形成的偏移地址的单元内容取到AL中。格式:XLAT 或 XLAT 执行操作:AL(BX+AL),例,第二章 指令系统,MOV BX,OFFSET TABMOV AL,1XLAT,B,C,A,BX,TAB,A,AL,BX+AL,第二章 指令系统,LEA:有效地址送寄存器,格式:LE
16、A OPRD1,OPRD2 将源操作数OPRD2的偏移地址送到目的操作数OPRD1。源操作数必须是存储器,目的操作数是一个16为通用寄存器。,例,第二章 指令系统,LEA BX,BUFR 将变量BUFR的偏移地址给BX,BX,23E0,BUFR,第二章 指令系统,LEA BX,BX+SI,若 BX=0400H,SI=003CH 偏移地址=0400+003C=043CH,BX,043C,第二章 指令系统,LDS:地址指针送寄存器和DS指令,格式:LFD OPRD1,OPRD2 指令将源操作数OPRD2所指定存储区的4个相继字节送到指令指定的寄存器及DS寄存器中。该指令常指定SI。,例,第二章 指
17、令系统,LDS SI,BX执行前:BX=10H;DS=C000H;(C0010H)=0180H(C0012H)=2000H执行前后:(SI)=0180,(DS)=2000H,c0011H,c0010H,80,00,20,01,c0012H,c0013H,S I,D I,BX,DS,+,C0010H,第二章 指令系统,LES:地址指令送寄存器和ES指令 格式 LES OPRD1,OPRD2 将源操作数OPRD2指定存储器4个相继字节送到指令指定的寄存器及ES中。该指令常指定寄存器DI。,例,第二章 指令系统,LES DI,BX执行前:DS=B000H,BX=080AH,(0B080A)=080A
18、H(0B080CH)=4000H执行后:DI=080AH,ES=4000H,0B080AH,DI,OA,00,40,ES,08,0B080BH,0B080CH,0B080DH,上述三种寻址包括所有寻方式。,第二章 指令系统,LAHF:PSW送AH指令 格式:LAHF 执行:AH PSW低字节(进位)(奇偶)(半进位)(零)(符号)CF PF AF IF SF,第二章 指令系统,SAHF:AH送PSW 执行:PSW低字节 AH,第二章 指令系统,PUSHF:标志进栈 格式:PUSHF 执行:SP SP-2 PSW(SP+1,SP),低,高,PSWH,SP,PSWL,第二章 指令系统,POPF:标
19、志出栈 执行:PSW(SP+1,SP)SP SP+2,低,高,PSWH,PSWL,SP,第二章 指令系统,2、减法指令:SUB SBB DEC NEG CMP,1、加法指令:ADD ADC INC,4除法指令:DIV IDIV CBW CWD,3、乘法指令:MUL IMUL,5、十进制调整指令,第二章 指令系统,格式:ADD OPRD1,OPRD2 OPRD1 OPRD1+OPRD2 目的操作数OPRD1可以是AX,任一通用寄存器,存储器。源操作数OPRD2可以是AX任一通用寄存器,存储器,立即数。ADD AL,30H ADDAX,SI ADD BETASI,AX ADD DI,CX 这些指令
20、将对标志产生不同的影响。,第二章 指令系统,ADC带进位加法 格式:ADC OPRD1,OPRD2 执行:OPRD1 OPRD2+OPRD1+CF 该指令多用多字节运算,第二章 指令系统,低,高,56,THORD,87,21,43,54,86,10,32,AA,ID,75,32,SECOND,FIRST,两个四字节数加,分别放在FLRST和SECOND起始之单元,存放时低字节在地址处。MOV AX,FIRST;(AX)=8756HADD AX,DECOND;(AX)=8756+8654MOV THIRD,AX;=1DAAH CF=1MOV AX,FIRST+2(AX)=4321HADC AX,
21、SECOND+2(AX)=4321+3210+CFMOV THIRD+2=7532H,第二章 指令系统,INC:加1 指令 格式:INC OPRD 该指令的操作数OPRD可以是通过寄存器,也可以是存储器单元。执行:OPRD OPRD+1 INC AX;AX=AX+1,第二章 指令系统,注意 执行加法指令时,CF位是根据最高有效位是否有进位而设置。有进位CF=1,无进位CF=0。OF根据符号及其变化情况而设置。若两个操作数符号相同,结果的符号与之相反,则溢出OF=1,第二章 指令系统,SUB:减法指令 格式:SUB OPRD1,OPRD2 操作:OPRD1=OPRD1-OPRD2 目的操作数OP
22、RD1可以是AX,通用寄存器,存储器单元,源操作数OPRD2可以是立即数,通用寄存器,存储器单元。,第二章 指令系统,例 SUB CX,BX;CX=CX-BX SUB BX,CL;BX=BX-CL,第二章 指令系统,SBB OPRD1,OPRD2格式:SBB OPRD1,OPRD2操作:OPRD1=OPRD1-OPRD2-CF 用于多字节数相减。,第二章 指令系统,DEC:减指令格式:DEC OPRD执行:OPRD OPRD-1 DEC CX;CX=CX-1,第二章 指令系统,NEG:取补指令 格式:NEG OPRD 对操作数OPRD取补 执行:OPRD OPRD+1 例:NEG AL,第二章
23、 指令系统,CMP:比较指令格式:CMP PRD1,OPRD2完成两个操作数相减(OPRD1-OPRD2)结果反映在标志位上并不回送结果。目的操作数可以是寄存器,或内存;源操作数可以是立即数,寄存器或内存。该指令主要用于比较两者之间的关系。,第二章 指令系统,CMP AX,BX 若AX与BX同符号:(AX-BX)则AX-BX不会溢出,用SF判其符号就可判断两数大小。即 SF=0,AXBX,SF=1,AXBX 负-正:负 SF=1,AXBX,第二章 指令系统,若AX-BX溢出 正-负 负 则SF=1 AXBXAXBX 若无溢出(OF=0)SF=1;AXBX,第二章 指令系统,相异符号相减有两种可
24、能 A-B 无溢出:SF=1:AB 正-负 有溢出:SF=1:AB,第二章 指令系统,MUL:无符号数乘法格式:MUL OPRD执行:字节操作 AX AL*(OPRD)字操作 DX,AX AX*(OPRD)OPRD可以是寄存器或内存单元 例 MOV AL,FIRST FIRST MUL SECOND SELIND MOV THIRD,AX THIRD,第二章 指令系统,IMUL:带符号数乘法 同MUL上,但是带符号数 MUL:255*255=65025(1111,1111b)*(1111,1111b)IMUL:(-1)*(-1)=1 例:AL=0B4H BL=11H AL=0B4H=-76D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 微机 最小 系统
链接地址:https://www.31ppt.com/p-5316614.html