PDA

View Full Version : جزر در اسمبلی



kiuhnmgtrdcv
دوشنبه 22 تیر 1388, 21:08 عصر
چند وقت پیش با یکی از دوستان اقای tdkhakpour در مورد جزر گرفتن در اسمبلی سوال کردم نتیجه تاپیک این کد شد ولی اون موقع من از کد تست نگرفتم الان امتحان کردم دیدم اشتباهه لطفا این کد تصحیح کنید

mov dw,64
mov bx,num
l1:
shr bx,1
mov dx,0
mov ax,bx
mul ax
cmp bx,0
je exit
cmp ax,num
ja l1

tdkhakpur
دوشنبه 22 تیر 1388, 21:51 عصر
سلام


mov dw,64
mov bx,num
l1:
shr bx,1
mov dx,0
mov ax,bx
mul ax
cmp bx,0
je exit
cmp ax,num
ja l1

من کی یه همچین کدی را برای شما ارسال کردم من الگوریتم کار را برای شما شاید توضیح داده باشم به هر حال کد بالا اصلا مفهوم ندارد.
ولی اصول و الگوریتم این کار بشه شکل زیر هست.
شما عدد مورد نظر را در یک متفییر جدا قرار بدید و این عدد را بر دو تقسیم کرده و نتیجه را در خودش ضرب کنید حال حاصل این ضرب را با عدد مورد نظرتان مقایسه کنید اگر برابر باشد خاتمه ولی اگر نباشد باز مراحل فوق را با عدد نصف شده ادامه دهید.

kiuhnmgtrdcv
دوشنبه 22 تیر 1388, 22:39 عصر
ببخشید بدلیل بی دقتی خط اول کد اشتباه نوشتم کد اصلاح شده اینطوری شد که درست کار میکنه


data segment
; add your data here!
pkey db "press any key...$"
num dw 64
ends

stack segment
dw 128 dup(0)
ends

code segment
start:

mov num,64
mov bx,num
l1:
shr bx,1
mov dx,0
mov ax,bx
mul ax
cmp ax,num
je exit
ja l1
exit:

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

end start

linelove666
چهارشنبه 02 تیر 1389, 15:19 عصر
سلام
تا اونجایی که فهمیدم این برنامه میتونه جزر اعداد خاصی رو بده
تو این تاپیک ( http://www.barnamenevis.org/forum/showthread.php?t=229545 ) یه شبه الگوریتمی هست که میتونه جزر هر عددی رو بدون اعشار حساب کنه. اگه کسی بتونه اونو تو اسمبلی پیاده کنه ممنون میشم....

tdkhakpur
چهارشنبه 02 تیر 1389, 21:23 عصر
جذر يك عدد (http://barnamenevis.org/forum/showthread.php?t=229545)