![]() |
#2
wisji82010-10-25 12:47
|

DATA SEGMENT
C10 DB 10
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV CX,9
MOV BH,0
_BH: INC BH
MOV BL,0
_BL: MOV DL,BH;输出i
ADD DL,30H
MOV AH,02H
INT 21H
INC BL
MOV DL,2AH;输出*
MOV AH,02H
INT 21H
MOV DL,BL;输出j
ADD DL,30H
MOV AH,02H
INT 21H
MOV DL,3DH;输出=
MOV AH,02H
INT 21H
PUSH CX ;求结果,按十进制输出
XOR CX,CX
MOV AL,BH
MUL BL
CMP AX,10
JGE DODIV;跳过对齐的空格
PUSH AX
;PUSH DX
MOV DL,20H
MOV AH,02H
INT 21H
;POP DX
POP AX
DODIV: DIV C10
PUSH AX
INC CX
XOR AH,AH
CMP AL,0
JNZ DODIV
SHOW_R: POP DX
XCHG DH,DL
ADD DL,30H
MOV AH,02H
INT 21H
;cmp cx,1
;je sp_1
;mov dl,20h
;mov ah,02h
;int 21h
;sp_1: mov dl,20h
;mov ah,02h
;int 21h
LOOP SHOW_R
POP CX
MOV DL,20H
MOV AH,02H
INT 21H
CMP BL,BH
JE DPCRLF;是否要输出回车换行
JMP _BL;回到内层循环
DPCRLF: MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
LOOP _BH;回到外层循环
MOV AH,4CH
INT 21H
;SP_S PROC
; RET
;SP_S ENDP
CODE ENDS
END START
我发现些程序的时候,有些地方是可以用子程序替代的。我想是否可以都换成子程序?换成子程序调用的话是不是会拖慢程序执行的时间? C10 DB 10
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV CX,9
MOV BH,0
_BH: INC BH
MOV BL,0
_BL: MOV DL,BH;输出i
ADD DL,30H
MOV AH,02H
INT 21H
INC BL
MOV DL,2AH;输出*
MOV AH,02H
INT 21H
MOV DL,BL;输出j
ADD DL,30H
MOV AH,02H
INT 21H
MOV DL,3DH;输出=
MOV AH,02H
INT 21H
PUSH CX ;求结果,按十进制输出
XOR CX,CX
MOV AL,BH
MUL BL
CMP AX,10
JGE DODIV;跳过对齐的空格
PUSH AX
;PUSH DX
MOV DL,20H
MOV AH,02H
INT 21H
;POP DX
POP AX
DODIV: DIV C10
PUSH AX
INC CX
XOR AH,AH
CMP AL,0
JNZ DODIV
SHOW_R: POP DX
XCHG DH,DL
ADD DL,30H
MOV AH,02H
INT 21H
;cmp cx,1
;je sp_1
;mov dl,20h
;mov ah,02h
;int 21h
;sp_1: mov dl,20h
;mov ah,02h
;int 21h
LOOP SHOW_R
POP CX
MOV DL,20H
MOV AH,02H
INT 21H
CMP BL,BH
JE DPCRLF;是否要输出回车换行
JMP _BL;回到内层循环
DPCRLF: MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
LOOP _BH;回到外层循环
MOV AH,4CH
INT 21H
;SP_S PROC
; RET
;SP_S ENDP
CODE ENDS
END START