九九乘法表

程序里每一个结果都是通过累加求得,输出每一个算式,显示出来。

程序中,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     
View Code

 

你可能感兴趣的:(表)