+ mov di, waiting
+ call print
+
+ mov di, keystroke
+ mov bl, 1
+
+.loop
+ mov ah, 0
+ int 16h
+ cmp ah, 1Ch
+ je .enterpressed
+ jmp .continue
+ cmp ah, 0Eh
+ je .backspace
+ jmp .continue
+.enterpressed
+ pusha
+ mov ah, 0Eh
+ mov al, 0Dh
+ int 10h
+ mov al, 0Ah
+ int 10h
+ popa
+ jmp .loop
+.backspace
+ pusha
+ mov ah, 03h
+ mov bh, 0
+ int 10h
+ dec dl
+ mov ah, 02h
+ int 10h
+ mov ah, 0Eh
+ mov al, ' '
+ int 10h
+ mov ah, 02h
+ int 10h
+ popa
+ jmp .loop
+.continue
+ mov [keystroke], al
+ call print
+ jmp .loop
+
+printing_numbers db "Printing some random hex numbers", 0
+waiting db "I await keystrokes", 0
+keystroke db "$", 0
+space db " ", 0