fratar
چهارشنبه 06 خرداد 1388, 23:29 عصر
برامه ای که بین محتویات آدرس های 800 تا 900 حافظه کوچکترین عدد را ÷یدا کرده و در یک خانه حافظه تهت عنوان resalt دخیره کنه؟
<<<<ممنون میشم اگه جوایش رو برام بنویسین>>>>
tdkhakpur
پنج شنبه 07 خرداد 1388, 00:39 صبح
سلام
توضیح ندادید که عدد مورد نظر شما چی هست ولی برای intیا word کد رو مینویسم.
result dw ?
mov cx, 100
mov bx, 800
mov result, word ptr [bx] ; برای مقدار دهی اولیه
label1:
cmp result , word ptr [bx]
jnl label2
mov result, word ptr [bx]
lael2:
add bx, 2
sub cx, 1
loop label1
1- در فوق cx رو برابر 100قرار میدهیم چون 900-800=100میشود.تا حلقه این فاصله رو طی کند.
2- چون عددمون 2 بایتی هست مقدار آدرس موجود در bx رو 2 بار افزایش میدیم تا به نقطه بعدی اشاره کند.
3 - مقدار cx رو یک واحد کم میکنیم تا حلقه به اندازه 50 بار ادامه پیدا کنه و دلیلش هم به خاطر این هست که در فاصله 800 تا 900 فقط 50 عدد از نوع word میتونه قرار بگیره.
سایر کدها یه الگوریتم ساده برای مقایسه هست .
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.