السلام عليكم برنامج لجمع عددين الذي سبق ان سأل عنه ومبادرة احد الاخوان فيه المسااعده ارجوو مساعدتي في سؤاالي؟؟
page 60,132
.MODEL SMALL
.STACK 100H
.DATA
PROMPT_1 DB 'Enter The Decimal Number : $'
PROMPT_2 DB 'Enter The Decimal second Number : $'
k DB 0DH,0AH,'The sum is : $'
MSG dw ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AH,9
LEA DX,PROMPT_1
INT 21H
CALL INPUT_DECIMAL
PUSH AX
MOV AH,9
LEA DX,PROMPT_2
INT 21H
CALL f
PUSH dx
MOV AH,9
LEA DX,k
INT 21H
add ax,dx
add ax,30h
MOV Ah,2
mov dx,ah
INT 21H
MOV Ah,2
mov dl,al
INT 21H
POP AX
pop dx
MOV Ax,4C00H
INT 21H
MAIN ENDP
INPUT_DECIMAL PROC
@BEGIN:
XOR CX,CX
XOR BX,BX
MOV AH,1
INT 21H
CMP AL,0DH
JE @END_INPUT
CMP AL,'-'
JE @MINUS
CMP AL,'+'
JE @PLUS
JMP @INPUT
@MINUS:
MOV CX,1
@PLUS :
INT 21H
@INPUT:
CMP AL,'0'
JL @ERROR
CMP AL,'9'
JG @ERROR
AND AX,000FH
PUSH AX
MOV AX,10
MUL BX
POP BX
ADD BX,AX
MOV AH,1
INT 21H
CMP AL,0DH
JE @END_INPUT
JMP @INPUT
@END_INPUT:
MOV AX,BX
CMP CX,1
JNE @NEXT
NEG AX
@NEXT:
RET
@ERROR:
MOV AH,2
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
JMP @BEGIN
INPUT_DECIMAL ENDP
f PROC
@B:
XOR CX,CX
XOR BX,BX
MOV AH,1
INT 21H
CMP AL,0DH
JE @EN
CMP AL,'-'
JE @MINUS
CMP AL,'+'
JE @PLUS
JMP @I
@M:
MOV CX,1
@P :
INT 21H
@I:
CMP AL,'0'
JL @ER
CMP AL,'9'
JG @ERROR
AND AX,000FH
PUSH dx
MOV dx,10
MUL BX
POP BX
ADD BX,dx
MOV AH,1
INT 21H
CMP AL,0DH
JE @EN
JMP @I
@EN:
MOV dx,BX
CMP CX,1
JNE @NEXT
NEG dx
@NEX:
RET
@ER:
MOV AH,2
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
JMP @B
f ENDP
RET
END MAINالبرنامج تطبق لكن كود ناتج الجمع غير صحيح؟
ينتج رموز؟؟
