【摘要】: 利用表实现分支。根据AL中各位被置位情况,控制转移到8个子程序R1~R8之一中去。分析 对于这种程序,关键要找出每种情况的转移地址,从图中可见表地址=表基地址+偏移量,而偏移量可由AL各位所在位置*2求得。其流程图见图4-7。
4.3.3 多分支程序设计
多分支结构相当于高级语言的CASE语句。下面结合具体实例,说明多分支程序的设计方法。
【例4-7】 利用表实现分支。根据AL中各位被置位情况,控制转移到8个子程序R1~R8之一中去。转移表的结构如表4-1所示。
表4-1 子程序R1~R8的入口地址表
分析 对于这种程序,关键要找出每种情况的转移地址,从图中可见表地址=表基地址+偏移量,而偏移量可由AL各位所在位置*2求得。其流程图见图4-7。
图4-7 多分支流程图
DATA SEGMENT
BUF DW SR0,SR1,SR2,SR3,SR4,SR5,SR6,SR7
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA BX,BUF ;表头送BX
IN AL,PORT;从PORT端口取状态
AGAIN:RCRAL,1;右移一位
JC SB;移出位是1?
INC BX
INC BX;修改指针
JMP AGAIN
SB:JMP WORD PTR[BX];实现散转
SR0:… ;P0段的入口地址
SR1:…;P1段的入口地址
SR7:…;P7段的入口地址
MOV AH,4CH
INT 21H
CODE ENDS
END START
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。