分支程序设计_0

分支程序设计_0

ID:20951369

大小:26.00 KB

页数:6页

时间:2018-10-18

分支程序设计_0_第1页
分支程序设计_0_第2页
分支程序设计_0_第3页
分支程序设计_0_第4页
分支程序设计_0_第5页
资源描述:

《分支程序设计_0》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、分支程序设计      这种程序的思路是先判断条件是否成立;若成立,转到转移指令指定的位置执行  例:从接口03F0H中取数,若此数>=90,则将00H送03F7H,若此数      MOVDX,03F0H    INAL,DX    CMPAL,90    JNCNEXT1    MOVAL,0FFH    JMPNEXT2  NEXT1:  MOVAL,00H  NEXT2:  MOVDX,03F7H    OUTDX,AL    HLT  分支程序根据条件是真或假决定执行与否  判断的条件是各种指令,如C

2、MP、TEST等执行后形成的状态标志  转移指令Jcc和JMP可以实现分支控制;还可以采用MASM6.x提供的条件控伪指令实现  单分支程序设计  条件成立跳转,否则顺序执行分支语句体;注意选择正确的条件转移指令和转移目标地址  cmpax,0  jnsnonneg  ;分支条件:AX≥0  negax  ;条件不满足,求补  nonneg:movresult,ax  ;条件满足  例:计算AX的绝对值  双分支程序设计  条件成立跳转执行第2个分支语句体,否则顺序执行第1个分支语句体。注意第1个分支体后一定要

3、有一个JMP指令跳到第2个分支体后  例:显示BX最高位  shlbx,1;BX最高位移入CF  jcone  ;CF=1,即最高位为1,转移  movdl,’0’  ;CF=0,即最高位为0,DL←’0‘  jmptwo;一定要跳过另一个分支体  one:movdl,‘1‘;DL←’1‘  two:movah,2  int21h;显示  movdl,‘0‘;DL←’0‘  shlbx,1;BX最高位移入CF  jnctwo  ;CF=0,最高位为0,转移  movdl,’1’  ;CF=1,最高位为1,DL←

4、’1‘  two:movah,2  int21h;显示  例:显示BX最高位  多分支程序设计  多个条件对应各自的分支语句体,哪个条件成立就转入相应分支体执行。多分支可以化解为双分支或单分支结构的组合例如:  orah,ah;等效于cmpah,0  jzfunction0;ah=0,转向function0  decah;等效于cmpah,1  jzfunction1;ah=1,转向function1  decah;等效于cmpah,2  jzfunction2;ah=2,转向function2  AH=0  

5、fuction0  Y  N  AH=1  fuction1  Y  N  AH=2  fuction2  Y  N  地址表形成多分支  需要在数据段事先安排一个按顺序排列的转移地址表,输入的数字作为偏移量。因为只有2个字节16位偏移地址,所以偏移量需要乘2  关键是要理解间接寻址方式JMP指令  .data  msgdb‘Inputnumber(1~8):’,0dh,0ah,’$’  msg1db‘Chapter1:...’,0dh,0ah,’$’  msg2db‘Chapter2:...’,0dh,0ah

6、,’$‘  ...  msg8db‘Chapter8:...‘,0dh,0ah,’$’  tabledwdisp1,disp2,disp3,disp4  dwdisp5,disp6,disp7,disp8  ;取得各个标号的偏移地址  例:数据段  start1:movdx,offsetmsg;提示输入数字  movah,9  int21h  movah,1;等待按键  int21h  cmpal,’1’;数字8?  jastart1  andax,000fh;将ASCII码转换成数字  decax  shla

7、x,1;等效于addax,ax  movbx,ax  jmptable[bx]  ;(段内)间接转移:IP←[table+bx]  start2:movah,9  int21h  .exit0  disp1:movdx,offsetmsg1;处理程序1  jmpstart2  ..

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。