BITS 16 mov bl, 0xFA .repeat: in al, 0x60 cmp al, bl je .repeat mov bl, al cmp al, 0x1E je .a cmp al, 0x30 je .b cmp al, 0x2E je .c cmp al, 0x20 je .d cmp al, 0x12 je .e cmp al, 0x21 je .f cmp al, 0x22 je .g cmp al, 0x23 je .h cmp al, 0x17 je .i cmp al, 0x24 je .j cmp al, 0x25 je .k cmp al, 0x26 je .l cmp al, 0x32 je .m cmp al, 0x31 je .n cmp al, 0x18 je .o cmp al, 0x19 je .p cmp al, 0x10 je .q cmp al, 0x13 je .r cmp al, 0x1F je .s cmp al, 0x14 je .t cmp al, 0x16 je .u cmp al, 0x2F je .v cmp al, 0x11 je .w cmp al, 0x2D je .x cmp al, 0x15 je .y cmp al, 0x2C je .z cmp al, 0x39 je .space jmp .repeat .a mov cl, 41h jmp .print .b mov cl, 0x42 jmp .print .c mov cl, 0x43 jmp .print .d mov cl, 0x44 jmp .print .e mov cl, 0x45 jmp .print .f mov cl, 0x46 jmp .print .g mov cl, 0x47 jmp .print .h mov cl, 0x48 jmp .print .i mov cl, 0x49 jmp .print .j mov cl, 0x4A jmp .print .k mov cl, 0x4B jmp .print .l mov cl, 0x4C jmp .print .m mov cl, 0x4D jmp .print .n mov cl, 0x4E jmp .print .o mov cl, 0x4F jmp .print .p mov cl, 0x50 jmp .print .q mov cl, 0x51 jmp .print .r mov cl, 0x52 jmp .print .s mov cl, 0x53 jmp .print .t mov cl, 0x54 jmp .print .u mov cl, 0x55 jmp .print .v mov cl, 0x56 jmp .print .w mov cl, 0x57 jmp .print .x mov cl, 0x58 jmp .print .y mov cl, 0x59 jmp .print .z mov cl, 0x5A jmp .print .space mov cl, 0x20 jmp .print .print mov al, cl mov ah, 0x0E int 0x10 jmp .repeat times 510-($-$$) db 0 dw 0xAA55