home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
magazine
/
progjour
/
1991
/
04
/
putbytes.asm
< prev
next >
Wrap
Assembly Source File
|
1991-04-17
|
1KB
|
59 lines
title put multiple bytes
include asm.inc
public put_multiple_bytes
.code
extn putchar,putchar_space,put_hex_byte,putchar_newline
;; put multiple bytes
;
; entry CX byte count
; DS:SI byte pointer
; uses AX,CX,SI
;
put_multiple_bytes proc
jcxz pmb9 ; if no bytes to display
pmb1: cmp cx,16
jbe pmb2 ; if <16 bytes, display and return
push cx ; else display next 16 bytes
mov cx,16
call pmb2
pop cx
sub cx,16
jmp pmb1 ; and continue
pmb2: push dx ; display bytes in hex
mov dx,cx
pmb3: lodsb
call put_hex_byte
mov al,' '
call putchar
loop pmb3
sub si,dx
mov cx,16 ; space over so ASCII lines up
sub cx,dx
jcxz pmb5
pmb4: call putchar_space
call putchar_space
call putchar_space
loop pmb4
pmb5: mov cx,dx ; display bytes in ASCII
pmb6: lodsb
cmp al,' ' ; use period for control characters
jb pmb7
cmp al,'~'
jbe pmb8
pmb7: mov al,'.'
pmb8: call putchar
loop pmb6
call putchar_newline
pop dx
pmb9: ret
put_multiple_bytes endp
end