include Makros.asm assume cs:code, ds:data, ss:stapel CR equ 13 LF equ 10 data segment eingabe db '00000$' ausgabe db '00000$' zehn dw 10 text1 db CR,LF, 'Zahl eingeben (0...65535): $' text2 db CR,LF, 'Eingegebene Zahl + 1 : $' CR_LF db CR,LF, '$' data ends stapel segment stack 'stack' db 100h dup(?) stapel ends code segment Start: mov ax, data mov ds, ax ClrScr Display_String text1 call einlesen cmp si, 0 je Ende call ascii_zu_zahl add ax, 1 call zahl_zu_ascii Display_String text2 Display_String ausgabe Ende: Display_String CR_LF Terminate_Program einlesen proc mov cx, 5 mov si, 0 Lies: Read_KBD_and_Echo cmp al, CR je End_ein mov [eingabe[si]], al inc si loop Lies End_ein: ret einlesen endp ascii_zu_zahl proc mov cx, si mov si, 0 mov ax, 0 Umwandeln1: mul zehn mov bl, [eingabe[si]] and bx, 000FH ; add ax, bx inc si loop Umwandeln1 ret ascii_zu_zahl endp zahl_zu_ascii proc mov cx, si inc cx mov bx, cx Umwandeln2: div zehn add dl, 48 mov [ausgabe[si - 1]], dl mov dx, 0 dec si loop Umwandeln2 mov [ausgabe[bx - 1]], '$' ret zahl_zu_ascii endp code ends end Start