BWPRINT.ASM
上传用户:connie
上传日期:2007-01-08
资源大小:8k
文件大小:2k
源码类别:

图形图象

开发平台:

Asm

  1.     DOSSEG
  2.     .MODEL SMALL
  3.     .386
  4.     .CODE
  5.     GLOBAL  PrintByte:PROC, PrintWord:PROC, PrintBig:PROC
  6.     TextNumBIG  db  "00000"
  7.     TextNum     db  "00000"
  8.     TextNumEnd  db  0,"$"
  9.     
  10. BinToAscII PROC
  11.         mov     bx,10
  12.         mov     si,SEG TextNum
  13.         mov     es,si
  14.         mov     si,offset textnumend-1
  15.         mov     cx,5
  16. DivLoop:
  17.         sub     dx,dx
  18.         div     bx
  19.         add     dl,'0'
  20.         mov     es:[si],dl
  21.         dec     si
  22.         loop    DivLoop
  23.         ret
  24. ENDP BinToAscII
  25. B2ABig PROC
  26.         mov     ebx,10
  27.         mov     si,SEG TextNum
  28.         mov     es,si
  29.         mov     si,offset textnumend-1
  30.         mov     cx,10
  31. DLBig:
  32.         sub     edx,edx
  33.         div     ebx
  34.         add     dl,'0'
  35.         mov     es:[si],dl
  36.         dec     si
  37.         loop    DLBig
  38.         ret
  39. ENDP B2ABig
  40. PrintBig PROC
  41.     pushad
  42.     call    b2aBig
  43.     mov     ax,SEG TextNumBig
  44.     mov     ds,ax
  45.     mov     dx,offset textnumBig
  46.     mov     ah,9
  47.     int     21h
  48.     popad
  49.     ret
  50. ENDP PrintBig
  51. PrintByte PROC
  52.     pusha
  53.     jnc     skipsignb
  54.     xor     ah,ah
  55.     test    al,10000000b
  56.     jz      skipsignb
  57.     neg     al
  58.     push    ax
  59.     mov     ah,2
  60.     mov     dl,"-"
  61.     int     21h
  62.     pop     ax
  63.     jmp     skipb
  64. skipsignb:
  65.     xor     ah,ah
  66.     push    ax
  67.     mov     ah,2
  68.     mov     dl," "
  69.     int     21h
  70.     pop     ax
  71. skipb:
  72.     call    bintoascii
  73.     mov     ax,SEG TextNum
  74.     mov     ds,ax
  75.     mov     dx,offset textnum+2
  76.     mov     ah,9
  77.     int     21h
  78.     popa
  79.     ret
  80. ENDP PrintByte
  81. PrintWord PROC
  82.     pusha
  83.     jnc     skipsignw
  84.     test    ah,10000000b
  85.     jz      skipsignw
  86.     neg     ax
  87.     push    ax
  88.     mov     ah,2
  89.     mov     dl,"-"
  90.     int     21h
  91.     pop     ax
  92.     jmp     skipw
  93. Skipsignw:        
  94.     push    ax
  95.     mov     ah,2
  96.     mov     dl," "
  97.     int     21h
  98.     pop     ax
  99. Skipw:
  100.     call    bintoascii
  101.     mov     ax,SEG TextNum
  102.     mov     ds,ax
  103.     mov     dx,offset textnum
  104.     mov     ah,9
  105.     int     21h
  106.     popa
  107.     ret
  108. ENDP PrintWord
  109.     END
  110.