微机原理及接口度第10次_第1页
微机原理及接口度第10次_第2页
微机原理及接口度第10次_第3页
微机原理及接口度第10次_第4页
微机原理及接口度第10次_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、 (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(一)基本串操作指令微机原理及接口度第10次第三节 8086/8088指令系统四、串操作指令(二)串操作指令重复前缀REP的操作:若(CX)=0,则退出循环。 (CX)(CX)-1 ; 执行REP后面的串操作指令一次; 重复 REPE/REPZ的操作:若(CX)=0或(ZF)=0,则退出循环。 (CX)(CX)-1

3、 ; 执行REP后面的串操作指令一次; 重复 REPNE/REPNZ的操作:若(CX)=0 或(ZF)=1 ,则退出循环。 (CX)(CX)-1 ; 执行REP后面的串操作指令一次; 重复 微机原理及接口度第10次第三节 8086/8088指令系统四、串操作指令(三)DF置位/复位指令CLD (DF)=0;STD (DF)=11. 源串SI对应DS段、可超越;目标串DI对应ES段、不可超越;3. 每一次操作自动修改地址指针。(四)串操作指令说明4. REP可以与MOVS、STOS指令连用;REPZ、REPNE可以与 CMPS、SCAS指令连用。2. 执行重复串操作前,应将计数器CX中置数。微机

4、原理及接口度第10次第三节 8086/8088指令系统 例1:比较两个字符串,找出第一个不相等字符的地址。如两字串完全相同,则转到ALLMATCH进行处理。两字串长度均为20,首地址为STRING1和STRING2。DECSI DEC DIMOV SI , OFFSET STRING1 MOV DI, OFFSET STRING2;取STRING1的偏移地址;取STRING2的偏移地址MOV CX, 20;置循环次数CLD;置方向REPE CMPSB;若相同重复比较,若不同则退出JZALLMATCH;如ZF=1,则表示完全相同;恢复第一个不相等字符的原;地址ALLMATCH:微机原理及接口度第

5、10次第三节 8086/8088指令系统 例2: 将DS:2000H开始的09的ASCII码传送到ES:3000H开始的数据区中. 例3: 在DS:2000H4000H中查找A,找到送至DL否则DL=0.微机原理及接口度第10次第二章 微型计算机指令系统 第三节 8086指令系统数据传送指令算术运算指令逻辑运算和移位指令串操作指令控制转移指令处理器控制指令微机原理及接口度第10次第三节 8086/8088指令系统一、数据传送指令三、逻辑运算与移位指令二、算术运算指令四、串操作指令五、控制转移指令转移指令循环控制指令过程调用指令中断指令(一)转移指令IP目标地址1. JMP 无条件转移指令例:J

6、MP QUEST JMP BX JMP WORD PTR 2000H微机原理及接口度第10次第三节 8086/8088指令系统(一)转移指令转移发生在段内(本代码段内),称为段内转移,操作数为偏移地址;转移发生在段间(其它代码段),称为段间转移,操作数为段基址和偏移地址。1. JMP 无条件转移指令微机原理及接口度第10次第三节 8086/8088指令系统(一)转移指令1. JMP 无条件转移指令1) 段内直接转移转移地址的有效地址是当前IP和8位或16位偏移量(带符号数)之和。 若为8位的偏移量,转移范围在-128+127之间,称为短转移 若为16位偏移量,转移范围在-32768+32767

7、之间。 微机原理及接口度第10次第三节 8086/8088指令系统(一)转移指令1. JMP 无条件转移指令2) 段内间接转移转移地址的有效地址是寄存器的内容或存储单元的内容(一个字)。 Eg: MOV BX, 2346H JMP BX; IPBX Eg:JMP WORD PTR QUEST; 将QUEST和QUEST+1地址单元的内容送至IP。 (IP)(寄存器) 或 (IP)(存储器) 微机原理及接口度第10次第三节 8086/8088指令系统(一)转移指令1. JMP 无条件转移指令3) 段间直接转移指令中直接给出转移地址的段地址和偏移地址。Eg:JMP FAR PTR NEXTPORT

8、 转移地址的段地址和偏移地址放在存储器单元中(连续四个单元)。 4) 段间间接转移Eg:JMP DWORD PTR NEXT (IP) offset 标号;(CS)seg 标号(IP) mem32;(CS)mem32+2微机原理及接口度第10次第三节 8086/8088指令系统五、控制转移指令(一)转移指令1. JMP 无条件转移指令2. Jcc 条件转移指令条件转移指令是根据前一条指令的运行结果对某些标志位的状态来决定转移的。有些指令只针对一个标志位的判断来实现转移,有些需对多个标志位的组合判断来实现转移。条件转移全为短转移指令,即转移目标与下一条指令之间的字节距离在-128+127范围以内

9、。(1)条件转移指令与无条件转移指令区别?(2)转移的范围超出-128+127怎么办?微机原理及接口度第10次第三节 8086/8088指令系统五、控制转移指令(一)转移指令1. JMP 无条件转移指令2. Jcc 条件转移指令条件转移指令Jcc 根据指定的条件确定程序是否发生转移。其通用的格式为: Jcc label;条件满足,发生转移,IPIP+8位位移量; 否则,顺序执行 Jcc 不影响标志,但要利用标志。微机原理及接口度第10次第三节 8086/8088指令系统五、控制转移指令(一)转移指令1. JMP 无条件转移指令2. Jcc 条件转移指令(1)根据一个标志位的转移指令根据CF、O

10、F、SF、ZF、PF5个标志位两种状态可以生成10条转移指令指令转移条件说明JCCF=1有进位转移JNCCF=0无进位转移JZ/JEZF=1结果为“0”转移JNZ/JNEZF=0结果不为“0”转移JOOF=1有溢出转移JNOOF=0无溢出转移JP/JPEPF=1偶校验转移JNP/JPOPF=0奇校验转移JSSF=1结果为负数转移JNSSF=0结果不为负数转移ADDAX , BX JNOL1 JNC L2 JMPL3微机原理及接口度第10次第三节 8086/8088指令系统五、控制转移指令(一)转移指令1. JMP 无条件转移指令2. Jcc 条件转移指令(2)根据多个标志位的转移指令有符号数分

11、大于(Great Than)、等于(Equal)、小于(Less Than)3种情况;无符号数分高于(Above)、等于(Equal)、低于(Below)3种情况 数据类型指令说明有符号数据JG/JNLE 大于转移有符号数据JGE/JNL 大于等于转移有符号数据JL/JNGE 小于转移有符号数据JLE/JNG 小于等于转移无符号数据JA/JNBE 高于转移无符号数据JAE/JNB 高于等于转移无符号数据JB/JNAE 低于转移无符号数据JBE/JNA 低于等于转移微机原理及接口度第10次第三节 8086/8088指令系统五、控制转移指令(一)转移指令2. Jcc 条件转移指令由CX决定的转移

12、JCXZ指令格式JCXZ 目标地址标号当CX=0转移将内存的数据段中存放了若干个8位带符号数,数据块的长度为 count(不超过255),首地址位table。试统计其中正数、负数和零的个数,分别存入 plus、minus 和zero单元。DatasegmentTabledb 256 dup (?)Countdb 1 dup (?)Plusdb 1 dup (?)Minusdb 1 dup (?)Zerodb 1 dup (?)Dataends微机原理及接口度第10次内存的数据段中存放了若干个8位带符号数,数据块的长度为 count(不超过255),首地址位table。试统计其中正数、负数和零的

13、个数,分别存入 plus、minus 和zero单元。leasi , table cldcheck: lodsb oral , al jsx1 jzx2 incplus jmpnextx1: inc minus jmp nextx2: inc zeronext: dec cxjcxz over jmp checkover: hltCodeends end startDatasegmentTabledb 256 dup (?)Countdb 1 dup (?)Plusdb 1 dup (?)Minusdb 1 dup (?)Zerodb 1 dup (?)DataendsCodesegmenta

14、ssume cs:code,ds:datamovax , datamovds , axstart: xoral , al movplus,al movminus,al movzero,al movch , al movcl , count 微机原理及接口度第10次第三节 8086/8088指令系统五、控制转移指令(一)转移指令1. JMP 无条件转移指令2. Jcc 条件转移指令例2:寄存器AL中是字母Y(含大小写),则令AH=0,否则令AH=-1.思考:如何判断AX中的数据是奇数还是偶数?例1:将AX中的无符号数除以2,如果是奇数,则加1后除以2. 例3:比较 AX和BX中的数(无符号数),

15、并将较大者存入max。 微机原理及接口度第10次第三节 8086/8088指令系统一、数据传送指令三、逻辑运算与移位指令二、算术运算指令四、串操作指令五、控制转移指令转移指令循环控制指令过程调用指令中断指令(一)转移指令(二)循环控制指令LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ注:循环控制全为短转移指令微机原理及接口度第10次第三节 8086/8088指令系统五、控制转移指令(二)循环控制指令LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ1. LOOP 循环指令指令格式LOOP 目标地址标号操作:1) (CX)(CX)-1 2) 若(CX)0,则转移到目标标号

16、; 否则退出循环。循环指令主要对CX或ZF进行测试,确定是否循环,如下表所示 指令格式执行操作LOOP OPRD循环LOOPNZ/LOOPNE OPRD不等/结果不为0时循环LOOPZ/LOOPE OPRD相等/结果为0时循环微机原理及接口度第10次第三节 8086/8088指令系统五、控制转移指令(二)循环控制指令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) (CX)(CX)-1 2) 若(CX)0且ZF1,则转移到目标标号; 否则退出循环。微机原理及接口度第10次例:已知(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微机

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论