《程序控制指令》PPT课件.ppt
《《程序控制指令》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《程序控制指令》PPT课件.ppt(59页珍藏版)》请在三一办公上搜索。
1、1,程序控制指令,控制转移指令分为:转移指令循环控制指令调用和返回指令中断指令,2,转移指令的实质:改变IP(或CS)的内容。所有转移指令不会影响标志位。分为无条件转移和条件转移两种。,3.2.转移指令,3,(1)无条件转移指令-JMP本指令无条件转移到指定的目标地址,以执行从该地址开始的程序段。根据设置CS、IP的方法,JMP指令分成4种情况。段内直接转移:JMP disp 指令中给出的8/16位的位移量加到IP。CS保持不变。段内间接转移:JMP reg/mem reg/mem中的16位偏移地址送IP。CS保持不变。段间直接转移 JMP segment:offset 指令中给出的16位的段
2、和16位的偏移地址送到CS和IP。段间间接转移 JMP mem32 mem32中的16位的段和16位的偏移地址送到CS和IP。,4,转移的目标地址由指令直接给出。指令中给出的目标地址实际上是一个相对于IP的位移量:位移量 转移范围 汇编语言中格式 8位-128+127 JMP SHORT OPRD 16位-32768+32767 JMP NEAR PTR OPRD例:JMP0120H;直接转向0120H JMPSHORT LP;转向LP JMPNEAR PTR BBB;转向BBB由于是段内转移,故转移后CS内容保持不变,段内直接转移,5,段内间接转移转移的目标地址由寄存器或存储单元的内容给出。
3、例1:JMP SI若(SI)=1200H,则指令执行后,(IP)=1200H,于是转向代码段的偏移地址1200H处开始执行。注意:目标地址以段内偏移的形式给出,而不是相对于IP的位移量,所以它是一个16位的操作数。,6,例2:JMP BX+DI设指令执行前:(DS)=3000H,(BX)=1300H,(DI)=1200H,(32500H)=2350H;则指令执行后:(IP)=2350H在汇编语言中,段内间接寻址通常写成:JMPWORD PTRBX+DI表示所取得的目标地址是一个字。,7,段间直接转移在指令中直接给出要转移到的目的段地址和偏移地址。例:JMP2000H:1000H执行时,(IP)
4、1000H,(CS)2000H注:直接地址为符号地址时,段间直接转移指令中的符号地址前应加操作符FAR PTR。例:JMP FAR PTR far_label其中的far_label为远类型的标号。,8,转移的目的地址(段和偏移)在两个相邻的字存储单元中。例如:JMPDWORD PTRSI设指令执行前:(DS)=4000H,(SI)=1212H,(41212H)=1000H,(41214H)=4A00H则指令执行后:(IP)=1000H,(CS)=4A00H于是转到4B000H处开始执行指令。例中的DWORD PTR表示转移地址是一个双字。,段间间接转移,9,4000,1212,+),4121
5、2,DS,SI,00,10,00,4A,41212412134121441215,1000,4A00,IP,CS,段间间接转移操作示意图,11111111,11101100,JMP DWORD PTR SI的机器码,DS:SI,10,条件转移指令可实现程序的条件分支。条件转移指令根据标志位的状态来决定是否进行分支转移。格式:JXX label;xx为条件名称缩写指令的转移范围为-128+127字节。主要的条件转移指令参见p142表3-7。,(2)条件转移指令-JXX,11,根据单个标志位设置的条件转移指令JB/JC;低于,或CF=1,则转移JNB/JNC/JAE;高于或等于,或CF=0,则转移
6、JP/JPE;奇偶标志PF=1(偶),则转移JNP/JPO;奇偶标志PF=0(奇),则转移JZ/JE;结果为零(ZF=1),则转移JNZ/JNE;结果不为零(ZF=0),则转移JS;SF=1,则转移JNS;SF=0,则转移JO;OF=1,则转移JNO;OF=0,则转移,12,这类指令主要用来判断两个数的大小。一般指令序列为:CMP dist,src;比较 Jxx label;根据比较结果转移 判断无符号数的大小JA 高于则转移(distsrc)转移条件为:CF=0ZF=0JNA/JBE 低于或等于则转移(distsrc)转移条件为:CF=1ZF=1,根据组合条件设置的条件转移指令,13,JG;
7、大于则转移(distsrc)转移条件为:(SFOF=0)ZF=0JGE;大于或等于则转移(distsrc)转移条件为:(SFOF=0)ZF=1JL;小于则转移(distsrc)转移条件为:(SFOF=1)ZF=0JLE;小于或等于则转移(distsrc)转移条件为:(SFOF=1)ZF=1,判断有符号数的大小,14,根据CX内容来决定是否转移的转移指令 JCXZ label 若(CX)=0,则转移到label处开始执行。,15,条件转移指令举例:以十六进制数形式显示BX中的内容。MOVBX,1234HMOVCH,4;CH做循环计数器ROT:MOVCL,4;CL做移位计数器 ROLBX,CL;将
8、最高4位移到低4位 MOVAL,BL ANDAL,0FH;取出低4位 ADDAL,30H;转换为ASCII码 CMPAL,39H;与 9 比较 JBE DISP;若(AL)9,则转显示 ADDAL,7;若(AL)9,再加7转为A-FDISP:MOVDL,AL;(DL)字符 MOVAH,2 INT21H;显示输出 DECCH;4个十六进制数显示完否?JNZROT;没有,循环 MOVDL,48H;H MOVAH,2 INT21H;最后显示H,16,看P86 例3.8,17,3.3.循环控制指令,用在循环程序中以确定是否要继续循环。循环次数通常置于CX中。转移的目标应在距离本指令-128+127的范
9、围之内。循环控制指令不影响标志位。,18,(1)LOOP格式:LOOP label操作:(CX)-1CX;若(CX)0,则转至label处执行;否则退出循环,执行LOOP后面的指令。注:LOOP指令与下面的指令段等价:DEC CX JNZ label,19,(2)LOOPZ(LOOPE)格式:LOOPZ label操作:(CX)-1CX;若(CX)0ZF=1,则转至label处执行;否则退出循环,执行LOOP后面的指令。(3)LOOPNZ(LOOPNE)格式:LOOPNZ label操作:(CX)-1CX;若(CX)0ZF=0,则转至label处执行;否则退出循环,执行LOOP后面的指令。,2
10、0,例1:给1A000H开始的256个内存单元均减去1,若 发现某个单元减为0则立即退出循环,其后的单元不再减1。程序段如下:(逻辑地址为1A00:0H)MOV AX,1A00H MOV DS,AX;1A00H段 MOV DI,-1 MOV CX,256 GOON:INC DI DEC BYTE PTRDI LOOPNZ GOON HLT,21,例2:在8000H开始的长度为1000字节的字符串中 查找S,若找到,把其偏移地址记录在ADDR中,否则ADDR单元置为0FFFFH。MOV DI,8000H MOV CX,1000 MOV AL,S MOV ADDR,0FFFFH GOON:SCAS
11、B LOOPNZ GOON JNZ DONE DEC DI MOV ADDR,DI DONE:HLT,22,看P94 例3.10P96 例3.13P102 例3.16,23,3.4 串操作指令,串:顺序放在内存中的一组相同类型的数据。串操作:对串中的元素进行相同的操作。串操作的寻址方式:源操作数指针DS:SI(DS可超越)目的操作数指针ES:DI每次串操作后:串操作指令自动修改SI和DI字节1,字2。DF标志决定。(注意:退出串操作后,指针指向最后操作的元素的下一个元素)可完成两个存储单元之间的传送和比较操作(也仅是串指令可以),24,重复前缀有的串操作指令前面可加上重复前缀REP。当使用RE
12、P前缀时,该指令重复执行,重复执行次数由CX决定(带有REP前缀的串操作指令每执行一次,CX自动减1)。重复前缀包括:REP CX0 时重复执行REPE/REPZ CX0ZF=1时重复执行REPNE/REPNZ CX0ZF=0时重复执行,25,串指令使用的一般方法,设置源串地址,设置目标串地址,设置串长度,设置操作方向DF,串指令,MOV SI,源串首地址(或LEA SI,源串),MOV DI,目的串首地址(或LEA DI,目的串),MOV CX,串长度,CLD(或STD),串指令,26,指令执行的操作为:MOVSB:(ES):(DI)(DS):(SI)SI1,DI1 MOVSW:(ES):(
13、DI+1)(DI)(DS):(SI+1)(SI)SI2,DI2 指令也可写成:MOVS dest,src但要求:src用DS:SI寻址,dest用ES:DI寻址 传送是字节还是字,由操作数的类型决定,串传送指令MOVSB/MOVSW,27,串传送指令使用举例,用串传送指令实现200个字节的数据传送:LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT,28,串比较指令CMPSB/CMPSW,指令执行的操作为:CMPSB:(DS):(SI)-(ES):(DI)SI1,DI1 CMPSW:(DS):(SI+1)(SI)-(ES):(DI+1)(D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序控制指令 程序控制 指令 PPT 课件

链接地址:https://www.31ppt.com/p-5564349.html