微机原理及接口2013年度第10次

上传人:M****1 文档编号:578971908 上传时间:2024-08-25 格式:PPT 页数:26 大小:1.41MB
返回 下载 相关 举报
微机原理及接口2013年度第10次_第1页
第1页 / 共26页
微机原理及接口2013年度第10次_第2页
第2页 / 共26页
微机原理及接口2013年度第10次_第3页
第3页 / 共26页
微机原理及接口2013年度第10次_第4页
第4页 / 共26页
微机原理及接口2013年度第10次_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《微机原理及接口2013年度第10次》由会员分享,可在线阅读,更多相关《微机原理及接口2013年度第10次(26页珍藏版)》请在金锄头文库上搜索。

1、微机原理及接口微机原理及接口第二章第二章 微型计算机指令系统微型计算机指令系统 第三节第三节 8086指令系统指令系统数据传送指令数据传送指令算术运算指令算术运算指令逻辑运算和移位指令逻辑运算和移位指令串操作指令串操作指令控制转移指令控制转移指令处理器控制指令处理器控制指令第三节第三节 8086/80888086/8088指令系统指令系统四、串操作指令四、串操作指令 串传送串传送 MOVSB ; (1) (DI) (SI) (2) SI、DI1 MOVSW ; (1) (DI) (SI) (2) SI、DI2串存入串存入 STOSB ; (1) (DI) AL (2) DI1 STOSW ;

2、(1) (DI) AX (2) DI2串装入串装入 LODSB ; (1) AL (SI) (2) SI1 LODSW ; (1) AX (SI) (2) SI2串比较串比较 CMPSB ; (1) (SI) -(DI) (2) SI、DI1 CMPSW ; (1) (SI) -(DI) (2) SI、DI2串扫描串扫描 SCASB ; (1) AL - (DI) (2) DI1 SCASW ; (1) AX - (DI) (2) DI2(一)基本串操作指令(一)基本串操作指令第三节第三节 8086/80888086/8088指令系统指令系统四、串操作指令四、串操作指令(二)串操作指令重复前缀

3、(二)串操作指令重复前缀REP的操作:的操作:若若(CX)=0,则退出循环。,则退出循环。 (CX)(CX)-1 ; 执行执行REP后面的串操作指令一次;后面的串操作指令一次; 重复重复 REPE/REPZ的操作:的操作:若若(CX)=0或(或(ZF)=0,则退出循环。,则退出循环。 (CX)(CX)-1 ; 执行执行REP后面的串操作指令一次;后面的串操作指令一次; 重复重复 REPNE/REPNZ的操作:的操作:若若(CX)=0 或或(ZF)=1 ,则退出循环。,则退出循环。 (CX)(CX)-1 ; 执行执行REP后面的串操作指令一次;后面的串操作指令一次; 重复重复 第三节第三节 80

4、86/80888086/8088指令系统指令系统四、串操作指令四、串操作指令(三)(三)DF置位置位/复位指令复位指令CLD (DF)=0;STD (DF)=11. 源串源串SI对应对应DS段段、可超越;目标串、可超越;目标串DI对应对应ES段段、不可超越;不可超越;3. 每一次操作自动修改地址指针。每一次操作自动修改地址指针。(四)串操作指令说明(四)串操作指令说明4. REP可以与可以与MOVS、STOS指令连用;指令连用;REPZ、REPNE可以与可以与 CMPS、SCAS指令连用。指令连用。2. 执行重复串操作前,应将计数器执行重复串操作前,应将计数器CX中置数。中置数。第三节第三节

5、8086/80888086/8088指令系统指令系统 例例1:比较两个字符串,找出第一个不相等字符的地址。比较两个字符串,找出第一个不相等字符的地址。如两字串完全相同,则转到如两字串完全相同,则转到ALLMATCH进行处理。两字串进行处理。两字串长度均为长度均为20,首地址为,首地址为STRING1和和STRING2。DECSI DEC DIMOV SI , OFFSET STRING1 MOV DI, OFFSET STRING2;取取STRING1的偏移地址的偏移地址;取取STRING2的偏移地址的偏移地址MOV CX, 20;置循环次数置循环次数CLD;置方向置方向REPE CMPSB;

6、若相同重复比较,若不同则退出若相同重复比较,若不同则退出JZALLMATCH;如如ZF=1,则表示完全相同则表示完全相同;恢复第一个不相等字符的原恢复第一个不相等字符的原;地址地址ALLMATCH:第三节第三节 8086/80888086/8088指令系统指令系统 例例2: 将将DS:2000H开始的开始的09的的ASCII码传送到码传送到ES:3000H开始的数据区中开始的数据区中. 例例3: 在在DS:2000H4000H中查找中查找A,找到送至找到送至DL否则否则DL=0.第二章第二章 微型计算机指令系统微型计算机指令系统 第三节第三节 8086指令系统指令系统数据传送指令数据传送指令算

7、术运算指令算术运算指令逻辑运算和移位指令逻辑运算和移位指令串操作指令串操作指令控制转移指令控制转移指令处理器控制指令处理器控制指令第三节第三节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令三、逻辑运算与移位指令三、逻辑运算与移位指令二、算术运算指令二、算术运算指令四、串操作指令四、串操作指令五、控制转移指令五、控制转移指令转移指令转移指令循环控制指令循环控制指令过程调用指令过程调用指令中断指令中断指令(一)转移指令(一)转移指令IP目标地址目标地址1. JMP 无条件转移指令无条件转移指令例:例:JMP QUEST JMP BX JMP WORD PTR

8、 2000H第三节第三节 8086/80888086/8088指令系统指令系统(一)转移指令(一)转移指令转移发生在段内(本代转移发生在段内(本代码段内),称为段内转码段内),称为段内转移,操作数为偏移地址;移,操作数为偏移地址;转移发生在段间(其它转移发生在段间(其它代码段),称为段间转代码段),称为段间转移,操作数为段基址和移,操作数为段基址和偏移地址。偏移地址。1. JMP 无条件转移指令无条件转移指令第三节第三节 8086/80888086/8088指令系统指令系统(一)转移指令(一)转移指令1. JMP 无条件转移指令无条件转移指令1) 段内直接转移段内直接转移转移地址的有效地址是当

9、前转移地址的有效地址是当前IP和和8位或位或16位偏移量(带位偏移量(带符号数)之和。符号数)之和。 若为若为8位的偏移量,转移范围在位的偏移量,转移范围在-128+127之间,称为短转移之间,称为短转移 若为若为16位偏移量,转移范围位偏移量,转移范围在在-32768+32767之间。之间。 第三节第三节 8086/80888086/8088指令系统指令系统(一)转移指令(一)转移指令1. JMP 无条件转移指令无条件转移指令2) 段内间接转移段内间接转移转移地址的有效地址是寄存器的内容或存储单元的内容转移地址的有效地址是寄存器的内容或存储单元的内容(一个字)。(一个字)。 Eg: MOV

10、BX, 2346H JMP BX; IPBX Eg:JMP WORD PTR QUEST; 将将QUEST和和QUEST+1地址单元的内容送至地址单元的内容送至IP。 (IP)(寄存器寄存器) 或或 (IP)(存储器存储器) 第三节第三节 8086/80888086/8088指令系统指令系统(一)转移指令(一)转移指令1. JMP 无条件转移指令无条件转移指令3) 段间直接转移段间直接转移指令中直接给出转移地址的段地址和偏移地址。指令中直接给出转移地址的段地址和偏移地址。Eg:JMP FAR PTR NEXTPORT 转移地址的段地址和偏移地址放在存储器单元中(连续四转移地址的段地址和偏移地址

11、放在存储器单元中(连续四个单元)。个单元)。 4) 段间间接转移段间间接转移Eg:JMP DWORD PTR NEXT (IP) offset 标号;标号;(CS)seg 标号标号(IP) mem32;(CS)mem32+2第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移指令1. JMP 无条件转移指令无条件转移指令2. Jcc 条件转移指令条件转移指令条件转移指令是根据前一条指令的运行结果对某些标志条件转移指令是根据前一条指令的运行结果对某些标志位的状态来决定转移的。有些指令只针对一个标志位的位的状态来决定转移的。有些

12、指令只针对一个标志位的判断来实现转移,有些需对多个标志位的组合判断来实判断来实现转移,有些需对多个标志位的组合判断来实现转移。现转移。条条件件转转移移全全为为短短转转移移指指令令,即即转转移移目目标标与与下下一一条条指指令令之之间间的字节距离在的字节距离在-128+127范围以内。范围以内。(1)条件转移指令与无条件转移指令区别?)条件转移指令与无条件转移指令区别?(2)转移的范围超出)转移的范围超出-128+127怎么办?怎么办?第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移指令1. JMP 无条件转移指令无条件转移

13、指令2. Jcc 条件转移指令条件转移指令条件转移指令条件转移指令J Jcc cc 根据指定的条件确定程序是否发生转移。根据指定的条件确定程序是否发生转移。其通用的格式为:其通用的格式为: Jcc label;条件满足,发生转移,;条件满足,发生转移,IPIP+8位位移量;位位移量; 否则,顺序执行否则,顺序执行l Jcc 不影响标志,但要利用标志。不影响标志,但要利用标志。第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移指令1. JMP 无条件转移指令无条件转移指令2. Jcc 条件转移指令条件转移指令(1)(1)根据

14、一个标志位的转移指令根据一个标志位的转移指令根据根据CFCF、OFOF、SFSF、ZFZF、PF5PF5个标志位两种状态个标志位两种状态可以生成可以生成1010条转移指条转移指令令指令指令转移条转移条件件说明说明JCJCCF=1CF=1有进位转移有进位转移JNCJNCCF=0CF=0无进位转移无进位转移JZ/JEJZ/JEZF=1ZF=1结果为结果为“0”0”转转移移JNZ/JNEJNZ/JNEZF=0ZF=0结果不为结果不为“0”0”转移转移JOJOOF=1OF=1有溢出转移有溢出转移JNOJNOOF=0OF=0无溢出转移无溢出转移JP/JPEJP/JPEPF=1PF=1偶校验转移偶校验转移

15、JNP/JPOJNP/JPOPF=0PF=0奇校验转移奇校验转移JSJSSF=1SF=1结果为负数转结果为负数转移移JNSJNSSF=0SF=0结果不为负数结果不为负数转移转移ADDAX , BX JNOL1 JNC L2 JMPL3第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移指令1. JMP 无条件转移指令无条件转移指令2. Jcc 条件转移指令条件转移指令(2)(2)根据多个标志位的转移指令根据多个标志位的转移指令有符号数分大于(有符号数分大于(Great Great ThanThan)、等于()、等于(Equa

16、lEqual)、小)、小于(于(Less ThanLess Than)3 3种情况;无种情况;无符号数分高于(符号数分高于(AboveAbove)、等)、等于(于(EqualEqual)、低于)、低于(BelowBelow)3 3种情况种情况 数据类型数据类型指令指令说明说明有符号数据有符号数据 JG/JNLE JG/JNLE 大于转移大于转移有符号数据有符号数据 JGE/JNL JGE/JNL 大于等于大于等于转移转移有符号数据有符号数据 JL/JNGE JL/JNGE 小于转移小于转移有符号数据有符号数据 JLE/JNG JLE/JNG 小于等于小于等于转移转移无符号数据无符号数据 JA/

17、JNBE JA/JNBE 高于转移高于转移无符号数据无符号数据 JAE/JNB JAE/JNB 高于等于高于等于转移转移无符号数据无符号数据 JB/JNAE JB/JNAE 低于转移低于转移无符号数据无符号数据 JBE/JNA JBE/JNA 低于等于低于等于转移转移第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移指令2. Jcc 条件转移指令条件转移指令由由CX决定的转移决定的转移 JCXZ指令格式指令格式JCXZ 目标地址标号目标地址标号当当CX=0转移转移将内存的数据段中存放了若干个将内存的数据段中存放了若干个8位

18、带符号数,数据块的长位带符号数,数据块的长度为度为 count(不超过不超过255),首地址位),首地址位table。试统计其中正试统计其中正数、负数和零的个数,分别存入数、负数和零的个数,分别存入 plus、minus 和和zero单元。单元。DatasegmentTable db 256 dup (?)Count db 1 dup (?)Plusdb 1 dup (?)Minus db 1 dup (?)Zerodb 1 dup (?)Dataends内存的数据段中存放了若干个内存的数据段中存放了若干个8 8位带符号数,数据块的长度为位带符号数,数据块的长度为 countcount(不超过

19、(不超过255255),首地),首地址位址位tabletable。试统计其中正数、负数和零的个数,分别存入。试统计其中正数、负数和零的个数,分别存入 plusplus、minus minus 和和zerozero单元。单元。leasi , table cldcheck: lodsb oral , al jsx1 jzx2 incplus jmpnextx1: inc minus jmp nextx2: inc zeronext: dec cxjcxz over jmp checkover: hltCode ends end startDatasegmentTable db 256 dup (?

20、)Count db 1 dup (?)Plusdb 1 dup (?)Minus db 1 dup (?)Zerodb 1 dup (?)DataendsCode segmentassume cs:code,ds:datamovax , datamovds , axstart: xoral , al movplus,al movminus,al movzero,al movch , al movcl , count 第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(一)转移指令(一)转移指令1. JMP 无条件转移指令无条件转移指令2. Jcc

21、 条件转移指令条件转移指令例例2:寄存器:寄存器AL中是字母中是字母Y(含大小写),则令(含大小写),则令AH=0,否则令否则令AH=-1.思考:如何判断思考:如何判断AX中的数据是奇数还是偶数?中的数据是奇数还是偶数?例例1:将:将AX中的无符号数除以中的无符号数除以2,如果是奇数,则加,如果是奇数,则加1后除以后除以2. 例例3:比较:比较 AX和和BX中的数(无符号数),并将较大者存入中的数(无符号数),并将较大者存入max。 第三节第三节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令三、逻辑运算与移位指令三、逻辑运算与移位指令二、算术运算指令二、

22、算术运算指令四、串操作指令四、串操作指令五、控制转移指令五、控制转移指令转移指令转移指令循环控制指令循环控制指令过程调用指令过程调用指令中断指令中断指令(一)转移指令(一)转移指令(二)循环控制指令(二)循环控制指令LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ注:循环控制全为注:循环控制全为短转移指令短转移指令第三节第三节 8086/80888086/8088指令系统指令系统五、控制转移指令五、控制转移指令(二)循环控制指令(二)循环控制指令LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ1. LOOP 循环指令循环指令指令格式指令格式LOOP 目标地址标号目标地址

23、标号操作:操作:1) (CX)(CX)-1 2) 若若(CX)0,则转移到目标标号;则转移到目标标号; 否则退出循环。否则退出循环。循环指令主要对循环指令主要对CXCX或或ZFZF进行测试,确定是否循环,如下表所示进行测试,确定是否循环,如下表所示 指令格式指令格式执行操作执行操作LOOP OPRDLOOP OPRD循环循环LOOPNZ/LOOPNE OPRDLOOPNZ/LOOPNE OPRD不等不等/ /结果不为结果不为0 0时循环时循环LOOPZ/LOOPE OPRDLOOPZ/LOOPE OPRD相等相等/ /结果为结果为0 0时循环时循环第三节第三节 8086/80888086/80

24、88指令系统指令系统五、控制转移指令五、控制转移指令(二)循环控制指令(二)循环控制指令LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ1. LOOP 循环指令循环指令2. LOOPE/LOOPZ 相等相等/为零循环指令为零循环指令指令格式指令格式LOOPE/LOOPZ 目标地址标号目标地址标号操作:操作:1) (CX)(CX)-1 2) 若若(CX)0且且ZF=1,则转移到目标标号;则转移到目标标号; 否则退出循环。否则退出循环。3. LOOPNE/LOOPNZ 不等不等/非零循环指令非零循环指令指令格式指令格式LOOPNE/LOOPNZ 目标地址标号目标地址标号操作:操作:1)

25、 (CX)(CX)-1 2) 若若(CX)0且且ZF1,则转移到目标标号;则转移到目标标号; 否则退出循环。否则退出循环。例:已知例:已知(AX)=1, (BX)=2, (CX)=3, (DX)=4程序程序L20:INCAX ADDBX , AX SHRDX , 1 ( )在括号内分别填入在括号内分别填入LOOP L20 ; LOOPE L20 LOOPNE L20求:程序执行后求:程序执行后AX、BX、CX、DX的结果。的结果。AXBXCXDXLOOP L20 LOOPE L20LOOPNE L20第二节第二节 8086/80888086/8088指令系统指令系统一、数据传送指令一、数据传送指令三、逻辑运算与移位指令三、逻辑运算与移位指令二、算术运算指令二、算术运算指令四、串操作指令四、串操作指令五、控制转移指令五、控制转移指令六、处理器控制指令六、处理器控制指令(一)标志位操作指令(一)标志位操作指令 CF、DF、IFCF:1. CLC ;(CF)02. STC ;(CF)13. CMC ;(CF)(CF)DF:1. CLD ;(DF)02. STD ;(DF)1IF:1. CLI ;(IF)02. STI ;(IF)1小结小结! 控制转移指令:控制转移指令: 无无条条件件转转移移指指令令,条条件件转转移移指指令,循环指令令,循环指令

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号