微机原理 8086指令系统

上传人:gb****c 文档编号:243358981 上传时间:2024-09-21 格式:PPT 页数:28 大小:1.04MB
返回 下载 相关 举报
微机原理 8086指令系统_第1页
第1页 / 共28页
微机原理 8086指令系统_第2页
第2页 / 共28页
微机原理 8086指令系统_第3页
第3页 / 共28页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,自动化科学与电气工程学院,*,*,微机原理,第3章,8086/8088,微处理器及其系统,1. 8086/8088微处理器结构,微处理器功能结构,寄存器结构(编程结构),2. 8086/8088存储器组织,3. 8086/8088工作方式,时序和引脚信号,最大和最小模式,4. 8086/8088寻址方式,5. 8086/8088指令系统,9/21/2024,1,第3章,8086/8088,微处理器及其系统,92种基本指令,全部公开,,六个功能组(六大类),一、数据传送(Data transfer),二、算术运算(Arithmetic),三、逻辑运算和移位指令(Logic & Shift),四、串操作(String manipulation),五、控制转移(Control Transfer),六、处理器控制(Processor Control),9/21/2024,2,第3章,8086/8088,微处理器及其系统,8086/8088指令一览表,逻辑移位/串处理,指令类型,助记符,逻辑移位,逻辑运算,AND, TEST, OR, XOR, NOT,移位运算,SHL, SAL, SHR, SAR,循环移位,ROL, ROR, RCL, RCR,串处理,串操作,MOVS, CMPS,SCAS, LODS,STOS,重复控制,REP, REPE/REPZ, REPNE/REPNZ,9/21/2024,3,5. 8086/8088指令系统,三、逻辑运算和移位指令(Logic & Shift),逻辑运算指令格式,逻辑与,AND D, S,; DESTSRCDEST,逻辑或,OR D, S,; DEST SRC DEST,异 或,XOR D, S,; DEST SRC DEST,逻辑非,NOT D,; DEST DEST,TEST,TEST D,S,; DEST SRC,1.两个操作数要满足类型组合:D (R或M), S(R/M/N),2.TEST不改变目标操作数内容, 其后常紧跟条件转移指令以实现判断分支, AND将运算结果送目标操作数,3.逻辑操作按位进行,9/21/2024,4,5. 8086/8088指令系统,三、逻辑运算和移位指令(Logic & Shift),逻辑运算指令应用,AND指令通常用于将操作数的某些位清0,AND AL,0FCH,;AL的低2位清0,其余保持不变,TEST指令常用于“取出”操作数的某一位来进行判断,TEST AL,20H,;取AL的D,5,位,OR指令通常用于将操作数的某些位置1,OR AL,80H,;AL的D,7,位置1, 其余位保持不变,XOR指令通常用于将操作数的某些位取反,XOR AL,0FH,;AL的低4位取反,高4位保持不变,NOT指令按位取反,MOV BX,8A51H,; (1000 1010 0101 0001),NOT BX,; BX=75AEH (0111 0101 1010 1110),Lets do it!,9/21/2024,5,5. 8086/8088指令系统,三、逻辑运算和移位指令(Logic & Shift),移位指令,格式:,SAL/SAR/SHL/SHR OPRD,1 ;移1位,SAL/SAR/SHL/SHR OPRD,CL ;移CL次,why?,9/21/2024,6,5. 8086/8088指令系统,三、逻辑运算和移位指令(Logic & Shift),循环移位指令,格式:,ROL/ROR/RCL/RCR 操作数,1;移1位,ROL/ROR/RCL/RCR 操作数,CL;移位CL次,9/21/2024,7,5. 8086/8088指令系统,三、逻辑运算和移位指令(Logic & Shift),小结,AND、TEST、OR、XOR,指令对标志位的影响:固定使,C,F,=O,F,=0,;根据运算结果改变,S,F,、Z,F,、P,F,。,NOT,指令形式上只有一个操作数;不影响任何标志位。,SAL、SAR、SHL、SHR,指令的使用方法相同,对标志位的影响也相同:移出位给,C,F,;根据结果改变,S,F,、Z,F,、P,F,;当移位次数为1时,影响,O,F,。,ROL、ROR、RCL、RCR,的使用方法相同,对标志位的影响相同:移出位给,C,F,;当移位次数为1时,影响,O,F,。,SHR/SAR,每移1位,可视为分别将无符号数和带符号数除以2;使用,SHL/SAL,每移1位,可视为将数值乘以2。,9/21/2024,8,5. 8086/8088指令系统,思考,将两个非压缩BCD码(高位在BL,低位在AL)合并成压缩BCD码送AL。,MOV CL, 4 ;,将计数值送CL,SHL BL, CL ;,将高位移到BL的高4位,AND AL, 0FH ;,清零AL高4位,OR AL, BL ;,合并AL和BL形成压缩BCD码,分析下面的程序段所实现的功能(可以用别的指令实现吗),SHL AL,1,; 将AL中数左移1位,得2X,MOVBL,AL,; 2X保存在BL中,MOVCL,2,; 移位次数置入CL中,SHL AL,CL,; 2X左移2位,得8X,ADD AL,BL,; 2X加上8X,所以AL中为10X,Lets do it!,9/21/2024,9,5. 8086/8088指令系统,四、串操作(String manipulation),串,内存中一段地址连续的字节或字存储单元。通常用于存放同一类数据。,数据源:源串,;,数据结果:目的串,。,串操作,对串中各项进行操作(,传送、比较、检索、装入、存储,),也叫数据块操作。串操作指令是86/88实现内存之间数据传送的一组指令。,串操作重复前缀,加在,串操作指令之前,,根据不同条件判断是否重复执行串操作。可以实现对整个串的同一种操作。,9/21/2024,10,5. 8086/8088指令系统,四、串操作(String manipulation),在同一个段内实现字符串传送时,应该设置,DS,和,ES,为同一数值,仍由,SI,和,DI,分别指出源串操作数和目的操作数的偏移地址。,串操作指令是唯一的一组源操作数和目的操作数都在存储单元的指令。,方向标志,DF,决定指针的修改方向, DF =0,,指针加;,DF =1,,指针减。串元素的类型决定修改量,字节串,指针加减,1,;字串,指针加,/,减,2,。,加有重复前缀时,固定使用,CX,计录并修改重复次数,再根据,CX,值及标志位,ZF,判断是否重复进行串操作。前缀本身不影响任何标志位。,DS:SI默认的源串指针,可段超越,ES:DI固定的目标串指针,不允许段超越,DF,CX,9/21/2024,11,5. 8086/8088指令系统,四、串操作(String manipulation),串传送 MOVS(Move string),MOVS D,S,;(ES):(DI)(DS):(SI),MOVSB (字节),;(SI)(SI)1,(DI)(DI)1,MOVSW (字),;(SI)(SI)2,(DI)(DI)2,REP,CLD, DF=0, SI/DI增加; STD, DF=1, SI/DI递减,MOV单指令不能完成存储单元之间的数据传送;,MOVS指令就是为解决 存储单元之间数据传送而设置的,MOVSB/MOVSW隐含了源、目的操作数,9/21/2024,12,5. 8086/8088指令系统,思考:重叠串操作,34H,0F2H,1CH,89H,76H,6BH,Lets do it!,SI,DI,STD; 设DF=1,6B,76,89,1C,F2,34,6B,76,89,1C,F2,34,X,X,MOV CX,5 ;串操作次数,MOV SI, 1005,MOV DI, 1007,REP MOVSB,4000H:1000H,4000H:1006H,4000H:1004H,4000H:1005H,4000H:1003H,4000H:1004H,4000H:1002H,4000H:1003H,4000H:1001H,4000H:1000H,4000H:1002H,9/21/2024,13,5. 8086/8088指令系统,四、串操作(String manipulation),CMPS(Compare string ) 串比较指令,CMPS D,S,;(ES),:(,DI),- (,DS):(SI),结果不存,置标志,CMPSB,; (字节) (SI),(SI)1,(DI)(DI) 1,CMPSW,; (字)(SI),(SI)2,(DI),(DI)2,与前缀,REPZ,连用,两数相减,只影响标志,不影响操作数,其它操作规定与MOVS同。,SCAS,(Scan string ),串扫描、搜索指令,SCAS,SCASB,;(字节)(AL) (ES):(DI),(DI),(,DI)1,SCASW,;(字)(AX) (ES):(DI),(DI),(DI)2,与前缀,REPNE,连用,(DI)字符串起始地址,(AL)或(AX) 关键字,两数相减, 只影响标志, 不影响操作数, 其它特性同MOVS,9/21/2024,14,5. 8086/8088指令系统,四、串操作(String manipulation),LODS(Load from string)读串指令,LODS,;(字节)(AL),(DS):(SI), (SI),(SI) 1,;(字) (AX),(DS):(SI),(SI),(SI)2,LODS B,;(字节)(AL),(DS):(SI),(SI),(SI) 1,LODS W,;(字) (AX),(DS):(SI),(SI),(SI)2,STOS(Store into string) 存入串指令,STOS,;(字节) (ES):(DI),(AL) , (DI),(DI) 1,;(字) (ES):(DI),(AX) , (DI),(DI) 2,STOSB,;(字节) (ES):(DI),(AL) , (DI),(DI) 1,STOSW,;(字) (ES):(DI),(AX) , (DI),(DI) 2,与REP联用时,(CX)缓冲区长度。用来建立一串相同的值,初始清零。,9/21/2024,15,5. 8086/8088指令系统,四、串操作(String manipulation),PRACTICE AND PROGRESS,STOSB / LODSB,Store a to 15 memory cells, with start address,ES:DI 3000H:1230H, then load character again.,CMPSB / SCASB,Compare string aaA with aaa, check flag bit CF,Search character a with china, check flag bit CF,Lets debugging !,9/21/2024,16,第3章,8086/8088,微处理器及其系统,8086/8088指令一览表,控制转移,指令类型,助记符,控,制,转,移,无条件转移,JMP,条,件,转,移,JE/JZ, JNE/JNZ, JS, JNS, JO, JNO,JP, JNP, JC, JNC, JCXZ,JA/JNBE, JAE/JNB, JB/JNAE JBE/JNA,JG/JNLE, JGE/JNL, JL/JNGE, JLE/JNG,循环控制,LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ,过程调用,CALL, RET,中断指令,INT,INTO, IRET,处理机控制,CLC, STC, CMC,CLD, STD, CLI, STI,NOP, HLT,WAIT, ESC, LOCK,9/21/2024,17,5. 8086/8088指令系统,五、控制转移指令概述,控制转移指令对,IP,(或,CS:IP,)进行强制性修改,只有一个操作数,通过该操作数给出目标地址新的,IP,(或,CS:IP,),段内转移(,CS不变,IP改变,),( IP)(IP),当前,+ OPR(DISP),短转移(short)相对偏移量为1字节, 取值范围-128 +127,操作数为8位(,正值向后跳转,负值向前跳转),近转移(near)相对偏移量为1个字, 取值范围-32768 +32767, 操作数为16位(,正值向后跳转,负值向前跳转),段间转移(,CS改变,IP改变,),远转移(far)目标地址与正常顺序IP值不在同一个代码段内,9/21/2024,18,5. 8086/8088指令系统,五、控制转移指令-无条件转移JMP,指令格式:,JMP,目标标号(,操作数/目标地址),操作数(目标地址)的给出方式:,段内直接给出:,JMP (NEAR/SHORT) SUM0,(IP)=(IP)+SUM0,段内间接给出:,JMP AX / JMP,WORD PTR,BX,(IP)= (AX) / (IP)=(PA)= (DS)X10H+(BX),段间直接给出:,JMP FAR PTR BRCH / JMP 2101H:1234H,(CS)= BRCH 段地址, (IP)= BARCH 偏移地址,段间间接给出:,JMP,DWORD PTR,DI+1200H,PA=(DS)X10H+(DI)+200H,(IP)=(PA),(PA+1) (CS)=(PA+2), (PA+3),9/21/2024,19,5. 8086/8088指令系统,五、控制转移指令-条件转移,条件转移指令的特点,格式:,指令助记符 目标地址,OPR,(短标号),功能:根据当前,各标志位状态,进行判断,如果满足指令所指定的条件,则转移至目标地址处;否则顺序执行。,转移范围:只有短转移,即相对位移量是一个8位的带符号数(128127)。,寻址方式:,(IP)(IP),当前,+ OPR(D,8,),正值表示向后跳转,负值表示向前跳转,(,条件转移指令为两字节长度,一字节为指令功能码,一字节指令为一个字节的相对跳转地址偏移量),9/21/2024,20,5. 8086/8088指令系统,五、控制转移指令-条件转移,助记符,转移条件,助记符,转移条件,JZ/JE,ZF=1,JNZ/JNE,ZF=0,JS,SF=1,JNS,SF=0,JO,OF=1,JNO,OF=0,JP/JPE,PF=1,JNP/JPO,PF=0,JC,CF=1,JNC,CF=0,助记符,转移条件,JCXZ,CX=0,以单个状态标志作为转移条件,以CX的值为0作为转移条件,9/21/2024,21,5. 8086/8088指令系统,助记符,转移条件,JA/JNBE,CFZF=0高于/,不低于等于,JAE/JNB/JNC,CF=0 高于或等于/,不低于,/无进位,JB/JNAE/JC,CF=1,低于,/不高于等于/有进位,JBE/JNA,CFZF=1,低于或等于,/不高于,助记符,转移条件,JG/JNLE,(SFOF)ZF=0大于/,不小于等于,JGE/JNL,SFOF=0 大于或等于/,不小于,JL/JNGE,SFOF=1,小于,/不大于等于,JLE/JNG,(SFOF)ZF=1,小于或等于,/不大于,以两个带符号数比较的结果作为转移条件,以两个无符号数比较的结果作为转移条件,9/21/2024,22,5. 8086/8088指令系统,五、,控制转移指令-循环控制指令,格式:,LOOP 短标号,功能:根据CX的值和Z,F,标志判断是否转移。,寻址方式:,相对寻址,,只能实现,短转移,。,指令本身不影响Z,F,!,助记符,转移条件,不转移条件,LOOP,CX0,CX=0,LOOPZ,CX0且ZF=1 (相等),CX=0或ZF=0(不等),LOOPNZ,CX0且ZF=0 (不等),CX=0或ZF=1 (相等),9/21/2024,23,5. 8086/8088指令系统,五、,控制转移指令-过程调用,CALL指令执行的操作,格式:,CALL 过程名(即操作数/目标地址),与JMP的不同之处:有对应的返回指令;必须保存断点,执行过程与堆栈有关。,9/21/2024,24,5. 8086/8088指令系统,五、控制转移指令-过程调用过程返回指令RET,格式:,RET,RET,n,功能:从栈顶弹出1个字(段内返回)或2个字(段间返回),作为返回地址(即断点)给IP或CS:IP;,SP相应加2或加4。,指令后跟8位立即数,用以在恢复断点后,在现行SP值上再加此数,以释放相应数目的堆栈空间。,位于被调过程的末尾;,必须与CALL指令成对使用,!,根据对应的CALL指令转移类型,自动确定段内/段间返回。,9/21/2024,25,5. 8086/8088指令系统,五、控制转移指令-中断调用指令,格式:,INT n,; n常数或表达式,n=0255,或:,INT,执行操作:,(SP)(SP)-2, (SP) (PSW),(SP)(SP)-2,(SP) (CS),(SP)(SP)-2, (IP),(IP) (N4),(CS) (N4+2),清除IF、TF,避免进入中断以后不被外面其它中断所打断及进入中断以后按单步执行。,所有中断过程(服务程序)不管是硬还是软,最后一条指令一定是IRET, 并,依次恢复(IP)、(CS)及(PSW),9/21/2024,26,5. 8086/8088指令系统,五、控制转移指令-处理器控制指令,该类指令专门用于处理器的控制,形式上,均不带操作数,。,除了本身对某个标志位进行置/复位操作的指令外,其它指令均,不影响标志位,。,对标志位操作指令,同步控制指令(WAIT,LOCK),其它(HLT,NOP),9/21/2024,27,5. 8086/8088指令系统,五、控制转移指令小结,INT与CALL指令的断点都是,下一条指令的地址,。,INT、IRET、CALL、RET指令本身都不影响任何标志。,中断指令对指令指针,CS:IP的修改,类似于实现段间转移的CALL指令;只是CALL还可以实现段内转移。同样,IRET类似于远返回的RET。,过程调用不保护Flags。因此,INT、IRET指令与栈顶3个字有关,而CALL、RET最多与栈顶2个字有关。,对无符号数和带符号数的大小的比较,应采用不同的条件转移指令,相应根据不同条件进行判断,。,控制转移指令可实现远转移、近转移、短转移。,CALL、RET、JMP指令可实现全部存储空间内的转移;条件转移指令、循环控制指令只能实现短转移;中断指令能够实现远转移。,9/21/2024,28,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!