بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته واسعد الله اوقاتكم بكل خير ..
بما اني مبتدئة في لغة الأسمبلي طُلب منّي :
اقتباسWrite a program which reads two digits such that second digit isless than the first digit, computes and display their difference ( using Variables ).
لا اريد ان اطيل عليكم المطلوب هو معرفة الغلط الغريب في برنامجي هذا :
وهو عند إدخالي للأرقام وطرحها تظهر لي علامة $ هناك مشكلة في طرح الأرقام او اسماء الرجستر التي قمت بتخزين الارقام بها !!!
.MODEL SMALL .STACK 100H .DATA MSG1 DB 'ENTER FIRST DIGIT:$' MSG2 DB 'ENTER SECOND DIGIT:$' MSG3 DB 'DIFFERENCE OF TWO DIGITS IS:$' .CODE MAIN PROC ;INTILAIZE DS MOV AX,@DATA MOV DS,AX ;DISPLAY MSG1 LEA DX,MSG1;GET MSG1 MOV AH,9;DISPLAY STRING INT 21H;DISPLAY MSG1 ;READ DIGIT MOV AH,1;READ DIGIT1 mov BH,AL INT 21h ;new line MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ;DISPLAY MSG2 LEA DX,MSG2;GET MSG2 MOV AH,9;DISPLAY STRING INT 21H;DISPLAY MSG2 ;READ DIGIT2 MOV AH,1;READ DIGIT2 mov BL,AL INT 21h ;new line MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H LEA DX,MSG3;GET MSG3 MOV AH,9;DISPLAY STRING INT 21H;DISPLAY MSG3 sub BH,BL mov AH,2 mov DL,AL INT 21h MOV AH,4CH INT 21H MAIN ENDP END MAIN

عملت كود آخر , لكن الغلط فيه انه لا يُظهر لي نتيجة الطرح !
.MODEL SMALL .STACK 100H .DATA MSG1 DB 'ENTER FIRST DIGIT:$' MSG2 DB 'ENTER SECOND DIGIT:$' MSG3 DB 'DIFFERENCE OF TWO DIGITS IS:$' .CODE MAIN PROC ;INTILAIZE DS MOV AX,@DATA MOV DS,AX ;DISPLAY MSG1 LEA DX,MSG1;GET MSG1 MOV AH,9;DISPLAY STRING INT 21H;DISPLAY MSG1 ;READ DIGIT MOV AH,1;READ DIGIT1 INT 21h MOV BH,AL MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ;DISPLAY MSG2 LEA DX,MSG2;GET MSG2 MOV AH,9;DISPLAY STRING INT 21H;DISPLAY MSG2 ;READ DIGIT2 MOV AH,1;READ DIGIT2 INT 21h MOV BL,al MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H MOV AH,2 SUB BH,BL MOV CX,Ax LEA DX,MSG3;GET MSG3 MOV AH,9;DISPLAY STRING INT 21H;DISPLAY MSG3 MOV AH,2 MOV DX,CX INT 21h MOV AH,4CH INT 21H MAIN ENDP END MAIN
