مرحبا
برنامج يعمل تمام ، مهمته المقارنة بين عدد صحيح وبين مصفوفة بحيث حين يجد الرقم نفسه في المصفوفة يعيد قيمة المسجل bx بمعنى اخر ترتيب الرقم في المصفوفة ثم نقلت قيمة هذا المسجل إلى المتغير m أريد من البرنامج ان يتوقف حين يجد الرقمين المتشابهين لكنه لا يتوقف ويعيد القيمة 5 بدلا من 4 ،، البرنامج بسيط جدا جدا اتمنى ان تساعدوني لمعرفة المشكلة في الكود ..
org 100h
mov cx,5
mov ax,0
mov bx,0
next: add al,array[bx]
cmp al,4 ; we assume4 but we can change it..
je final
mov ax,0
inc bx
loop next
final : mov dl,bl
mov m,dl
ret
;data
array1 db 1,2,3,4,0
m db ?
retوهذا كود اخر لتحسين مصفوفة ، إن كان لديكم اقتراحات لتحسينه او جعله يكون من خلال intruppts
org 100h mov cx,5 mov ax,0 mov bx,0 next: add al ,array1[bx] add al,array2[bx] mov sum[bx],al mov ax,0 inc bx loop next ;data array1 db 1,2,3,4,5 array2 db 4,3,1,5,8 sum db ?,?,?,?,? ret
ملاحظة : انا استخدم برنامج emu8086