;自动生成01至99BCD数并送屏幕显示. ;显示格式为: ;01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 ;17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ;33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 ;49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 ;65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 ;81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ;97 98 99 data segment h1 db 20 dup(0) data ends stack segment stack ddd db 100 dup(0) stack ends code segment assume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax mov cl,10 mov bl,0 mov dl,1 ;dl是个位数 loop2:mov al,10 sub al,cl ;al-cl-->al是十位数 add al,30h call z1 push dx add dl,30h mov al,dl call z1 inc bl cmp bl,10h ;回车换行 jnz x2 ;不为零打一空格 mov bl,0 call z3 jmp x3 x2: call z2 x3: pop dx inc dl ;个位数加一 cmp dl,10 jc loop2 ;个位数小于等于9跳转 mov dl,0 ;个位数清零 l1: loop loop2 mov ah,4ch int 21h z1 proc push ax push bx push cx push dx mov dl,al mov ah,2 int 21h pop dx pop cx pop bx pop ax ret z1 endp z2 proc push ax push bx push cx push dx mov dl,20h mov ah,2 int 21h pop dx pop cx pop bx pop ax ret z2 endp z3 proc push ax push bx push cx push dx mov dl,0dh mov ah,2 int 21h mov dl,0ah mov ah,2 int 21h pop dx pop cx pop bx pop ax ret z3 endp code ends end start