Add a few toys
This commit is contained in:
66
debug.asm
Normal file
66
debug.asm
Normal file
@@ -0,0 +1,66 @@
|
||||
BITS 16
|
||||
CPU 8086
|
||||
|
||||
org 0x7000
|
||||
|
||||
_start:
|
||||
jmp main
|
||||
|
||||
hexdigits:
|
||||
db "0123456789abcdef"
|
||||
|
||||
putc:
|
||||
push bx
|
||||
push bp
|
||||
mov ah, 0x0e
|
||||
xor bh, bh
|
||||
int 0x10
|
||||
pop bp
|
||||
pop bx
|
||||
ret
|
||||
|
||||
printnibble:
|
||||
push si
|
||||
push bx
|
||||
mov si, hexdigits
|
||||
xor bh, bh
|
||||
mov bl, al
|
||||
and bl, 0xf
|
||||
mov al, cs:[si+bx]
|
||||
call putc
|
||||
pop bx
|
||||
pop si
|
||||
ret
|
||||
|
||||
printi8:
|
||||
push bx
|
||||
mov bl, al
|
||||
mov cl, 4
|
||||
shr al, cl
|
||||
call printnibble
|
||||
mov al, bl
|
||||
call printnibble
|
||||
pop bx
|
||||
ret
|
||||
|
||||
printi16:
|
||||
push bx
|
||||
mov bx, ax
|
||||
mov al, ah
|
||||
call printi8
|
||||
mov al, bl
|
||||
call printi8
|
||||
pop bx
|
||||
ret
|
||||
|
||||
main:
|
||||
mov bp, sp
|
||||
mov si, [bp+4]
|
||||
mov si, [si]
|
||||
mov ax, [si]
|
||||
call printi16
|
||||
mov al, 0x0d
|
||||
call putc
|
||||
mov al, 0x0a
|
||||
call putc
|
||||
retf 2
|
Reference in New Issue
Block a user