首页 > 代码库 > 汇编语言-显示九九乘法表

汇编语言-显示九九乘法表

1. 题目:以9行9列的形式显示九九乘法表

2. 要求:显示下三角格式如表4.1所示,也可以上三角格式显示。

 1 ; Example assembly language program --
 2 ; Author:  Karllen
 3 ; Date:    revised 05/2014
 4 
 5 .386
 6 .MODEL FLAT
 7 
 8 ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
 9 
10 INCLUDE io.h            ; header file for input/output
11 
12 cr      EQU     0dh     ; carriage return character
13 Lf      EQU     0ah     ; line feed
14 
15 .STACK  4096            ; reserve 4096-byte stack
16         
17 .DATA                   ; reserve storage for data
18       
19        flaj     WORD ?
20        
21        
22        promot   BYTE "The program is to print the 9*9 table",cr,Lf,0
23        crlf     BYTE cr,Lf,0
24        char1    BYTE 1 DUP(?),0
25        char2    BYTE 1 DUP(?),0
26        me       BYTE  1 DUP(?),0
27 
28        mulzs    BYTE 1 DUP(?),0
29        brr      BYTE " ",0
30        sh       BYTE 1 DUP(?),0
31    
32       
33 .CODE                           ; start of main program code
34 _start:
35        mov  mulzs,2Ah
36        mov  me,3Dh
37        mov  bx,0
38        mov  char1,30h
39        doFirstWhile:
40               inc  bx
41               inc  char1
42               cmp  bx,9
43               jg   endFirstWhile
44               mov  flaj,1
45               mov  char2,31h
46               doSecondWhile:
47                    cmp flaj,bx
48                    jg  endSecondWhile
49                        mov    ax,bx
50                        mul    flaj
51                        mov    cx,flaj
52                        
53                        output char1
54                        output mulzs
55                        output char2
56                        output me
57                        cmp  ax,10
58                        jl   FindOne
59                             mov dl,10
60                             div dl
61                             mov sh,al
62                             add sh,0
63                             output sh
64                             mov  sh,ah
65                             add  sh,0
66                             output sh
67                             jmp  endTwo
68                        
69                        FindOne:
70                           mov  sh,al
71                           add  sh,0
72                           output sh
73                        endTwo:
74                           output brr
75                        inc    flaj
76                        inc    char2
77                        jmp    doSecondWhile
78               endSecondWhile:
79                        output crlf
80                        jmp    doFirstWhile  
81        endFirstWhile:
82         INVOKE  ExitProcess, 0  ; exit with return code 0
83 
84 PUBLIC _start                   ; make entry point public
85 
86 END                             ; end of source code

 

 运行结果: