bsp; JNC ENTER2
17: CALL SUB2
18: ENTER2:
19: .. ; 如此连续进行八次
显然这种做法其笨无比,第十条以后,可用回路取代:
10: ENTER:
11: MOV CX,8
12: MOV AL,FLAG ; 暂存器较有效
13: OR AL,AL
14: JZ ENTRET ; 不必做
15: SUB BX,BX
16: LOOP0:
17: SHR AL,1
18: JNC LOOP1
19: PUSH AX
20: PUSH BX
21: PUSH CX
22: CALL SUBTB[BX]
23: POP CX
24: POP BX
25: POP AX
26: LOOP1:
27: INC BX
28: INC BX
29: LOOP LOOP0
30: ENTRET:
31: RET
这样好得多了,可是,还能不能再加改进呢?组合语言的妙处就在于变化无穷,且看看是否还能变出花样来。 从设置开始,方式稍微改变一下,旗号的观念是供程式检查用。在应用时,要占用一个暂存器,而暂存器有限,浪费了可惜。此外,八个不同的子程式,又要占用一个计数用的暂存器,最好能够省掉。
因此,设置的重要性就显而易见了,程式的好坏,并非仅仅在于指令的应用。原始的理念,及程式的规划,经常在程式设计之前已经决定了。
我们称之为「预置法」,把前述的设置方式改变一下,用一组缓冲区,先定义如下:
DB
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>