汇编语言——输出九九乘法表

结果

汇编语言——输出九九乘法表_第1张图片

源码

;编制在屏幕上显示九九乘法表的程序。
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

你可能感兴趣的:(汇编语言)