课前复习指令系统.ppt
《课前复习指令系统.ppt》由会员分享,可在线阅读,更多相关《课前复习指令系统.ppt(47页珍藏版)》请在沃文网上搜索。
1、课前复习指令系统:课前复习指令系统:1.MOV DS,2010H ;错错 不能将立即数直接给段寄存器不能将立即数直接给段寄存器 2.PUSH AL ;错错 不能对字节进行堆栈操作不能对字节进行堆栈操作 3.MOV DX,SP ;错错 无无SP寻址方式,存储器地址寻址方式,存储器地址只能通过只能通过BX,BP,SI,DI寻址寻址 4.IN AL,0A00H ;错错 端口地址大于端口地址大于FFH 应用应用DX寻址端口寻址端口 5.XCHG CL,CH ;对对第七讲8086/8088指令系统(续)2006年10月31号(星期二)6.AAA CX ;6.AAA CX ;错错 AAAAAA为无操作数指
2、令为无操作数指令,默认操作数默认操作数AL AL 7.ADD BP+DI,1000H ;7.ADD BP+DI,1000H ;错错 两个操作数不能均为存储器两个操作数不能均为存储器 8.OUT DX,CL ;8.OUT DX,CL ;错错 端口只能通过端口只能通过ALAL或或AXAX传送数据传送数据 9.CBW BH ;9.CBW BH ;错错 符号扩展命令为无操作数指令符号扩展命令为无操作数指令,默认操作数默认操作数ALAL10.ADD 03ECH,AX ;10.ADD 03ECH,AX ;错错 目的操作数不能为立即数目的操作数不能为立即数 11.MOV BX,SP+DI;11.MOV BX
3、,SP+DI;错错 无无SP+DISP+DI寻址寻址,必须是基址必须是基址 (BX(BX或或BP)+BP)+变址变址(SI(SI或或DI)DI)12.MOV DI,AX ;12.MOV DI,AX ;错错 无无AXAX寻址寻址13.LDS CH,DI ;13.LDS CH,DI ;错错 LDSLDS指令目的操作数应为一个指令目的操作数应为一个1616为寄存器为寄存器 14.LEA BX,1000H;14.LEA BX,1000H;错错 LEALEA源操作数应为一个存储器操作数源操作数应为一个存储器操作数,不能是立即数不能是立即数15.DIV 0010H ;15.DIV 0010H ;错错 单操
4、作数不能是立即数单操作数不能是立即数 16.LEA DX,DI ;16.LEA DX,DI ;错错 LEALEA源操作数应为一个存储器操作数源操作数应为一个存储器操作数,不能是寄存器不能是寄存器 17.MUL AX,200H ;17.MUL AX,200H ;错错 MULMUL为单操作数指令为单操作数指令,且源操作数不能为立即数且源操作数不能为立即数,AX,AX隐含隐含 18.MOV AX,BX+BP;18.MOV AX,BX+BP;错错 无无BP+BXBP+BX寻址寻址,理由同第理由同第1212题题 19.CMP BX,SI ;19.CMP BX,SI ;错错 双操作数不能均为存储器双操作数
5、不能均为存储器 21.OUT DX,BX ;21.OUT DX,BX ;错错 端口只能通过端口只能通过ALAL或或AXAX传送数据传送数据22.AND 0FH,AL ;22.AND 0FH,AL ;错错 目的操作数不能为立即数目的操作数不能为立即数23.JNZ AAA ;23.JNZ AAA ;错错 AAAAAA十一条指令十一条指令.不能作为符号地址不能作为符号地址 例例1 复习求补指令:复习求补指令:MOV AH,80H NEG AH 00 H 0000 0000 B 00 H 0000 0000 B -80 H 80 H -1000 0000 B 1000 0000 B 1 1 1 1 8
6、0H 1000 0000B 80H 1000 0000B 执行后:执行后:(AL)=80H,CF=1,OF=1,ZF=0,SF=1,AF0,PF=0 CMP oprd1,oprd2 ;(oprd1)-(oprd2)CMP A,Bl 利用利用CMP执行后的标志值,比较两操作数之间的关系执行后的标志值,比较两操作数之间的关系l 比较指令比较指令CMP,进行两操作数相减操作,进行两操作数相减操作,但只影响标志值,不影响操作数但只影响标志值,不影响操作数(减的结果不保存减的结果不保存)例例2:复习比较指令:复习比较指令:条件转移指令条件转移指令判断条件判断条件 低于低于 JB next CF=1 低于
7、或等于低于或等于 JBE next CF=1 或或 ZF=1 高于高于 JA next CF=0 且且 ZF=0 高于或等于高于或等于 JAE next CF=0有符号数小于用有符号数小于用JLJL,大于用,大于用JGJG例例 将将AX和和BX中较大的带符号数,存于中较大的带符号数,存于AX中中 CMP AX,BX ;比较比较 JGE great ;大于大于或或等于则跳转等于则跳转 XCHG AX,BX ;小于则交换小于则交换 great:、CMP A,BCMP指令应用举例:指令应用举例:带符号数找最大值带符号数找最大值带符号数找最大值带符号数找最大值 若自若自BLOCKBLOCK开始的内存缓
8、冲区中,有开始的内存缓冲区中,有100100个带符号数。个带符号数。找出最大值。并存放到找出最大值。并存放到MAXMAX单元中。单元中。思路思路思路思路:第一个数取出第一个数取出(AX),取出第二个数(第二个字单元内容)与取出第二个数(第二个字单元内容)与(AX)比较比较:(AX)第二个数,不做交换,第二个数,不做交换,否则,(第二个字单元内容否则,(第二个字单元内容)(AX)。)。再取第三个数,再取第三个数,经过经过99次比较,在(次比较,在(AX)中得到最大数。中得到最大数。编程:编程:MOV BX,OFFSET BLOCK MOV AX,BX INC BX INC BX MOV CX,9
9、9AGAIN:CMP AXCMP AX,BXBX JG NEXTJG NEXT ;(AX)(AX)大,转大,转NEXTNEXT MOV AX,BXNEXT:INC BX INC BX DEC CX JNZ AGAIN MOV MAX,AX;MAX单元存放单元存放最大值最大值 8086/80888086/8088指令系统(续)指令系统(续)8086/8088指令系统可以分成指令系统可以分成6个功能组:个功能组:1 数据传送数据传送(Data transfer)2 算术运算(算术运算(Arithmetic)3 逻辑运算和移位指令逻辑运算和移位指令(Logic&Shift)4 串操作串操作(Stri
10、ng manipulation)5 控制转移(控制转移(Control Transfer)6 处理器控制(处理器控制(Processor Control)三三.逻辑运算指令逻辑运算指令逻辑指令逻辑指令指令分类指令分类逻辑运算逻辑运算AND、OR、XOR、NOT、TEST移移 位位 SHL、SAL、SHR、SAR 循环移位循环移位 ROL、ROR、RCL、RCR1.逻辑运算指令逻辑运算指令AND AL,0000 1111BOR BX,00FFHNOT CLXOR DL,ALTEST AL,0000 0001Bl 除除NOT指令单操作数外,其它均为双操作数指令单操作数外,其它均为双操作数l 可进行
11、字节或字操作可进行字节或字操作l NOT指令不影响标志指令不影响标志l TEST为为“与与”操作,但只影响标志位,不影响操作数。操作,但只影响标志位,不影响操作数。其他指令其他指令置置CF、OF为为0,AF不定不定(无意义无意义)SF、ZF、PF据结果置位据结果置位以以“与与”指令为例,讨论注意事项:指令为例,讨论注意事项:“与与与与”指令中操作数不能同时为存储器;指令中操作数不能同时为存储器;指令中操作数不能同时为存储器;指令中操作数不能同时为存储器;影响条件码:影响条件码:CF0F=0,AF未定义未定义,SF ZF PF “与与”指令的用途指令的用途:(1)清清清清CF,CF,自己自己自己
12、自己“与与与与”自己自己自己自己.操作数不变操作数不变操作数不变操作数不变 ,CF=0CF=0 例:例:AND AL,AL ;结果:结果:操作数不变操作数不变操作数不变操作数不变 ,CF=0CF=0。(2)使使操作数中若干位保持不变,若干位与操作数中若干位保持不变,若干位与操作数中若干位保持不变,若干位与操作数中若干位保持不变,若干位与“1”1”相与相与相与相与;而而若干位置为若干位置为若干位置为若干位置为“0“0“的场合,若干位与的场合,若干位与的场合,若干位与的场合,若干位与“0”0”相与相与相与相与。例:例:若(若(AL)=43 3H AND AL,0F FH;(AL)=03H,(AL)
13、(AL)0303不变不变不变不变;;(AL)(AL)4747=00H,=00H,屏蔽高屏蔽高屏蔽高屏蔽高4 4位位位位。2.移位指令移位指令SHL oprd,1CLSAL oprd,1CLSHR oprd,1CLSAR oprd,1CL0CF0CFCF0CF执行操作执行操作指令格式指令格式左移部分逻辑移位与算术移位3.循环移位指令循环移位指令指令格式指令格式执行操作执行操作CFCFCFCFROL oprd,1CLROR oprd,1CLRCL oprd,1CLRCR oprd,1CL循环移位分带进位与不带进位两种共同点:共同点:所有移位指令都可以作所有移位指令都可以作B/W操作。操作。指令中的
14、指令中的 destdest:寄存器、存储器寻址方式。寄存器、存储器寻址方式。寄存器、存储器寻址方式。寄存器、存储器寻址方式。cnt:表示移位次数表示移位次数 cnt=1,1可写在指令中,不能是可写在指令中,不能是1以外的常数。以外的常数。cnt1,用,用CL存放移位次数存放移位次数,不能是其他寄存器。不能是其他寄存器。如:如:SAL AX,1 MOV CL,4 SAL AX,CL注意事项:注意事项:SHL AL,1 SHR AL,CL ROL BX,1 RCR AL,CLl源操作数为移位的次数源操作数为移位的次数 为为1可在指令中直接给出可在指令中直接给出 大于大于1时,移位次数需由时,移位次
15、数需由CL给出给出 RCR AX,5 SHL BL,ALl 目的操作数类型决定操作类型目的操作数类型决定操作类型SAL BL,CL 字节操作字节操作ROL BX,CL 字操作字操作当移位次数当移位次数l oprd可以是可以是reg/meml 可进行字节或字操作可进行字节或字操作循环移位指令循环移位指令循环移位指令循环移位指令(Rotate)与移位指令与移位指令与移位指令与移位指令(Shift)不同点不同点不同点不同点:移位指令执行后,移出的位可能丢失;移位指令执行后,移出的位可能丢失;循环移位指令移循环移位指令移位后,操作数中原来各数位的信息不会丢失,这是移动了位位后,操作数中原来各数位的信息
16、不会丢失,这是移动了位置,必要时可以恢复。置,必要时可以恢复。循环移位指令可以对操作数进行测试。循环移位指令可以对操作数进行测试。例:测试例:测试(AL)5=?0MOV CL,3ROL AL,CLROL AL,CLJNC ZEROZERO:利用带进位循环移位指令将两个寄存器或存储器单元利用带进位循环移位指令将两个寄存器或存储器单元利用带进位循环移位指令将两个寄存器或存储器单元利用带进位循环移位指令将两个寄存器或存储器单元 组合起来一起移位组合起来一起移位组合起来一起移位组合起来一起移位。例:例:将将DX、AX组合起来构成组合起来构成32位寄存器向左移一位。位寄存器向左移一位。如下图所示:如下图
17、所示:程序:程序:SHL AX,1 RCL DX,132位寄存器向左移一位位寄存器向左移一位四、串操作指令(四、串操作指令(String manipulation)“串串”就是内存中一段地址相连的字节或字。就是内存中一段地址相连的字节或字。串操作串操作串操作串操作对串中各项进行操作,也叫数据块操作对串中各项进行操作,也叫数据块操作对串中各项进行操作,也叫数据块操作对串中各项进行操作,也叫数据块操作。串操作指令是串操作指令是8088实现内存之间数据传送的一组指令实现内存之间数据传送的一组指令 8088有有5种基本操作:种基本操作:1、MOVS(Move string)串传送指令串传送指令 2、C
18、MPS(Compare string)串比较指令串比较指令 3、SCAS(Scan string)串扫描指令串扫描指令 4、LODS(Load from string)串取数指令串取数指令 5、STOS(Store in to string)存入串数据指令存入串数据指令共同点:共同点:共同点:共同点:可以只有源操作数,可以只有目标操作数,可能二者都有。可以只有源操作数,可以只有目标操作数,可能二者都有。源操作数用源操作数用SI 寻址,隐含寻址,隐含DS值为段地址,可以用段跨越前缀指定其它段。值为段地址,可以用段跨越前缀指定其它段。目标操作数用目标操作数用DI寻址,隐含寻址,隐含ES为段地址。为
19、段地址。每次操作对每次操作对SI、DI 调整:调整:DF=1DF=1,DIDI、SISI自动自动自动自动-1 (-1 (字节)或字节)或字节)或字节)或-2-2(字);(字);(字);(字);DF=0DF=0,DIDI、SISI自动自动自动自动+1+1(字节)或(字节)或(字节)或(字节)或+2+2(字)。(字)。(字)。(字)。与上述指令基本配合使用前缀有:与上述指令基本配合使用前缀有:REPREP(Repeat)重复。重复。重复。重复。REPE/REPZREPE/REPZ(Repeat while equal/zero)相等相等相等相等/为零则重复。为零则重复。为零则重复。为零则重复。RE
20、PNE/REPNZREPNE/REPNZ(Repeat while not equal/not zero)不相等不相等不相等不相等/不为零则重复不为零则重复不为零则重复不为零则重复。下面分二种情况来讨论:下面分二种情况来讨论:(一一)与与REP相配合工作的相配合工作的MOVS、STOS指令指令 REP 重复串操作直到(重复串操作直到(CX)=0为止为止LODS指令一般不直接与指令一般不直接与REP联合使用,但其操作与联合使用,但其操作与STOS相关,因而放在这里。相关,因而放在这里。(二二)与与REPE/REPZ和和REPNE/REPNZ联合工作的联合工作的CMPS和和SCAS指指令令 REP
21、E/REPZ 当相等当相等/为零时重复串操作为零时重复串操作 REPNE/REPNZ 当不相等当不相等/不为零时重复串操作不为零时重复串操作(一一一一)与与与与REPREP相配合工作的相配合工作的相配合工作的相配合工作的MOVSMOVS、STOSSTOS指令指令指令指令 REP REP 重复串操作直到(重复串操作直到(重复串操作直到(重复串操作直到(CXCX)=0=0为止为止为止为止 格式:格式:REP String Primitive 串指令串指令 String Primitive 可为:可为:MOVS、STOS。1.MOVS(Move String)串传送串传送2.LODS(Load fr
22、om String)读串指令读串指令3.STOS(Store into String)写串指令写串指令 REP REP 重复串操作执行过程重复串操作执行过程重复串操作执行过程重复串操作执行过程:(1)当当(CX)=0,结束结束REP,执行执行REP后的下一条指令。后的下一条指令。(2)当当(CX)0,(CX)(CX)-1,(3)执行执行REP后的串指令,后的串指令,(4)重复重复(1)(3)。)。REP 执行流程图执行流程图1.1.MOVSMOVS(Move stringMove string)串传送串传送串传送串传送2.2.串传送有串传送有串传送有串传送有3 3种格式:种格式:种格式:种格式
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习 指令系统