程序里每一个结果都是通过累加求得,输出每一个算式,显示出来。
程序中,BH存储被乘数,BL存储乘数,CX存储结果。
1 TITLE X99 2 DATA SEGMENT 3 VA DB ?,'*',?,'=',?,?,?,?,'$' 4 DATA ENDS 5 6 STACK1 SEGMENT STACK 7 DW 20H DUP(0) 8 STACK1 ENDS 9 10 CODE SEGMENT 11 ASSUME CS:CODE,DS:DATA,SS:STACK1 12 START: MOV AX,DATA 13 MOV DS,AX ;DS装入 14 MOV BH,31H 15 MOV BL,31H 16 J0: MOV CL,30H 17 MOV CH,30H ;初始化被乘数,乘数以及结果 18 J1: CMP BH,BL ;判断是否到一行的最后一个算式 19 JZ J2 20 MOV VA,BH 21 MOV VA[2],BL 22 ADD CL,BL ;用累加代替乘法 23 MOV AX,CX ;存储上次计算的结果 24 AAA ;BCD码校正 25 ADD AL,30H 26 MOV CX,AX 27 MOV VA[4],AH 28 MOV VA[5],AL 29 MOV VA[6],20H ;空格 30 MOV VA[7],20H 31 INC BH 32 MOV DX,OFFSET VA ;输出字符串(9号中断) 33 MOV AH,09H 34 INT 21H 35 JMP J1 36 J2: MOV VA,BH 37 MOV VA[2],BL 38 ADD CL,BL 39 MOV AX,CX 40 AAA 41 ADD AL,30H 42 MOV CX,AX 43 MOV VA[4],AH 44 MOV VA[5],AL 45 MOV VA[6],0AH 46 MOV VA[7],0DH 47 MOV DX,OFFSET VA 48 MOV AH,9H 49 INT 21H 50 CMP BL,39H 51 JZ J3 52 INC BL 53 MOV BH,31H 54 JMP J0 55 J3: MOV AH,4CH ;return DOS 56 INT 21H 57 CODE ENDS 58 END START 59