结果
源码
;编制在屏幕上显示九九乘法表的程序。
DATA SEGMENT
RES DB 3 DUP(0)
PR DB 00H,'*',00H,'=', 2 DUP(2),' ','$' ;结果
LINE DB 0DH,0AH,'$' ;换行
IPP DW 0000H ;IP
DATA ENDS
STACK SEGMENT
DB 20 DUP(0)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV CX,0009H
;行循环
L1: MOV DH,0AH
SUB DH,CL ;DH存储该行最大列数
MOV DL,01H ;DL存储当前列数
MOV AL,DH
AND AX,00FFH
;列循环
L2: CMP DL,DH
JA NEXT
PUSH DX ;列数
PUSH CX ;行数
PUSH AX ;被乘数
PUSH DX ;乘数
MOV AL,DH
MUL DL
PUSH AX ;结果
CALL NUM
POP CX ;行数
POP DX ;列数
INC DL
JMP L2
NEXT: MOV DX,OFFSET LINE
MOV AH,09H
INT 21H
LOOP L1
MOV AH,4CH
INT 21H
NUM PROC
POP IPP ;主函数地址
POP DX ;结果
MOV AX,DX
MOV BL,0AH
DIV BL
ADD AX,3030H
MOV PR+4,AL
MOV PR+5,AH
POP AX ;乘数
AND AL,0FH
ADD AL,30H
MOV PR+2,AL
POP AX ;被乘数
AND AL,0FH
ADD AL,30H
MOV PR,AL
;输出
MOV DX,OFFSET PR
MOV AH,09H
INT 21H
PUSH IPP
RET
NUM ENDP
CODE ENDS
END START
版权声明:本文为The_Only_God原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。