الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة ضرورية للغاية

بدأه khlifi في 20 أكتوبر 2010 · 1 رد · 680 مشاهدة · في أرشيف قسم الـــ Assembly
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد كتابة برنامج يقوم المستعمل فيه بادخال 4 اعداد لا يتجاوز الواحد منهم 99 و يقوم البرنامج باستخراج العدد الأكبر و الأصغر ويحسب المعدل

عند تشغيل محاولتي يتم ادخال الأعداد ثم تظهر هذه الرسالة devide overflow

فأين اخطأ ساعدوني بارك اله فيكم -استعمل tasm32


TITLE LIRE
.model small
.stack 100h
.386
.data
N EQU 3
T word 4 dup(0)
dix byte 10
un dw 1
max word 0
min word 99
moy word 0
maxmsg db "the max : $"
minmsg db "the min : $"
moymsg db "average : $"
message DB "write the value : $"
finsaisie DB " --------------------$"
.code
main proc
mov ax,@data
mov ds,ax
mov si,0
debut: cmp si,N
JG TQ
mov ah,9
mov dx,offset message
Int 21h
mov ah,1
Int 21h
mov ah,0
push ax
mov ah,1
Int 21h
MOV AH, 2
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H
mul dix
pop bx
ADD ax,bx
mov T+si,ax
Inc si
JMP debut
TQ:
mov ah,9
mov dx,offset finsaisie
Int 21h
;=======================================
;======== min,max,ave ===============
;=======================================
mov di,0
mov dx,0
pour:
cmp di,N
JG finpour
mov ax,T+di
cmp ax,min
JGE sinon1
mov min,ax
sinon1:
cmp ax,max
JLE sinon2
mov max,ax
sinon2:
add dx,T+di
Inc di
JMP pour
finpour:
mov ax,dx
mov bx,4
div bx
mov moy,ax
;=======================================
;===============output vals=============
;=======================================

mov ah,9
mov dx,offset maxmsg
Int 21h
mov ax,max
mov bx,10
div bl
add al,48
mov bl,ah
add bl,48
mov ah,2
mov dl,al
int 21h
mov dl,bl
MOV AH, 2
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H

mov ah,9
mov dx,offset minmsg
Int 21h
mov ax,min
mov bx,10
div bl
add al,48
mov bl,ah
add bl,48
mov ah,2
mov dl,al
int 21h
mov dl,bl
MOV AH, 2
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H

mov ah,9
mov dx,offset moymsg
Int 21h
mov ax,moy
mov bx,10
div bl
add al,48
mov bl,ah
add bl,48
mov ah,2
mov dl,al
int 21h
mov dl,bl
MOV AH, 2
MOV DL, 0DH
INT 21H
MOV DL, 0AH
INT 21H

mov ax,4c00h
int 21h

main endp
end main

#2

حمل البرنامج إلى debug ومن ثم قم بتنفيذه لتعرف مكان المشكلة.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

مواضيع مشابهة