PDA

View Full Version : کمک در مورد فهم برنامه



hjran abdpor
پنج شنبه 19 خرداد 1390, 11:46 صبح
سلام به دوستان.

یه برنامه اسمبلی برای تفریق دو عدد است که من جای خیلی ساده اش را اشکال دارمف برنامه به این صورت است:
org 100
lda sub
cma
inc
add min
sta dif

min, dec 83
sub , dec -23
dif, hex 0



برنامه به این صورته که متمم دو عدد را حساب کرده و با عدد مورد جمع میکند و دو عدد از هم کم میشودند.
حالا مشکل من اینه :

ایا -23 موقعی که تبدیل به متمم دو میشود تغییر پیدا میکند ؟؟؟؟؟؟؟؟؟؟؟ یا اول 23 تبدیل به دودویی کرده و بعد متمم دو میگیرم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟//
خروجی این برنامه چند میشه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

حالا اگه برنامه ی جمع باشه عدد -23 چه جوری تبدیل میشه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

من مشکلم این -23 است نممدونم ایا تو محاسبات مقدراش عوض میشه ، چه جوری نمایش
میدن و ......................

cma متمم یک را حساب کرده و inc هم یه واحد افزایش میده.....
ممنون میشم توضیح بدین ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
خودم از این سوالی که پرسیدم خجالت میشکم

armin0282
یک شنبه 22 خرداد 1390, 20:52 عصر
سلام به دوستان.

یه برنامه اسمبلی برای تفریق دو عدد است که من جای خیلی ساده اش را اشکال دارمف برنامه به این صورت است:
org 100
lda sub
cma
inc
add min
sta dif

min, dec 83
sub , dec -23
dif, hex 0



برنامه به این صورته که متمم دو عدد را حساب کرده و با عدد مورد جمع میکند و دو عدد از هم کم میشودند.
حالا مشکل من اینه :

ایا -23 موقعی که تبدیل به متمم دو میشود تغییر پیدا میکند ؟؟؟؟؟؟؟؟؟؟؟ یا اول 23 تبدیل به دودویی کرده و بعد متمم دو میگیرم ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟//
خروجی این برنامه چند میشه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

حالا اگه برنامه ی جمع باشه عدد -23 چه جوری تبدیل میشه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

من مشکلم این -23 است نممدونم ایا تو محاسبات مقدراش عوض میشه ، چه جوری نمایش
میدن و ......................

cma متمم یک را حساب کرده و inc هم یه واحد افزایش میده.....
ممنون میشم توضیح بدین ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
خودم از این سوالی که پرسیدم خجالت میشکم

این برنامه 2 عدد رو میگره و مکمل2 عدد دوم رو میخواد بدست بیاره که بعد با عدد اولی جمع کنه(اگه یه عدد رو با مکمل2 عدد دیگه جمع کنی عمل تفریق میشه) حالا واسه بدست آوردن مکمل2 از عدد دوم یه متمم گرفته بعد با 1 که جمعش کنی میشه مکمل 2 .مثال زیر رو ببین.در آخر هم بگم اعداد به مبنای 2 برده میشه!0,1

8=>1000
4-=>0100
____________
4 => FALSE(12)1100
می بینید که با جمع بدون مکمل جوابی که داده اشتباه 12 داده به ما.حالا با مکمل2 جمع می بندیم

8=>1000
4=>0100 =>متمم میگیریم =>1011 => 1 + 1011 =>مکمل2 => 1100
حالا عدد 8 رو با مکمل2 عدد 4 جمع میکنیم.

8=> 1000
-4=>+1100
___________
4=>10100

خوب حالا می بینید که جواب ما 10100 که بیت اخری که قرمز هم نوشتم سریز میشه و محاسبه نمیشه در واقع جواب 0100 هست که معال 4 ده دهیه!

موفق باشید.