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