分支程序设计

分支程序设计

ID:20680832

大小:317.00 KB

页数:13页

时间:2018-10-14

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

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

1、分支程序设计  分支程序的基本思想是根据逻辑判断的结果来形成程序的分支,如图,若A成立,则执行P1;否则执行P2。  分支程序有两种基本结构,如图所示。    它们分别相当于高级语言中的IF_THEN_ELSE语句和CASE语句,适用于要求根据不同条件作不同处理的情况。IF_THEN_ELSE语句可以引出两个分支,CASE语句则可以引出多个分支,不论哪一种形式,它们的共同特点是:运行方向是向前的,在某一种特定条件下,只能执行多个分支中的一个分支。    例1  试编写程序段,实现符号函数。  分析:变量X的符号函数可表示为:  程序可通过对符号标志的判别来确定执行哪

2、一分支。  START: MOV AX,BUFFER  ;(BUFFER)=X  OR  AX,AX  JE  ZERO       ;X=0,则转ZERO  JNS  PLUS      ;X为正数,则转PLUS  MOV BX,0FFFFH   ;X为负数,则-1送BX  JMP  CONT1  ZERO:  MOV BX,0  JMP  CONT1  PLUS:  MOV BX,1  CONT1:   ……  例2  利用表实现分支。根据AL中各位被置位情况,控制转移到8个子程序P1~P8之一中去。转移表的结构如表1所示。  分析:对于这种程序关键要找出每种情

3、况的转移地址,从图中可见表地址=表基地址+偏移量, 而偏移量可由AL各位所在位置*2求得。  表1 子程序R1—R8的入口地址表  P1  子程序R1的入口偏移地址  P2  子程序R2的入口偏移地址  P3  子程序R3的入口偏移地址  ……  ……  …….  ……  P7  子程序R7的入口偏移地址  P8  子程序R8的入口偏移地址  DATA  SEGMENT  BASE  DW  SR0,SR1,SR2,SR3,     SR4,SR5,SR6,SR7  DATA  ENDS  CODE  SEGMENT              ASSUME CS:C

4、ODE,DS:DATA,ES:DATA  BEGIN:  PUSH DS  XOR AX,AX  PUSH  AX  MOV AX,DATA               MOV DS,AX              LEA BX,BASE ;表头送BX  IN  AL,PORT           GETBIT: RCR   AL,1  ;右移一位  JC  GETAD  ;移出位是1?  INC  BX  INC   BX   ;修改指针  JMP  GETBI    GETAD: JMP  WORD PTR[BX] ;实现散转  CODE  ENDS      

5、              END  BEGIN  例3  将内存中某一区域的原数据块传送到另一区域中。  分析:这种程序若源数据块与目的数据块之间地址没有重叠,则可直接用传送或串操作实现;若地址重叠,则要先判断源地址+数据块长度是否小于目的地址,若是,则可按增量方式进行,否则要修改指针指向数据块底部,采用减量方式传送。程序如下:  DATA  SEGMENT  STR   DB 1000DUP(?)  STR1  EQU STR+7  STR2  EQU STR+25  STRCOUNT EQU 50  DATA  ENDS  STACK  SEGMENT PAR

6、A  STACK  ‘STACK’  STAPN  DB  100DUP(?)  STACK  ENDS  CODE  SEGMENT  ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK  GOO   PROC  PUSH DS  SUB  AX,AX  PUSH AX  MOV AX,DATA  MOV DS,AX  MOV ES,AX  MOV AX,STACK  MOV SS,AX  MOV CX,STRCOUNT  MOV SI,STR1  MOV DI,STR2  CLD  PUSH SI  ADD SI,STRCOUNT-1

7、  CMP SI,DI  POP  SI  JL  OK  STD  ADD SI,STRCOUNT-1  ADD DI,STRCOUNT-1  OK:  REP  MOVSB  RET  GOO  ENDP  CODE  ENDS  END GOO                cseg  segment  main proc  near  assume cs:cseg, ds:data  start:  mov  ax,dseg  mov  ds,ax      exit:  mov  ax,4c00h  int  21h  main  endp  cseg

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

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

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