PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سوال اسمبلی



barankf
15th January 2013, 07:33 PM
با سلام وخسته نباشید
من به جواب این سوال نیاز فوری دارم لطفا کمکم کنید.[dooa]

1) اگر xیک متغیر از حافظه به طول 1 بایت و yیک متغیر از حافظه به طول 1wordباشد رابطه زیر را به زبان اسمبلی شبیه سازی ککنید



Y=x ^ 3 – 3x ^2 +7

[dooa]
2)معادل دستورات زیر را به زبان اسمبلی شبیه سازی کنید



Count=100
while(sum<500) or (count>0)


{


Sum=sum+count


Count=count-1


}



3)تکه برنامه زیر چه عملی انجام می دهد




Str1 db "abcdfg"


Str2 db 6 dup(?)


Mov si,offset str1


Mov di,offset str2+5


Cld


Mov cx,6


L1:lodsb


Mov [di],al


Dec di


Loop l1
4)پس از اجرای دستورات زیر محتوای zf ,pf ,sf ,cf ,ofچیست؟



Mov cx,3b18 H


Mov dx,4c2f H


Add dx,cx


5)اگر ax=ffffباشد بعد از اجرای قطعه کد زیر محتوای axچیست؟



NEG ax


ROR ax,1


Mov cl,3


SAR ax,cl



الف)f000 ج)0000
ب)l000 د)fff0

6)زیر روالی بنویسید که اعداد 1 تا 10 را با هم جمع کند

BaAaroOoN
17th January 2013, 01:48 PM
سوالاتون ساده ست.....به کتاب مزیدی مراجعه کنید....
اما در مورد سوالات مربوط به پرچم ها....
pf:پرچم توازن(معمولا توازن زوج)ینی اگه عدد حاصل تعداد یک هاش زوج باشه pf=0,در غیر این صورتpf=1
cf:پرچم carry
zf:پرچم تشخیص صفر بودن یا نبودن
ینی اگه عدد حاثل 0 شد،zf=0,در غیر این صورتzf=1
sf:پرچم علامت.ینی اگه با ارزشترین بیت شما یک بود ینی عدد منفیه(لبته در سیستم علامتدار)پسsf=1
of:پرچمoverrflow.ینی اگه شما carryبیت آخر و یکی مونده به آخر رو باهم xorکنید و حاصل آن 1شود ینیoverrflow اتفاق افتاده وof=1
اگر حاصلxor،0 شه ینیof=0
حالا در اینجا عدد شما همون حاصل جمع3b18و4c2f هستش
البته برای کارایی که من گفتم باید عدد باینری باشه حتما

BaAaroOoN
17th January 2013, 01:51 PM
در سوال 5ابتدا axمنفی میشه
بعد....اون رو به اندازه ی 1 دفعه میچرخونیم....ین چی؟
ینی اینکه،بی ارزشترین بیت از عدد حذف میشه و به ابتدای عدد(ینی در جایگاه با ارزشترین بیت )اضافه میشه....اصطلاحا عدد رو یه بار میچرخونیم....
بعد من دستورsarرو نمیدونم چیه....ولی اگه بگین حتما راهنماییتون میکنم

BaAaroOoN
17th January 2013, 02:03 PM
برای برنامه ی2:
mov cx,100
back : mov sum,0
add sum,cx
dec cx
cmp sum,500
jc loop
loop back

BaAaroOoN
17th January 2013, 02:06 PM
در مورد سوال آخر:
mov cx,10
mov sum,0
back : add sum,cx
dec cx
loop back

BaAaroOoN
17th January 2013, 02:09 PM
برای سوال 3 که وااااااقعا ساده ست و پیشنهاد میکنم که دیگه خودتون هم یه مطالعه ای داشته باشین!!!!
فقط در همین حد بگم که در 2 خط اول داره برای str1و str2حافظه در نظر میگیره
و abcdefgرو میریزه تویstr1

matin2012
15th April 2013, 08:09 PM
سلام
من به کمک فوری نیاز دارم برا این پروژه به زبان اسمبلی




ابتدا صفحه login را ایجاد نمایید (کاملاً دلخواه و به سلیقه خودتان) یک admin با نام کاربری admin و کلمه عبور 1234 وارد می شود. در صورتی که اشتباه وارد کرده بود یک صدای بوق بشنود و دوباره به صفحه login باز گردد تا اینکه صحیح وارد کند. سپس 3 user و 3 password حداکثر 6 کاراکتری را از او دریافت نمایید.این اسامی باید حتما بصورت حروف کوچک و عدد باشند و تکراری نباشند . سپس اسامی در حافظه ذخیره شود .admin بتواند user یا pass ها را با توجه به شماره 1 یا 2 یا 3 تغییر دهد. در صورتی که هر 6 مورد را تنظیم نمود و مایل به تغییر آن نبود خارج شود.
سپس دوباره صفحه login نمایش داده شود. کاربر 1 یا 2 یا 3 وارد می شود.
در صورتی که کاربر 1 وارد شد (یعنی کاربری که نام و کلمه عبورش برابر اولین user و pass بود که admin تنظیم کرده بود) یک رشته از کاربر دریافت نماید و تعداد کلمات و جملات آنرا بدست آورد . جملات فقط با نقطه از هم جدا می شوند و بین کلمات ممکن است فاصله های بیشتر از یکی باشد) سپس تعداد جملات را در سطر 15 ستون 5 و تعداد کلمات را در سطر 20 ستون 7 بدون استفاده از وقفه و بصورت مستقیم بنویسد. (ممکن است تعداد از 9 بیشتر شود) سپس صفحه را پاک نموده و تعداد جملات و کلمات را در سطر 1 نمایش دهد و بعد هر جمله را سر سطر چاپ نماید (با وقفه 09h/ int 21h)
این کار تکرار شود تا اینکه کاربر بخواهد خارج شود سپس دوباره صفحه login نشان داده شود.

(lovelyiroonigirl@yahoo.com)

استفاده از تمامی مطالب سایت تنها با ذکر منبع آن به نام سایت علمی نخبگان جوان و ذکر آدرس سایت مجاز است

استفاده از نام و برند نخبگان جوان به هر نحو توسط سایر سایت ها ممنوع بوده و پیگرد قانونی دارد