PDA

View Full Version : مشکل در ضرب داخلی دو بردار



marziehk
سه شنبه 22 دی 1394, 21:55 عصر
سلام
این برنامه رو برای ضرب داخلی دو بردار نوشتم. در حالتی که اعداد کمی از ماکزیمم مقدار کمتر باشند مشکلی نیست مشکلم اینه که اگر اعداد مختصات رو هر کدومو 8 بیتی فرض کنیم در ماکزیمم حالت 255 می تونن باشن که در نتیجه جواب تو خونه ای از نوع کلمه ی مضاغف باید ذخیره بشه چون جواب از مقدار 16 بیت بیشتر میشه. میشه کمکم کنید برنامه رو جوری تغییر بدم که هم برای اعداد کوچیک و هم برای عدد ماکزیمم جواب بده اگر کلا چیزی که نوشتم به نظر اشتباه میابد یا راه بهتری هست میشه بگید. تشکر

dseg segment
VECTOR_A DB 255 , 255, 255
VECTOR_B DB 255, 255, 255
RESULT DD 0
dseg ends
;----------------------------------
cseg segment
assume cs:cseg,ds:dseg
start: mov AX, dseg
mov DS,AX



mov al, VECTOR_A
mul VECTOR_B
add RESULT,ax

mov al, VECTOR_A+1
mul VECTOR_B+1
add RESULT,ax

mov al, VECTOR_A+2
mul VECTOR_B+2
add RESULT,ax
mov bx,RESULT

mov ax,4c00h
int 21h
cseg ends
end start