به نام خدا 



همانطور که می دانید زبان ماشین در چهار مبنای اصلی بکار می رود : 


۱. باینری 


۲. دسیمال


۳. هگزادسیمال


۴. اکتال


اگر می خواهید با تمام اسرار و رموز زبان ماشین آشنا شوید و از تردید بین مبناها و تبدیل مکرر  آنها به یکدیگر  خلاص شوید و سردرگم نشوید  بهترین کار این است که از اول تا آخر ؛ فقط از مبنای باینری استفاده کنید و سایر مبناها را برای همیشه فراموش کنید . 


بسیاری از تواناییها و اسرار زبان ماشین  را فقط در مبنای باینری می توان کشف کرد . 


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


مثلا  رقم ۱ در مبنای باینری  مستقیما به  ۱ ولتاژ برق مستقیم تبدیل می شود و رقم صفر در مبنای باینری مستقیما به نیم ولت برق  تبدیل می شود . 


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


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


بنابراین باید همیشه و تحت هر شرایطی فقط از مبنای باینری استفاده شود تا هیچگونه خطایی رخ ندهد . 


با این مقدمه ی طولانی ؛ اولین جلسه ی آموزش زبان ماشین که البته منحصرا در مبنای باینری خواهد بود را همینجا شروع می کنم و مابقی مطالب به مرور زمان در  پست های بعدی منتشر خواهند شد .انشاا... 


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


درس اول : 


ما  پنج دستور زبان اسمبلی داریم که برای عمل جمع دو عدد باینری البته فقط در حالت ماسک گذاری روی بیت ها ،  بکار می گیریم : 


and


or


xor


not


test 


این پنج دستور زبان اسمبلی ؛ هرکدام نتایج متفاوتی در عملیات جمع دو عملوند باینری  و در حالت ماسک ؛ ایجاد می کنند . 


ماسک گذاری روی بیت ها یعنی دسترسی کاملا مستقیم به بیت های درون بایت و ویرایش و دستکاری آنها و انجام عملیات خاص روی آنها . 



مثال 



or 10101010,  11111111


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


10101010+

11111111

‐--------------

11111111


عملگر or فقط در یک حالت ، عدد صفر را تولید می کند : 


00000000+

00000000

‐------------

00000000



عملگر  and  دقیقا برعکس رفتار می کند 


and 10101010, 11001011


مثال: 


10101010+

11001011

-------------

10001010


یعنی عملگر  and  فقط درصورتی عدد 1 را تولید می کند که عملوندهای مبدا و مقصد ؛ 1 باشند 


یعنی 


1+

1

---

1



اینها جزو عجایب و اسرار زبان ماشین محسوب می شوند که بامزه و شگفت انگیز هستند و شما را غافلگیر می کنند . 


خب ادامه ی درس را به جلسه ی بعدی یعنی پست بعدی موکول می کنم .