二、程式要条理通顺
1,在比较判断的过程中,邻近值不必连比。 CMP AL,0 JE ABCD0 CMP AL,1 JE ABCD1 CMP AL,2 JE ABCD2 .. 应为: CMP AL,1 JNE ABCD0 ABCD1: .. 在标题为ABCD0 中,再作: JA ABCD2 这种做法端视时间效益而定,似此 ABCD1之速度最快。
2,未经慎思的流程: ADD AX,4 ABCD: STOSW ADD AX,4 ADD DI,2 LOOP ABCD .. 稍稍动点脑筋,就好得多了: ABCD: ADD AX,4 STOSW INC DI INC DI LOOP ABCD ..
3,错误的处理方式: MOV BX,SI ABCD: MOV BX,[BX] OR BX,BX JZ ABCD1 MOV SI,BX JMP ABCD ABCD1: LODSW .. 上例应该写成: MOV BX,SI ABCD: LODSW OR AX,AX JZ ABCD1 MOV SI,BX JMP ABCD ABCD1: ..
4,错误的流程: TEST AL,20H JNZ ABCD CALL CDEF[BX] JMP SHORT ABCD1 ABCD: CALL CDEF[BX+2] ABCD1: .. 应该写成: TEST AL,20H JZ ABCD INC BX INC BX ABCD: CALL CDEF[BX] ABCD1: ..
5,下面是时间的损失: PUSH DI MOV CX,BX REP STOSB POP DI PUSH,POP 很费时间,应为: MOV CX,BX REP STOSB SUB DI,BX 同理,很多时候稍稍想一下,就可省下一些指令: PUSH CX REP MOVSB POP CX SUB DX,CX 为什么不干脆些? SUB DX,CX REP MOVSB <  
1/2 1 2 下一页 尾页 |