PDA

View Full Version : ضرب 32 بیتی در 8086



هانیس29268
یک شنبه 23 آبان 1389, 18:49 عصر
سلام.
من میخوام 2 عدد 32 بیتی رو در 8086 ضرب کنم.
میدونم که میشه مثل ضرب معمولی هر بار 1 عدد را در اعداد بالا ضرب کنم و دفعه بعد برای ضرب عدد بعدی در اعداد بالا یک شیفت بدمو..........
در نهایت حاصل ها رو با هم جمع کنم.
کدش رو هم ÷یدا کردم ولی نفهمیدم،
کمکم کنید.
خیلی ممنون

xman_1365_x
سه شنبه 09 آذر 1389, 01:20 صبح
كدش در فروم موجود هست
اما سورستون رو بگذاريد و قسمت هايي كه مشكل داريد ذكر كنيد.

samaneh72
یک شنبه 16 آذر 1393, 10:42 صبح
ببخشید این فروم کو؟؟؟؟:متفکر::متفکر::متفکر:: تفکر::متفکر::متفکر:

xman_1365_x
یک شنبه 16 آذر 1393, 21:44 عصر
ببخشید این فروم کو؟؟؟؟:متفکر::متفکر::متفکر:: تفکر::متفکر::متفکر:

منظورم از فروم، تالار برنامه نویس بودش، همونطوری که این تاپیک رو بعد 4 سال زنده کردین ایکاش کمی بیشتر میگشتین میتونستید پیداشون کنید
برای مثال دوتاشون
مشکل در برنامه ضرب دو عدد 32 بیتی!کمک کنید!لطفا (http://barnamenevis.org/showthread.php?337472-%D9%85%D8%B4%DA%A9%D9%84-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%B6%D8%B1%D8%A8-%D8%AF%D9%88-%D8%B9%D8%AF%D8%AF-32-%D8%A8%DB%8C%D8%AA%DB%8C!%DA%A9%D9%85%DA%A9-%DA%A9%D9%86%DB%8C%D8%AF!%D9%84%D8%B7%D9%81%D8%A7)

ضرب 2مقدار 4بایتی ذر هم (http://barnamenevis.org/showthread.php?315986-%D8%B6%D8%B1%D8%A8-2%D9%85%D9%82%D8%AF%D8%A7%D8%B1-4%D8%A8%D8%A7%DB%8C%D8%AA%DB%8C-%D8%B0%D8%B1-%D9%87%D9%85)

شروع کنید به نوشتن اگر مشکلی داشتین سورستون رو قرار بدین و سوالتون رو مطرح کنید، اینکه دنبال سورس آماده باشید جالب نیست!
موفق باشید.

xman_1365_x
یک شنبه 16 آذر 1393, 22:12 عصر
سورسی که نوشته بودم رو پیدا کردم میزارم دوستان استفاده کنند...:لبخندساده:



; multi-segment executable file template.

data segment
; add your data here!
pkey db "press any key...$"
i0 dw 0
i1 dw 0

n0 dw 0
n1 dw 0

x0 dw 0
x1 dw 0
x2 dw 0
x3 dw 0
ends

stack segment
dw 128 dup(0)
ends

code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax



mov i0,0xffff
mov i1,0xffff


mov n0,0xffff
mov n1,0xffff

;1
mov ax,i0
mov bx,n0
mul bx

mov x0,ax
mov x1,dx
;1-2
mov ax,i1
mul bx

clc
add x1,ax
adc x2,0
add x2,dx
adc x3,0
;2
mov ax,i0
mov bx,n1
mul bx

clc
add x1,ax
adc x2,0
add x2,dx
adc x3,0

;2-1
mov ax,i1

mul bx

clc
add x2,ax
adc x2,0
add x3,dx
adc x3,0




lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx

; wait for any key....
mov ah, 1
int 21h

mov ax, 4c00h ; exit to operating system.
int 21h
ends

end start ; set entry point and stop the assembler.



موفق باشید