335程序控制指令内容摘要:

INT 21H。 最后显示’ H’ 24  用在循环程序中以确定是否要继续循环。  循环次数通常置于 CX中。  转移的目标应在 距离 本指令 128~ +127的范围之内 (短 跳转 )。  循环控制指令 不影响标志位。 25 (1) LOOP 格式: LOOP label 类比 串前缀 REP 操作: (CX)1→CX ; 若 (CX)≠0 ,则转至 label处执行 ; 否则退出循环 ,执行 LOOP后面的指令。 注: LOOP指令与下面的指令段等价: DEC CX JNZ label 26 (2)LOOPZ (LOOPE) 类比 串前缀 REPZ/E 格式: LOOPZ label 操作: (CX)1→CX ; 若 (CX)≠0∧ZF=1 ,则转至 label处执行 ; 否则退出循环 ,执行 LOOP后面的指令。 (3)LOOPNZ (LOOPNE) 类比 串前缀 REPNZ/NE 格式: LOOPNZ label 操作: (CX)1→CX ; 若 (CX)≠0∧ZF=0 ,则转至 label处执行 ; 否则退出循环 ,执行 LOOP后面的指令。 27 例 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 PTR[DI] LOOPNZ GOON HLT 28 例 2: 在 8000H开始的长度为 1000字节的字符串中查找 ’S’,若找到,把其偏移地址记录在 ADDR中,否则ADDR单元置为 0FFFFH。 MOV DI, 8000H MOV CX, 1000 MOV AL, ’S’ MOV ADDR, 0FFFFH GOON: SCASB LOOPNZ GOON。 两条可并为 REPNZ SCASB JNZ DONE DEC DI MOV ADDR,DI DONE: HLT 29 3. 过程调用和返回指令  过程 (子程序 ) 一段具有特定功能的,供其它程序调用的公用程序。  特点  调用子程序时, IP(或 CS:IP)的内容被压入堆栈栈顶。 从子程序返回时,栈顶的内容又被弹出到 IP(或CS:IP)。  子程序执行结束后一般均要返回调用程序。  一次定义,多次调用;  可带参数调用,以完成不同的功能。  优点 程序代码短 ,结构清晰 ,便于编程、调试、修改和阅读。  两条相关指令 : 子程序调用指令 CALL 子程序返回指令 RET 30 断点 入口地址 用于调用一个子过程; 调用前须 保护断点 地址 (断点 =CALL的下一条指令地址 CS:IP);再跳转到子程序入口地址 (子程序入口地址 =子程序的第一条指令地址 CS:IP’或 CS’:IP’); 子过程执行结束后要返回原调用处继续执行原程序 —— 断点恢复 (RET指令 )。 调用指令 CALL与转移指令 JMP的比较 RET CALL CALL 子程序入口地址 = JMP 子程序入口地址 + PUSH CALL的下一条指令地址 CALL指令功能 : 31 主程序调用子程序的执行过程: 将调用指令的下一条指令的地址(断点)压入堆栈( CALL指令 ); 相当于乎 PUSH 下一条指令的地址 (IP或 CS:IP) 获取子过程的入口地址(子过程第 1条指令的偏移地址) ( CALL指令 ) ; 相当于乎 JMP入口地址 (CS:IP’或 CS’:IP’) 执行子过程,含相应参数的保存及恢复( 其它指令 ); 将断点偏移地址由堆栈弹出,返回原程序( RET指令 )。 相当于乎 POP IP或 CS:IP 32 一般格式: CALL sub。 sub为子程序的入口 根据子程序入口的寻址方式,子程序调用有 4类。 ① 段内 直接 调用 子程序的偏移地址直接由 CALL指令给出。 格式: CALL near_proc。 近 调用 CALL执行时,它首先将 IP内容压栈,然后把指令中给出的 位移量 加到 IP上得到新 IP’跳转到子程序入口地址。 注意: 汇编以后的调用地址是相对于 CALL的下一条指令的位移量。 例: CALL 0120H。 子程序偏移地址由指令给出 (1)调用指令 CALL 33 位移量由汇编程序在汇编时进行计算 ,如下例 : CS:0102 CALL 0120H。 3字节 CS:0105 …… 则 位移量 为 : 01200105H=001BH 于是 CALL 0120H的机器码为 E8 1B 00 CS:0102 E8 CS:0103 1B CALL 0120H CS:0104 00 CS:0105 …… 34 子程序的偏移地。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。