1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95:
| _Stack Segment Para Stack 'Stack' DB 200h DUP(0) _Stack EndS
_Data1 Segment Word Public 'Data' Zahl1 DB 23h _Data1 EndS
_Data2 Segment Word Public 'Data' Zahl2 DB 56h _Data2 EndS
_Data3 Segment Word Public 'Data' Text DB 'Die Summe ist $' Error DB 'Summe ist zu gross!', 10, 13, '$' _Data3 EndS
_Code1 Segment Word Public 'Code' Assume CS:_Code1, SS:_Stack Start: mov ax, _Data3 mov ds, ax Assume DS:_Data3
call ProcAdd call ProcPrintSum mov ah, 4Ch int 21h ProcAdd PROC near mov ax, _Data1 mov ds, ax assume DS:_Data1 xor bx, bx mov bl, Zahl1 mov ax, _Data2 mov ds, ax assume DS:_Data2 xor ax, ax mov al, Zahl2 add ax, bx ret ProcAdd EndP
ProcPrintSum PROC near cmp ax, 100h jae M_Error mov bl, 10h div bl push ax mov ax, _Data3 mov ds, ax assume DS:_Data3 mov dx, OFFSET Text mov ah, 09h int 21h pop ax push ax mov dl, al add dl, 30h mov ah, 02h int 21h pop ax mov dl, ah add dl, 30h mov ah, 02h int 21h mov dl, 68h int 21h jmp M_Ende M_Error: mov ax, _Data3 mov ds, ax assume DS:_Data3 mov dx, OFFSET Error mov ah, 09h int 21h jmp M_Ende M_Ende: ret ProcPrintSum EndP
_Code1 EndS END Start |