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

  • Post author:
  • Post category:其他




结果

九九乘法表



源码

;编制在屏幕上显示九九乘法表的程序。
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 版权协议,转载请附上原文出处链接和本声明。