dispmsg macro message;宏定义字符串调用
        lea dx,message
        mov ah,9
        int 21h
        endm
dispsum macro sum,sum1;宏定义颜色调用
        push bx
        push cx
        mov bh,0
        mov cx,1
        mov ah,09h
        int 10h
        mov bl, sum
        mov cx,sum1
        mov ah,09h
        int 10h
        pop cx
        pop bx
        endm     
data segment
     table db ?
     msg1 db 'please input number(0-7):','$'
     msg2 db '1:juxing 2:yousanjiao  3:zuosanjiao 4:daosanjiaoxing 5:sanjiaoxing 6:youshangsanjiao 7:zuoshangsanjiao 0:exit','$'
     msg4 db '*******************************************************************','$'
data ends
code segment
     assume cs:code,ds:data
start:  mov ax,data
        mov ds,ax       
        mov ax,3;设置显示模式80*25图显 
        int 10h 
        dispsum 10,109
        dispmsg msg2
        call back
t:      dispsum 10,25
        dispmsg msg1
        mov ah,1
        int 21h
        mov bl,al
        call huanhang
        cmp bl,30h
        jz q
        cmp bl,31h
        jz a
        cmp bl,32h
        jz  b
        cmp bl,33h
        jz  j
        cmp bl,34h
        jz d
        cmp bl,35h
        jz e
        cmp bl,36h
        jz f
        cmp bl,37h
        jz g
        jmp t
a:      call juxing
        call huanhang
        jmp t
b:      call yousanjiao
        call huanhang
        jmp t
j:      call zuosanjiao
        call huanhang
        jmp t
d:      call daosanjiaoxing
        call huanhang
        jmp t
e:      call sanjiaoxing 
        call huanhang
        jmp t 
f:      call youshangsanjiao
        call huanhang
        jmp t
g:      call zuoshangsanjiao
        call huanhang
        jmp t                   
q:      mov ax,4c00h
        int 21h
                
;矩形乘法表子程序
juxing  proc  near
        dispsum 1,67
        dispmsg msg4
        call back
        mov al,1
        mov ch,1
        mov bl,al
        mov bh,10d
        mov si,9
x:      mul ch
        div bh
        mov dh,al
        mov cl,ah
        call output
        inc ch
        mov al,bl
        sub si,1
        jnz x
        call back
        inc bl
        mov al,bl
        mov ch,1
        mov si,9
        cmp bl,10
        jnz x
        dispsum 2,67
        dispmsg msg4
        call back
        ret
juxing    endp

;左上三角形乘法表子程序
zuoshangsanjiao proc near
        dispsum 3,67
        dispmsg msg4
        call back
        mov al,9
        mov ch,9
        mov bl,al
        mov bh,bl
n:      mov dh,10d
        mul ch
        div dh
        mov dh,al
        mov cl,ah
        call output
        dec ch
        mov al,bl
        dec bh
        jnz n
        call back
        dec bl
        mov al,bl
        mov ch,bl
        mov bh,bl
        cmp bl,0
        jnz n
        dispsum 4,67
        dispmsg msg4
        call back
        ret
zuoshangsanjiao endp

;右三角形乘法表子程序
yousanjiao proc near
        dispsum 5,67
        dispmsg msg4
        call back
        mov al,1
        mov ch,1
        mov bl,al
        mov bh,bl
        mov dh,56
        mov table,dh
p:      cmp dh,0
        jz  o
        call space
        dec dh
        jnz p       
o:      mov dh,10d
        mul ch
        div dh
        mov dh,al
        mov cl,ah
        call output
        inc ch
        mov al,bl
        dec bh
        jnz o
        call back
        inc bl
        mov al,bl
        mov ch,1
        mov bh,bl
        sub table,7
        mov dh,table
        cmp bl,10
        jnz p
         dispsum 6,67
        dispmsg msg4
        call back
        ret
yousanjiao endp

;右上三角形乘法表子程序
youshangsanjiao proc near
        dispsum 7,67
        dispmsg msg4
        call back
        mov al,9
        mov ch,9
        mov bl,al
        mov bh,bl
        mov dh,0
        mov table,dh
m:      cmp dh,0
        jz  r
        call space
        dec dh
        jnz m   
r:      mov dh,10d
        mul ch
        div dh
        mov dh,al
        mov cl,ah
        call output
        dec ch
        mov al,bl
        dec bh
        jnz r
        call back
        dec bl
        mov al,bl
        mov ch,bl
        mov bh,bl        
        add table,7
        mov dh,table
        cmp bl,0
        jnz m
         dispsum 8,67
        dispmsg msg4
        call back
        ret
youshangsanjiao endp

;倒三角形乘法表子程序
daosanjiaoxing proc near
        dispsum 9,67
        dispmsg msg4
        call back
        mov al,9
        mov ch,9
        mov bl,al
        mov bh,bl
        mov dh,0
        mov table,dh
h:      cmp dh,0
        jz  i
        call space
        dec dh
        jnz h       
i:      mov dh,10d
        mul ch
        div dh
        mov dh,al
        mov cl,ah
        call output
        dec ch
        mov al,bl
        dec bh
        jnz i
        call back
        dec bl
        mov al,bl
        mov ch,bl
        mov bh,bl       
        add table,3
        mov dh,table
        cmp bl,0
        jnz h
         dispsum 10,67
        dispmsg msg4
        call back
       ret
daosanjiaoxing endp

;左三角形乘法表子程序
zuosanjiao   proc  near
         dispsum 11,67
        dispmsg msg4
        call back
        mov al,1
        mov ch,1
        mov bl,al
        mov bh,bl
y:      mov dh,10d
        mul ch
        div dh
        mov dh,al
        mov cl,ah
        call output
        inc ch
        mov al,bl
        dec bh
        jnz y
        call back
        inc bl
        mov al,bl
        mov ch,1
        mov bh,bl
        cmp bl,10
        jnz y
         dispsum 12,67
        dispmsg msg4
        call back
        ret
zuosanjiao endp

;三角形乘法表子程序
sanjiaoxing  proc  near
         dispsum 13,67
        dispmsg msg4
        call back
        mov al,1
        mov ch,1
        mov bl,al
        mov bh,bl
        mov dh,24
        mov table,dh
z:      cmp dh,0
        jz  w
        call space
        dec dh
        jnz z      
w:      mov dh,10d
        mul ch
        div dh
        mov dh,al
        mov cl,ah
        call output
        inc ch
        mov al,bl
        dec bh
        jnz w
        call back
        inc bl
        mov al,bl
        mov ch,1
        mov bh,bl
        sub table,3
        mov dh,table
        cmp bl,10
        jnz z
         dispsum 14,67
        dispmsg msg4
        call back
        ret
sanjiaoxing endp

;打印输出子程序          
output  proc   near
        dispsum 1,1
        add bl,30h
        mov dl,bl
        mov ah,2
        int 21h
        dispsum 2,1
        mov dl,'*'
        mov ah,2
        int 21h
        dispsum 12,1
        add ch,30h
        mov dl,ch
        mov ah,2
        int 21h
        dispsum 10,1
        mov dl,'='
        mov ah,2
        int 21h
        dispsum 11,1
        add dh,30h
        mov dl,dh
        mov ah,2
        int 21h
        dispsum 14,1
        add cl,30h
        mov dl,cl
        mov ah,2
        int 21h
        mov dl,' '
        mov ah,2
        int 21h
        sub bl,30h
        sub ch,30h
        ret
output  endp

;回车换行子程序
back    proc  near
        mov dl,0Ah
        mov ah,2
        int 21h
        mov dl,0Dh
        mov ah,2
        int 21h
        ret
back    endp

;空格子程序
space   proc  near
        push dx
        push ax
        mov dl,' '
        mov ah,2
        int 21h
        pop ax
        pop dx
        ret
space   endp
huanhang proc near
        mov cx,7
v:      call back
        dec cx
        jnz v
        ret
huanhang endp      
code    ends
        end start
大家看一下还有什么需要改进的