MAIN SEGMENT ASSUME CS:MAIN,DS:MAIN,ES:MAIN,SS:MAIN ORG 0100h START: MOV CX,5h LOOPS: PUSH CX CALL GETTING CALL PRINTING POP CX DEC CX JCXZ EXIT JMP LOOPS EXIT: INT 20h ;Getting the character GETTING PROC MOV AH,0h INT 16h MOV KEY,AL CMP KEY,61h JGE CONVERT RET GETTING ENDP ;Converting the character CONVERT: SUB KEY,20h RET ;Printing the character PRINTING PROC MOV AH,2h CMP KEY,53h ; S == Z JE ITS_S CMP KEY,41h ; A == 4 JE ITS_A CMP KEY,46h ; F == PH JE ITS_F CMP KEY,45h ; E == 3 JE ITS_E CMP KEY,49h ; I == 1 JE ITS_I CMP KEY,54h ; T == 7 JE ITS_T CMP KEY,4Fh ; O == 0 JE ITS_O CMP KEY,4Ch ; L == | JE ITS_L CMP KEY,50h ; PH == F JE ITS_P CMP KEY,8h ; BACKSPACE JE BACKSPACE MOV DL,KEY ; DEFAULT INT 21h RET PRINTING ENDP ITS_S: MOV DL,5Ah INT 21h RET ITS_A: MOV DL,34h INT 21h RET ITS_F: MOV DL,50h INT 21h MOV DL,48h INT 21h RET ITS_I: MOV DL,31h INT 21h RET ITS_T: MOV DL,37h INT 21h RET ITS_O: MOV DL,30h INT 21h RET ITS_L: MOV DL,7Ch INT 21h RET ITS_P: PUSH AX CALL GETTING POP AX CMP KEY,48h JE ITS_H MOV DL,50h INT 21h CALL PRINTING RET ITS_H: MOV DL,46h INT 21h RET ITS_E: PUSH AX CALL GETTING POP AX MOV DL,33h INT 21h CMP KEY,41h JE ITS_EA CALL PRINTING RET ITS_EA: MOV DL,33h INT 21h RET BACKSPACE: MOV DL,KEY INT 21h MOV DL,20h INT 21h MOV DL,KEY INT 21h POP CX INC CX PUSH CX RET KEY DB ? MAIN ENDS END START