- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言系列课件第一章(考试重点在里面)第8讲 6.1-6.4
第六章 分支结构程序 6.1 分支结构程序的引出 6.2 转移指令 6.2.1 无条件转移指令JMP(Jump) 段内直接转移方式 段内间接转移方式 段间直接转移方式 段间间接转移方式 段内直接转移方式 目标IP=当前IP+相对位移量(8bit/16bit) 相对位移量是一个8位或者16位的带符号数,在机器指令中直接给出,汇编指令中的目标地址以标号的形式给出。 JMP NEAR PTR 目标地址 目标地址在当前代码段,且在-32768~32767之间 JMP SHORT 目标地址 目标地址在当前代码段,且在-128~127范围内 段内间接转移方式 1) 段内寄存器间接转移 JMP AX 2) 段内存储器间接转移 JMP [SI](默认是WORD类型) JMP WORD PTR [BX+DI+1000H] 段间直接转移方式 汇编后的机器指令中直接给出目标地址的CS和IP,汇编指令以标号的形式给出。 JMP FAR PTR 目标地址 段间间接转移方式 IP和CS的内容用内存中2个连续的字来替换,可以使用任意一种存储器寻址方式。 JMP DWORD PTR [BX][SI] 例 (BX)=1256H, (SI)=528EH, (DS)=2000H, (264E4H)=1234H, (264E6H)=5678H 执行指令后 IP=?CS=? 6.2.2 条件转移指令 单条件转移指令 有符号数和无符号数的条件转移指令 条件转移指令比较 条件转移指令举例1 6.3 分支结构程序设计 6.4 多分支结构程序设计 条件转移指令举例2 习题 作业 作业: 6.9 6.12 1: ;*****EXAM 6.5.1***** 2: SSEG SEGMENT STACK 3: STK DB 20 DUP(0) 4: SSEG ENDS 5: DSEG SEGMENT 6: DSEG ENDS 7: CSEG SEGMENT 8: ASSUME CS:CSEG,DS:DSEG 9: ASSUME SS:SSEG 10: MOTOR:MOV AX,DSEG 11: MOV DS,AX 12: MOV AX,SSEG 13: MOV SS,AX 14: MOV SP,SIZE STK 15: MOV AH,01 16: INT 21H 17: CMP AL,’0’ 18: JZ ADR0 19: CMP AL,’1’ 20: JZ ADR1 21: : 22: CMP AL,’8’ 23: JZ ADR8 24:ADR9: : 25: : : ADR0: : : : : ADR1 : : : : ADR8 : : 1. 树形结构法 所谓地址常数表法,就是把多个分支中的每个分支程序段的起始地址顺序存放在一个存储区中,这个存储区称地址表存储区。根据键值,将相应处理程序的入口地址取入某寄存器,然后用间接转移指令实现转移。 2. 地址常数表法 1: ;*****EXAM 6.5.2 ***** 2: SSEG SEGMENT STACK 3: STK DB 20 DUP(0) 4: SSEG ENDS 5: DSEG SEGMENT 6: ADRTAB DW OFFSET ADR0,OFFSET ADR1 7: DW OFFSET ADR2,..,OFFSET ADR9 8: DSEG ENDS 9: CSEG SEGMENT 10: ASSUME CS:CSEG,DS:DSEG 11: ASSUME SS:SSEG 12: BRANCH: MOV AX,DSEG 13: MOV DS,AX 14: MOV AX,SSEG 15: MOV SS,AX 16: MOV SP,LENGTH STK 17: LEA DI,ADRTAB ;取地址表首址 18: MOV AH,01 ;读键盘 19: INT 21H 20: SUB AL,’0’ ;转换为数字 21: XOR AH,AH ;扩展为字数据 22: SHL AX,1 ;乘2 23: ADD DI,AX ;形成相应地址 24: MOV AX,[DI] ;取程序入口 25: JMP AX ;转去执行 26
文档评论(0)