首页 8086CPU设计微机最小系统

8086CPU设计微机最小系统

举报
开通vip

8086CPU设计微机最小系统nullnull 第一章8086/8088系统* 工作模式 * 引脚信号null第一章8086/8088系统最小模式和最大模式的概念 为了尽可能适应各种各样的使用场合,在设计8086/8088CPU芯片时,使它们可以在两种模式下工作,即最小模式和最大模式。null第一章8086/8088系统 最小模式 在系统中只有8086或者8088一个处理微器。系统中的所有的总线控制信号都直接由8086或8088产生。因此,系统中的总线控制电路被减到最少。 null第一章808...

8086CPU设计微机最小系统
nullnull 第一章8086/8088系统* 工作模式 * 引脚信号null第一章8086/8088系统最小模式和最大模式的概念 为了尽可能适应各种各样的使用场合,在 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 8086/8088CPU芯片时,使它们可以在两种模式下工作,即最小模式和最大模式。null第一章8086/8088系统 最小模式 在系统中只有8086或者8088一个处理微器。系统中的所有的总线控制信号都直接由8086或8088产生。因此,系统中的总线控制电路被减到最少。 null第一章8086/8088系统 最大模式是相对最小模式而言的 最大模式用于中等规模的或大型的8086/8088系统中。在最大模式系统中,总是包含有两个或多个处理微器,其中一个主处理器就是8086或者8088,其他的处理器称为协处理器,它们是协助主处理器工作的。null第一章8086/8088系统 8086/8088到底工作在最大模式还是最小模式,这完全有硬件决定。 null第一章8086/8088系统8086/8088的引腿信号特点 * 8086/8088的数据线和地址是复用的 * 除了第28腿和第34腿以外,8086和 8088的控制线引腿定义是一样的。 null第一章8086/8088系统 第21腿(RESET)是输入复位信号的。在8086/8088系统中,CPU被启动后,处理器的标志寄存器,指令指针寄存器IP,段寄存器DS,SS,ES和指令队都被清除,但是代码段寄存器CS被设置为FFFFH。null第一章8086/8088系统 因为IP=0000,CS=FFFFH。所以,8086/8088将从地址FFFF0H开始执行指令。通常,在安排内存区域时,将高地址区作为只读存储区,且在FFFF0H单元开始的几个单元中放一条无条件转移指令,转到一个特定的程序中。这个程序往往实现系统初始化,引导监控程序或者引导操作系统等功能,这样的程序叫引导和装配程序。null第一章8086/8088系统 第22引腿用于从内存或I/O接口往CPU输入“准备好”(READY)信号 第23腿(TEST)是在多处理器系统中使用的。 null第一章8086/8088系统 A19/S6~A16/S3:该高4位地址线和状态线复用。在总线周期的前一部分时间,A19/S6~A16/S3腿用来输出高4位地址,在总线周期的其余部分时间,则用来输出状态信息。 null第二章 指令系统直接寻址:所需的操作数通过指令直接提供的偏移地址来得到。 MOV AX,[2000H] 偏移地址:2000H 段地址:(隐含DS) (DS)=3000H 2000H + 30000H 物理地址:32000H 结果:(AH)=3050H OP AX 50 00 3032000H数 据 段 代码 段 null 寄存器间接寻址 操作数在存储器中的地址在(SI,DI,BP, BX)中。 (1)若以SI,DI,BX间接寻址,操作数在现行数据段中 例:MOV AX,[SI ] 1000H 20000H SI + DS 物理地址:21000H 21 43 21000HAX 21 43 F—F 0—0 null第二章 指令系统(2)若以寄存器BP间接寻址,则操作数在堆栈段中。 例:MOV AX,[BP] 3000H 20000H BP + SS 物理地址:23000H 23000HAX 21 4321 43 null第二章 指令系统(3)若指令中规定是段超越的,也可以寻访其他段。 MOV AX,ES:[BX] null第二章 指令系统直接变址寻址 寄存器相对寻址 由指定的寄存器内容,加上指令中给定的8位或16位偏移量(当然有一个段寄存器作基本地址)作为操作数地址。 例 null第二章 指令系统例:MOV AX,count[SI] 例:MOV AX,[BP] 2000H 30000H SI Count 35000H count (AX)=4525H +DS 45 2545 25 3000H AX 0030OP null第二章 指令系统变址地址也可以使段跨越前缀。 MOV DL,ES:STRING[SI] 正常情况下,SI,DI,BX作变址,与DS联用。 若用BP变址,与DS联用。 null第二章 指令系统 基址变址寻址 操作数的偏移地址是一个基址寄存器(BX,BP)和一个变址寄存器的内容之和。(SI,DI) 基址寄存器=BX;段寄存器是DS 隐含 基址寄存器=BP;段寄存器是SS 例 null第二章 指令系统 该寻址方式同样可以段超越使用 MOV AX,ES:[BX][SI]0158H 10A5H BX + DS 221FDH DI 21000H AX 214521 45 MOV AX,[BX][DI] DS =2100H;BX =0158H; DI=10A5H null第二章 指令系统 操作数偏移地址由一个基址寄存器、一个变址寄存器的内容和8位或16位位移量之和构成。 例:MOV AX,MASK[BX][SI] 1000H 2000H SI BX 33250H 33 44 3344 AX 30000H (MASK) DS 0250H 该地址也可以段超越。 null第二章 指令系统 寻找一个操作数,只能在某一个段的64KB范围中寻找。已什么寄存器间址、变址等,则操作数就在什么段域中,8086/8088有约定,只要不在指令中超越这个约定,就按平常状态来寻找操作数。 null第二章 指令系统null第二章 指令系统(1)操作码(OP)的机器语言 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示(3)指令的执行时间 (2)寻址方式的机器语言表示 null第二章 指令系统 8086/8088指令是多字节指令,一条指令可由1~7个字节构成,操作码通常是第一字节表示。 OP d w 0 7 0 字节操作 0 源操作数 W= d= (双操作数指令) 1 字操作 1 目的操作数 说明:Ret的用途。 null第二章 指令系统 若采用立即寻址:操作码: OP s w 0 7 sw = 01 指令有16位立即数,而且作字操作 11 指令有8位立即数 00 字节操作 null第二章 指令系统机器指令的第二个字节用于表明寻址方式 Mod Reg R/m 2 65 32 0 Reg表示寄存器方式,双操作数指令规定必须有一个操作数在寄存器中,该寄存器由reg决定。Mod与r/m结合在一起确定另一操作数的寻址方式。 null第二章 指令系统若无段超越,则使用隐含段寄存器,若指定段前缀,则在机器指令之前的一个字节来表示。 001 SEG 110 7 0 标志 例 null第二章 指令系统 ADD CL,BH 000 000 1 0 02H d: reg为目的操作数 11 001 111 CFH mod ret r/w 与w=0   寄存器寻址 CL BH CF02高 低 OPW:字节null第二章 指令系统 ADD DISP [BX][DI],DX 000000 0 1 w:字运算 OP d:reg为源操作数 10 010 001 01000101 00100011 mod ret r/m DISP 相对基址变址寻址 DX null第二章 指令系统 指令执行时间 f=5MHz T= 1/5MHz=0.2µs ADD AX,BX 寄存器——寄存器方式 T=3*0.2=0.6(µs) ADD AX, DISP[BX][DI] 存储器——寄存器方式 T=(9+EA)*0.2 =(9+12)*0.2=4.2(µs) null第二章 指令系统 指令系统可以分为6组数据传送指令 逻辑运算控制转移处理机控制串操作算术指令null第二章 指令系统 1、通用数据传送指令: MOV; PUSH; POP; XCHG 3、地址传送指令: LEA ; LDS; LES 4、寄存器传送指令: LAHF; SAHF; PUSHF ; POPF (标志入AH) (AH入标志) (标志入栈) (标志出栈 ) 2、累加器专用传递指令: IN, OUT, XLAT 这组指令只限于累加器AX,AL。 null第二章 指令系统 MOV传送指令: MOV OPRD1,OPRD2 目的 源 CPU内部寄存器之间数据传送(除CS,IP外) MOV AL,BL MOV AX,BX MOV DS,BX null第二章 指令系统立即数传送至CPU内部的通用寄存器(段寄存器除外) AX,BX,CX,DX,BP,SP,SI,DI MOV CL,4 MOV AX,03FFH MOV SI,057BH null第二章 指令系统CPU内部寄存器(除CS,IP) 与存储器(所有寻址方式)之间 的数据传送 MOV AX,[SI] MOV AL,VFFER MOV AX,PP[BX][SI] null第二章 指令系统MOV指令不能实现存储单元之 间的数据传递,但可通过CPU内 部寄存器为桥梁来实现 MOV AL,ARER1 MOV ARER2,AL null第二章 指令系统二个段寄存器之间不允许直接传递信息 null第二章 指令系统 PUSH 进栈指令   堆栈是以“先进后出”方式工作的一个存储区,它在堆栈段中。其段地址在SS中。只有一个出口,偏移地址在SP之中,SP在任何时候都指向栈顶。 null第二章 指令系统 PUSH AX SP SP - 2 (SP+1) AH (SP) AL 堆栈的存取以字为单位, 可以使用除立即数以外的 其他寻址方式来保存程序区 或寄存器的内容。 低 高 高 低 AH AL 后 前 SP SPnull第二章 指令系统 POP 出栈指令 将压入堆栈的数据弹出。 例:POP AX AL (SP) AH (SP+1) SP SP+2 AL 07 AH 21 (AX)=2107 2107后 前 SP 两条指令均不影响标位。这两条指令主要用于数据保护。 POP SP null第二章 指令系统 XCHG:交换指令 XCHG OPR1,OPR2 把一个字节或字的源操作数与目的操作数相 交换,交换可在通用寄存器之间,通用寄存 器与存储器之间。但段寄存器除外。 XCHG AL,CL XCHG BX,DATA[SI] XCHG BX,[BP+SI] null第二章 指令系统IN 输入指令: CPU I/O DB CB AB 输入指令允许把 一个字节或一个 字由输入端口传 送至AL或AX。由 于8086可供64K 的I/O端口空间, 所以可有65536个I/O端口,前256个端口(0~FFH)可以在指令中指定;端口号超过256个,则将端口地址放在OX,再用输入指 令输入数据。 例 null第二章 指令系统 IN AX,28H IN AL,29H 端口号大于256: MOV DX,3FCH IN Ax,DX 输入数据是字还是字节,取决于外设DB宽度。 null第二章 指令系统 OUT: 输出指令 输出指令允许把AL或AX中的一个字节或一个字内容传送至输出端口 OUT 14H,AL 端口号大于256: MOV DX,0714H OUT DX,AX null第二章 指令系统 XLAT:换码指令 用于将一种代码转换为另一种代码。用指令之前,先将表的首地址放入BX中,在AL中置好偏移量(即所需换码字节在表中的相对位置),然后XLAT指令将(BX)内容加上AL中的内容形成的偏移地址的单元内容取到AL中。 格式:XLAT 或 XLAT 执行操作:AL (BX+AL) 例 null第二章 指令系统 MOV BX,OFFSET TAB MOV AL,1 XLAT ‘B‘ …… ‘C‘ ‘A‘ BXTAB’A‘ALBX+ALnull第二章 指令系统 LEA: 有效地址送寄存器 格式: LEA OPRD1,OPRD2 将源操作数OPRD2的偏移地址送到目的操作数OPRD1。 源操作数必须是存储器,目的操作数是一个16为通用寄存器。 例 null第二章 指令系统 LEA BX,BUFR 将变量BUFR的偏移地址给BX BX 23E0BUFRnull第二章 指令系统 LEA BX,[BX+SI] 若 BX = 0400H, SI = 003CH 偏移地址 =0400+003C =043CH BX 043Cnull第二章 指令系统 LDS: 地址指针送寄存器和DS指令 格式:LFD OPRD1,OPRD2 指令将源操作数OPRD2所指定存储区的4个相继字节送到指令指定的寄存器及DS寄存器中。该指令常指定SI。 例 null第二章 指令系统 LDS SI,[BX] 执行前:BX=10H; DS=C000H; (C0010H)=0180H (C0012H)=2000H 执行前后: (SI)=0180,(DS)=2000H c0011H c0010H 80 00 20 01 c0012H c0013H S ID IBXDS+C0010Hnull第二章 指令系统 LES : 地址指令送寄存器和ES指令 格式 LES OPRD1,OPRD2 将源操作数OPRD2指定存储器4个相继字节送到指令指定的寄存器及ES中。该指令常指定寄存器DI。 例 null第二章 指令系统 LES DI,[BX] 执行前: DS=B000H,BX=080AH, (0B080A)=080AH (0B080CH)=4000H 执行后:DI =080AH,ES= 4000H 0B080AH DIOA 00 40 ES08 0B080BH 0B080CH 0B080DH 上述三种寻址包括所有寻方式。 null第二章 指令系统 LAHF : PSW送AH指令 格式:LAHF 执行:AH PSW低字节 (进位)(奇偶)(半进位)(零)(符号) CF PF AF IF SF null第二章 指令系统 SAHF:AH送PSW 执行:PSW低字节 AH null第二章 指令系统 PUSHF:标志进栈 格式:PUSHF 执行:SP SP-2 PSW (SP+1,SP) 低 高 PSWH SP PSWL null第二章 指令系统 POPF:标志出栈 执行:PSW (SP+1,SP) SP SP+2 低 高 PSWH PSWL SPnull第二章 指令系统2、减法指令:SUB SBB DEC NEG CMP 1、加法指令:ADD ADC INC 4.除法指令: DIV IDIV CBW CWD 3、乘法指令: MUL IMUL 5、十进制调整指令null第二章 指令系统 格式:ADD OPRD1,OPRD2 OPRD1 OPRD1+OPRD2 目的操作数OPRD1可以是AX,任一通用寄存器,存储器。源操作数OPRD2可以是AX任一通用寄存器,存储器,立即数。 ADD AL,30H ADD AX,SI ADD BETA[SI],AX ADD DI,CX 这些指令将对标志产生不同的影响。 null第二章 指令系统 ADC带进位加法 格式:ADC OPRD1,OPRD2 执行:OPRD1 OPRD2+OPRD1+CF 该指令多用多字节运算 null第二章 指令系统低 高 56 THORD 87 21 43 54 86 10 32 AA ID 75 32 SECOND FIRST 两个四字节数加,分别放在FLRST和SECOND起始之单元,存放时低字节在地址处。 MOV AX,FIRST; (AX)=8756H ADD AX,DECOND; (AX)=8756+8654 MOV THIRD,AX; =1DAAH CF=1 MOV AX,FIRST+2 (AX)=4321H ADC AX,SECOND+2 (AX)=4321+3210+CF MOV THIRD+2 =7532H null第二章 指令系统 INC:加1 指令 格式:INC OPRD 该指令的操作数OPRD可以是通过寄存器,也可以是存储器单元。 执行:OPRD OPRD+1 INC AX; AX=AX+1null第二章 指令系统 注意 执行加法指令时,CF位是根据最高有效位是否有进位而设置。有进位CF=1,无进位CF=0。 OF根据符号及其变化情况而设置。若两个操作数符号相同,结果的符号与之相反,则溢出OF=1null第二章 指令系统 SUB:减法指令 格式:SUB OPRD1,OPRD2 操作:OPRD1=OPRD1-OPRD2 目的操作数OPRD1可以是AX,通用寄存器,存储器单元, 源操作数OPRD2可以是立即数,通用寄存器,存储器单元。 null第二章 指令系统 例 SUB CX,BX; CX=CX-BX SUB [BX],CL; [BX]=[BX]-CLnull第二章 指令系统 SBB OPRD1,OPRD2 格式:SBB OPRD1,OPRD2 操作:OPRD1=OPRD1-OPRD2-CF 用于多字节数相减。 null第二章 指令系统 DEC:减指令 格式:DEC OPRD 执行:OPRD OPRD-1 DEC CX; CX=CX-1 null第二章 指令系统 NEG:取补指令 格式:NEG OPRD 对操作数OPRD取补 执行:OPRD OPRD+1 例:NEG ALnull第二章 指令系统 CMP:比较指令 格式:CMP PRD1,OPRD2 完成两个操作数相减 (OPRD1-OPRD2) 结果反映在标志位上并不回送结果。目的操作数可以是寄存器,或内存;源操作数可以是立即数,寄存器或内存。该指令主要用于比较两者之间的关系。 null第二章 指令系统 CMP AX,BX 若AX与BX同符号:(AX-BX) 则AX-BX不会溢出,用SF判其符号就可判断两数大小。即 SF=0,AX>BX,SF=1,AXBX 负-正:负 SF=1 , AXBX AXBX 若无溢出(OF=0) SF=1;AXBX null第二章 指令系统相异符号相减有两种可能 A- B 无溢出:SF=1:AB 正-负 有溢出:SF=1:A>B null第二章 指令系统 MUL:无符号数乘法 格式:MUL OPRD 执行:字节操作 AX AL*(OPRD) 字操作 DX,AX AX*(OPRD) OPRD可以是寄存器或内存单元 例 MOV AL,FIRST FIRST MUL SECOND SELIND MOV THIRD,AX THIRD null第二章 指令系统 IMUL:带符号数乘法 同MUL上,但是带符号数 MUL:255*255=65025 (1111,1111b)*(1111,1111b) IMUL:(-1)*(-1)=1 例:AL= 0B4H BL =11H AL = 0B4H =-76D IMUL BL -1292D BL = 11H = 17D AL = 180D MUL BL 3060D BL = 17D null第二章 指令系统 DIV:无符号数除法 格式:DIV OPRD 执行:字节操作: AL [ AX /(OPRD)] 的商 OPRD为8位 AH [ AX /(OPRD)]的余数 字操作: AX (DX,AX)/(OPRD)的商 DX      (DX,AX)/(OPRD)的余数 商、余数均为无符号数;OPRD为寄存器 或内存单元。 null第二章 指令系统 IDIV:带符号除法 同上,商、余数等为有符号数。 null第二章 指令系统 CBW 扩展存储器AL中的字节符号, 把它送至AH中 AL < 80H,则扩展后AH 0 AL > 80H,则扩展后AH 0FFH 目的:在两个字节操作数相除时,产生一个字的被除数。 null第二章 指令系统 CWD:将AX的符号扩展到DX中 AX < 8000H,则 DX 0 AX > =8000H,则 DX FFFFH 目的:在两个字操作数相除时,产生一个字节的被除数。 null第二章 指令系统例:有一内存BUFFER,前两个字节是16位带符号被除数,三、四字节是16位带符号除数,再下两个字节放商,再下两个字节放余数。BUFFER 被除数 除数 余数 商 null第二章 指令系统 LEA BX,BUIFFER; BUFFER的偏址 BX MOV AX,[BX]; 被除数 AX CWD ; 扩展为(DX,AX) IDIV 2[BX]; (AX) 商 (DX) 余数 MOV 4[BX], AX MOV 6[BX],DX null第二章 指令系统 BCD码的概念 压缩的BCD码:四位一个数,连续排列。 非压缩的BCD码:ASCII码的数字码,低四位为BCD码,高四位为0011无意义。 (一)压缩的BCD码十进制调整 DAA, DAS (二)非压缩的BCD码调整 AAA, AAS, AAM, AAD null第二章 指令系统 DAA 加法十进制调整指令 作用:紧跟加法指令之后,校正作用 若(AL&0FH)>9,或AF=1,则AL AL+6, AF 1; 若(AL&F0H)>9,或CF=1,则AL L+6,AF 1。 ①原来16进制是满16进位, ②十进制为满10进位, ③所以到进行用16进制进行 10进制调整时为+6 * * * 9 + * * * null第二章 指令系统例:ADD AL,BL 97 +96 193 1001 0111 +1001 0110 0010 1101 D 110 110 6 1001 0011 1CF=1 null第二章 指令系统 DAS 减法的十进制 执行:AL AL中的差调整到压缩的BCD格式 (低四位) 若(AL&OFH)>9, 或AF=1,则AL AL-6 (高四位) 若(AL&F0H)>90H, 或CF=1,则AL AL-60H null第二章 指令系统  AAA:加法的ASCII调整 (AL) AL调整 (AH) (AH)+调整进位值 执行 1)若AL低四位在0~9之间,AF=0 执行(3)2)若AL低四位在0~FH之间,AF=1, 则AL 寄存器加6,AH寄存器加1,AF加1。 3)清除AL高四位 4)AF位的结果送CF位。 null第二章 指令系统 AAS:减法的ASCII调整 AL 把AL中的差调整到非压缩的BCD格式 AH AH - 调整产生的借位值 null第二章 指令系统 AAM:乘法的ASCII调整 校正作用:AH AL被OA除的商 AL AL被OA除的除数 MUL AL,BL AAM (AL)=07H,(BL)=09H 执行MUL:(AL)=3FH=63 执行AAM:(AH)=06H,(AL)=03H 前面都是对运算结果进行十进制调整。 6 AH 10 63 60 3 ALnull第二章 指令系统 AAD:除法的ASCII调整: AX存放二位非压缩BCD数,即AH为十位数,AL为个位数。 AL 10*(AH)+(AL) AH 0 作用: 相除之前将AX中的被除数用AAD调整为二进制数。并存放于AL中。 null第二章 指令系统逻辑运算指令 AND,OR,NOT,XOR,TEST 这几条指令:①NOT不允许使用立即数,其余 指令的OPRD2为立即数 ②至少有一个操作数存放在Reg中, 另一个则可为任意寻址方式。 移位指令 SHL,SAL,SHR,SAR,ROL,ROR,RCL,RCR null第二章 指令系统 AND:与 AND OPTD1,OPRD2 执行:OPRD1 OPRD1^ OPRD2 null第二章 指令系统 OR:或 OR OPRD1,OPRD2 执行:OPRD1 OPRD1 v OPRD2 null第二章 指令系统 NOT:非 NOT OPRD 执行:OPRD OPRD null第二章 指令系统 XOR:异或指令 XOR OPRD1,OPRD2 执行:OPRD1 OPRD1 OPRD2 null第二章 指令系统 TEST:测试指令 TEST OPRD1,OPRD2 执行:OPRD1 ^ OPRD2 操作数相与,不保留结果,只影响标志位。null第二章 指令系统 SHL:逻辑左移指令 格式:SHL OPRD,m OPRD为除立即数外的任何寻址方式,移位次数由m定,m为1或CL。m为1时只移一位,大于1时,移位次数应置于CL中。 例 null第二章 指令系统 SHL AX,1 或 SHL AX,CL CF 7 0 0 null第二章 指令系统 SAL:算术左移指令 同SHL。在移位次数为1时,移位后,bit7与CF不同,则表明溢出,故OF=1,否则OF=0。该指令用于有符号乘法。 CF 7 0 null第二章 指令系统 SHR:逻辑右移 格式:SHR OPRD,m 7 0 CF0 null第二章 指令系统 SAR:算术右移 7 0 CF该指令用于有符号除法 null第二章 指令系统 ROL:循环左移指令 格式:ROL OPRD,m CF 7 0CF 15 08位16位null第二章 指令系统 ROR:循环右移指令 7 0 CFnull第二章 指令系统RCL:带进位循环左移指令 CF 7 0null第二章 指令系统 RCR:带进位循环右移指令 7 0 CFnull第二章 指令系统 串处理指令 MOVS;CMPS;SCAS;LODS;STOS 与上述指令配合使用的前缀有: REP;REPE/REPZ;REPNE/REPNZ 1、与REP配合使用的MOVS,STOS, LODS指令 2、与REPE/REPZ和REPNE/REPNZ联合 工作的CMPS和SCAS指令 null REP:重复串操作到(CX)=0为止 执行步骤: CX=0 ? CX=CX-1执行串处理指令MOVS,STOS, LODS退出REP Y Nnull第二章 指令系统 MOVS 串传送指令 格式 MOVS OPRD1,OPRD2 应标示字或字节 可以简化为 MOVSB (字节传送) MOVSW (字传送) 标准格式 MOVS ES:BYTE PTR[DI],DS:[SI]。 null第二章 指令系统MOVS执行操作步骤: (DI) (SI) DF=0 ?(SI)=(SI)-1/2 (DI)=(DI)-1/2(SI)=(SI)+1/2 (DI)=(DI)+1/2 Y N DF决定了串传送 的方向,可有以 下二条指令确定 CLD:使DF=0 STD:使DF=1 null第二章 指令系统 例 MOV SI,OFFSET SOURSE MOV DI,OFFSET DEST MOV CX,100 CLR REP MOVSB 在此处源串在数据段中(也允许段 超越),但目的串必须在附加段中。 null第二章 指令系统       STOS 存串指令 格式:STOS OPRD (目的) STOSB (字节) STOSW (字) 执行: (DI) AL, DI DI±1 (DI) AX, DI DI±2 将AL或AX的内容存入(DI)指定的 附加段单元中。 null第二章 指令系统 例 MOV DI,0500H MOV AL,20H MOV CX,5 CLD REP STOSB 执行情况null第二章 指令系统CX=0 CX -1 CX(DI) AL DI +1 DIDF=0N Y 退出 YN DI -1 DInull第二章 指令系统   LODS 取串指令: 格式:LODS OPRD LODSB(字节) LODSW(字) 执行: 字节 AL (SI), SI SI±1 字 AX (SI), SI SI ±2 将SI指定的数据段单元内容(允许段超越)送入AL,AX。一般不将该指令与REP联用。 null第二章 指令系统 REPE/REPZ 当相等/为零时重复串操作 CX/ZF =0 CX = CX -1重复串指令 N Y 退出 null第二章 指令系统 与REP相比,实际上REPE和REPZ相同,只是除满足CX=0结束外,还增加了一个ZF=0退出的条件。 null第二章 指令系统 REPNE/REPNZ 当不相等/不为零时重 复串操作。退出条件与上面相反。 即CX=0,ZF=1退出 null第二章 指令系统 CMPS 串比较指令 格式: CMPS OPRD1,OPRD2 CMPSB(字节) CMPSW(字) 执行:(SI) — (DI) 字节 SI=SI±1,DI=DI±1 字 SI=SI±2,DI=DI±2 SI 指向的数据段单元内容与 DI 指 向的附加段相减,但不保留结果,只影响 条件码。 null第二章 指令系统 SCAS 串扫描指令 格式:SCAS OPRD SCASB SCASW 执行: AL - (DI) DI DI±1 AX - (DI) DI DI±2 指令把AL(AX)的内容与(DI)指向的附 加段单元内容相减,但不保留结果,只影响条件码。 null第二章 指令系统ITSIAITSSBSTING1 STRING2 例: MOV SI,OFFSET STING1 MOV DI,OFFSET STING2 MOV CX, 7 H CLD REPZ CMPSB JNZ UNMAT MOV AL,0 JMP OUTPUT UNMAT:MOV AL,0FFH OUTPUT :…...null第二章 指令系统 控制转移指令 5、中断 4、子程序指令 3、循环指令 2、条件转移 1、无条件转移指令 null第二章 指令系统 无条件转移指令 作用:转移到指令的地址去执行从该地址开始的指令。分段内和段间转移两种。前者只须改变IP,而后者不仅要改变IP,还要改变CS。 3)段内直接转移 1)段内直接短转移 2)段内直接近转移 5)段间间接转移 4)段间直接转移 null第二章 指令系统 段内直接短转移 格式: JMP SHORT OPRD 执行:(IP) (IP)+8位偏移量 其中OPRD在汇编格式中可以直接使用符号地址,但机器执行时是IP+8位偏移量来做的。由于可以前后跳转,所以允许在-128~127字节范围内转移。 null第二章 指令系统例:           JMP SHORT HELL  . . . HELL:MOV AL,3 代码段 JMP MOV E8 08 B0 08 0100H 0101H 010AH 010BH 0102H null第二章 指令系统 段内直接近转移 格式:JMP NEAR PTR OPR 执行:IP IP+16位偏移量 OPR为地址符号null第二章 指令系统 段内直接转移 格式:JMP WORD PTR OPRD 执行: IP (EA) 有效地址EA由OPRD的寻址方式确定,可以是除立即数以外的任何寻址方式。 JMP BX 执行: IP BX null第二章 指令系统 段间直接转移 格式:TMP FAR PTR OPRD 执行:IP OPRD的段内偏移地址 CS OPRD所在的段地址。 汇编格式中OPRD可使用地址符号。 JMP FAR PTR NEXT . . . NEXT :INC CXnull第二章 指令系统 段间间接转移 格式:JMP DWORD PTR OPRD 执行: IP (EA) CS (EA+2) (EA)由OPRD的寻址方式决定,可以是除立即数及寄存器方式以外的所有寻址方式。 例:JMP DWORD PTR ALPHA[SP][DI] null第二章 指令系统1)根据单个条件标志的设置情况转 移 4) 测试CX的值为0则转移指令 3)用于有符号数的条件转移指令:2)用于无符号数的条件转移。 null第二章 指令系统 根据单个条件标志的设置情况转移 l JZ(或JE) OPRD OPRD结果为0(或相等)则转移 测试:ZF=1 l   JC/JNC OPRD: 根据CF转移,JC是当CF=1转移, JNC是当CF=0转移。 null第二章 指令系统 l  JE/JZ或JNE/JNZ OPRD: (相等转移/等于0转移) 一条指令的两种助记符。 JE/JZ是当ZF=1时转移。 JNE/JNZ当ZF=0时转移。 l   JS/JNS OPRD: JS是当SF=1,为负则转移, JNS是当SF=0转移。 null第二章 指令系统 l   JO/JNO OPRD: JO是当OF=1,溢出则转移。 JNO是当OF=0,不溢出则转移。 l   JP/JPE或JNP/JPO OPRD: JP/JPE (偶转移)当PF=1时转移 JNP/JPO(奇转移)当PF=0时转移 其中OPRD是汇编指令中的地址符号。 例: CMP CX,DX JE LAB2 ;CX=DX转至LAB2 JNC NEXT LAB2: MOV AX,0 null用于无符号数的条件转移: lJA/JNBE OPRD: 是当CF=0,ZF=0时转移。 用无符号数a,b比较时, a>b时则转移。 l  JAE/JNB OPRD: 当CF=0或ZF=1时转移 。无符号数a,b 比较, a≥b则转移 l  JBE/JNA OPRD: 当CF=1或ZF=1时转移。无符号数a,b比较, a≤b则转移 l JB/JNAE OPERD: 当CF=1,ZF=0时转移,a《 b则转移 null第二章 指令系统 用于有符号数的条件转移指令: l JG/JNLE: 当SF与OF同号, 且ZF=0时转移 有符号数a,b比较:a>b则转移 SF=0 A>B (OF=0) SF=1 AB null第二章 指令系统 l JGE/JNL OPRD: 当SF与OF同号,且ZF=1时转移 a≥b 转移 l JL/JNGE OPRD: SF与OF异号,且ZF=0时转移 a
本文档为【8086CPU设计微机最小系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_731013
暂无简介~
格式:ppt
大小:1013KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2010-05-30
浏览量:51