首地址BASE
SUB1 L SUB1 H SUB2 L SUB2 H
表地址=表首地址+偏移量 偏移量=(k -1)*2 例5.9
k=1,2,3……..n
表地址
SUB3 L SUB3 H
┆
SUBn H SUBn H
1)用跳转表实现多路分支
表首址BASE
E9 SUB1 L SUB1 H E9 SUB2 L
5.2 分支结构
5.2.1 分支程序设计概述 分支程序结构可以有两种形式,如图所示
5.2 分支结构
例5.2 从键盘输入一位数字, 判断其奇偶性,输出一个标 志(0,1)。 1.键盘输入一个字符: MOV AH,01H INT 21H 2.判断奇偶: RCR AL,1 JC EVN
3. 输出一个字符 MOV AH,02H MOV DL,’ ’ INT 21H
5.3 循环结构程序设计
②条件控制 有些情况下,循环次数事先无法确定,但它与问题的某些条 件有关。这些条件可以通过指令来测试。若测试比较的结果 表明满足循环条件,则继续循环,否则结束循环。 [例]:统计AX寄存器中1的个数,并将结果存放在CL寄存器中。 … MOV CL,0 L: AND AX,AX JZ EXIT ;循环结束条件:AX=0 SAL AX,1 ;将AX中的最高位移入CF中 JNC L ;如果CF=0,转L INC CL ;如果CF=1,则(CL)+1→CL JMP L ;转L处继续循环 EXIT:…
JMP SUB1
JMP SUB2 表地址=表首地址+偏移量 偏移量=(k -1)*3 k=1,2,3……..n 例5.10 例5.10R
表地址
SUB2 H E9 SUB3 H SUB3 H ┇ E9 SUBn L SUBn H