DOSSEG .MODEL SMALL .386 .CODE GLOBAL PrintByte:PROC, PrintWord:PROC, PrintBig:PROC TextNumBIG db "00000" TextNum db "00000" TextNumEnd db 0,"$" BinToAscII PROC mov bx,10 mov si,SEG TextNum mov es,si mov si,offset textnumend-1 mov cx,5 DivLoop: sub dx,dx div bx add dl,'0' mov es:[si],dl dec si loop DivLoop ret ENDP BinToAscII B2ABig PROC mov ebx,10 mov si,SEG TextNum mov es,si mov si,offset textnumend-1 mov cx,10 DLBig: sub edx,edx div ebx add dl,'0' mov es:[si],dl dec si loop DLBig ret ENDP B2ABig PrintBig PROC pushad call b2aBig mov ax,SEG TextNumBig mov ds,ax mov dx,offset textnumBig mov ah,9 int 21h popad ret ENDP PrintBig PrintByte PROC pusha jnc skipsignb xor ah,ah test al,10000000b jz skipsignb neg al push ax mov ah,2 mov dl,"-" int 21h pop ax jmp skipb skipsignb: xor ah,ah push ax mov ah,2 mov dl," " int 21h pop ax skipb: call bintoascii mov ax,SEG TextNum mov ds,ax mov dx,offset textnum+2 mov ah,9 int 21h popa ret ENDP PrintByte PrintWord PROC pusha jnc skipsignw test ah,10000000b jz skipsignw neg ax push ax mov ah,2 mov dl,"-" int 21h pop ax jmp skipw Skipsignw: push ax mov ah,2 mov dl," " int 21h pop ax Skipw: call bintoascii mov ax,SEG TextNum mov ds,ax mov dx,offset textnum mov ah,9 int 21h popa ret ENDP PrintWord END