Machine language: တည်းဖြတ်မှု မူကွဲများ

Added Programs
အရေးမကြီး typo
စာကြောင်း ၅ -
ကိန်းဂဏန်းဖြင့် ဖွဲ့စည်းထားသော စက်အသုံးပြုသောကုဒ် (machine code)အား compiled code ( လူရေးထားသော ပရိုဂရမ်အား ကြားခံကုဒ် သို့ပြောင်းထားသောကုဒ်)၏ အနိမ့်ဆုံး ကိုယ်စားပြုထားသောကုဒ် ဟုယူဆနိုင်ပေသည်။ (ပရိုဂရမ်းမင်း တွင် လူသားများဖတ်နိုင်သော ရေးသားထားချက်များအား အမြင့်ဆုံး ဟုသတ်မှတ်ကာ စက်ကသာနားလည်နိုင်သော ရေးသားချက်များကို အနိမ့်ဆုံးဟု သတ်မှတ်သည်။) စက်အသုံးပြုသောကုဒ် မှာ ဟဒ်ဝဲပေါ်တွင် မှီခိုမှုရှိသည်။ ဆိုလိုသည်မှာ CPU တစ်ခုနားလည်သောကုဒ်သည် အခြားCPUနားလည်ချင်မှနားလည်မည်ဖြစ်သည်။ ပရိုဂရမ်များကို စက်နားလည်သောဘာသာစကားဖြင့် တိုက်ရိုက်ရေးရန်ဖြစ်နိုင်သော်လည်း ထိုသို့ပြုလုပ်ရန်မှာ ပျင်းရိငြီးငွေ့ဖွယ်ကောင်းပြီး နှေးကွေးရုံသာမက အသေးဆုံးယူနစ် (bit) တစ်ခုချင်းစီအလိုက်စီမံရခြင်း၊ တည်နေရာ (address)နှင့် ကိန်းသေတန်ဖိုးများကို (ပရိုဂရမ်ရေးသားသူကိုယ်တိုင်) တွက်ထုတ်ပေးရခြင်းတို့မှာ အမှားဖြစ်နိုင်ခြေ အင်မတန်များသဖြင့် စက်နားလည်သောဘာသာစကားကို အသုံးပြုပြီး ပရိုဂရမ် ရေးသားခြင်း မရှိသလောက်ပင်ဖြစ်သည်။
 
ယနေ့ခေတ် ပရိုဂရမ်အားလုံးလောက်နီးပါးမှာ အဆင့်မြင့် ပရိုဂရမ်းမင်း ဘာသာစကားများ (ဥပမာ Java programming) သို့မဟုတ် assembly language ကို အသုံးပြုပြီးရေးသားထားခြင်းဖြစ်သည်။ (assembly language ဖြင့်ရေးသားထားသောကုဒ်များသည် Java ကုဒ်များလောက်နားလည်ရမလွယ်သဖြင့် Java နှင့် assembly ကို ယှဉ်သော် Java ကပို၍အဆင့်မြင့်သည်၊ higher level ဖြစ်သည်ဟု ယူဆခြင်းဖြစ်သည်) ထိုသို့ရေးသားထားသောကုဒ်များကို compilers, assemblers နှင့် ) များကို အသုံပြုကာအသုံးပြုကာ စက်နားလည်သောကုဒ်အဖြစ်သို့ ဘာသာပြန်ဆို (translate)ကြခြင်းဖြစ်သည်။ ဤနေရာတွင် Interpreted programမှာ ခြွင်းချက်ဖြစ်သည်။ Interpreted program ဆိုသည်မှာ မုလပရိုဂရမ်ကို စက်နားလည်သောကုဒ်အဖြစ်သို့ ဘာသာပြန်ဆိုထားခြင်း မရှိပါ။ သို့ပါသော်လည်း interpreter သည် မူလကုဒ်တွင်ပါဝင်သော ညွှန်ကြားချက်များ (မူလကုဒ်မှထုတ်လုပ်ထားသော အလုပ်လုပ်နိုင်သော စက်နားလည်သောကုဒ် များပါဝင်သည့် ညွှန်ကြားချက်များ) ကို လုပ်ဆောင်ပါသည်။
 
===ကြိုတင်သိရှိထားရန်များ===
စာကြောင်း ၁၁ -
 
==Machine code instructions==
Processorတိုင်း သို့မဟုတ် processor အစုအဝေးတိုင်းသည် ကိုယ်ပိုင် စက်နားလည်သော ညွှန်ကြားချက်(Machine code instructions) အစုအဝေးများရှိကြသည်။ ၎င်း ညွှန်ကြားချက်များသည် bits၏ပုံစံအမျိုးမျိုးပင်ဖြစ်သည်။ ထို bitsပုံစံများသည် စက်အတွက်ကွဲပြားခြားနားသောညွှန်ကြားချက် အမျိုးမျိုးကိုပေးနိုင်သည်။ ထို့ကြောင့် တူညီသောဖွဲ့စည်းတည်ဆောက်ပုံရှိသော processorများအတွက် သီးခြား စက်နားလည်သောညွှန်ကြားချက်များ ရှိနေခြင်းဖြစ်သည်။ ထိုကဲ့သို့သောprocessorများတွင် နောက်မျိုးဆက် processorများက ရှေ့မှ processorများ၏ စက်နားလည်သောညွှန်ကြားချက်များနှင့် အသစ်ထပ်မံထည့်သွင်းထားသော ညွှန်ကြားချက်များပါဝင်လေ့ရှိကြသည်။ ဖြစ်တောင့်ဖြစ်ခဲဆိုသော်လည်း တစ်ခါတစ်ရံတွင်မူ နောက်မျိုးဆက် processorများက ရှေ့မှ processorများ၏ညွှန်ကြားချက်များကို ဆက်လက်၍အသုံးမပြုတော့ခြင်း၊ အဓိပ်ပာယ်များကိုပြောင်းလဲခြင်းများလည်းအဓိပ္ပာယ်များကိုပြောင်းလဲခြင်းများလည်း ရှိသည်။ ယင်းသို့ပြုလုပ်ခြင်းသည် ယခင်စက်နားလည်သောရေးသားထားသောကုဒ်များ၏ လိုက်လျောညီထွေဖြစ်မှု(compatibility)၊ ကွဲပြားခြားနားသောလုပ်ဆောင်ချက်များကိုလုပ်ဆောင်ခြင်း တို့ကိုဖြစ်ပွားစေနိုင်သည်။ စနစ်(Computer system)များအနေဖြင့် ကွဲပြားခြားနားသော မန်မိုရီ(ကွန်ပျူတာမှတ်ဉာဏ်) စီစဉ်မှု, Operating system နှင့် အခြားသော ကိရိယာများ (Mouse, Keyboard)ရှိနိုင်ပါသည်။ ကွန်ပျူတာစနစ်(Computer system) အနေဖြင့်ယင်းကဲ့သို့သော အချက်များအပေါ်တွင်လည်း မှီတည်နေခြင်းဖြစ်ရကား မတူညီသောစနစ်များသည် တူညီသော Machine code (စက်နားလည်သောကုဒ်) များဖြင့် (အမျိုးအစားတူ processor ကိုသုံးထားစေကာမူ) အလုပ်လုပ်နိုင်လိမ့်မည် မဟုတ်ပါ။
 
စက်နားလည်သော ညွှန်ကြားချက်(Machine code instructions) အစုအဝေးတစ်ခုတွင် တူညီသောအရွယ်အစားရှိသည့် ညွှန်ကြားချက် သို့မဟုတ် အရွယ်အစား ပြောင်းလဲနိုင်သော ညွှန်ကြားချက်များ ပါဝင်သည်။ bits ပုံစံများ ဖွဲ့စည်းထားပုံသည် processor ဖွဲ့စည်းတည်ဆောက်ပုံ ပေါ်မူတည်ပြီး အဓိကပြောင်းလဲသလို ရံဖန်ရံခါတွင်မူ ညွှန်ကြားချက် အမျိုးအစား ပေါ်မူတည်၍လည်း ပြောင်းလည်းနိုင်ပါသေးသည်။ ညွှန်ကြားချက်အများစုတွင် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော opcode (ညွှန်ကြားချက်အမျိုးအစားကိုသတ်မှတ်ရန်)၊ အမှန်လုပ်ဆောင်ရမည့်လုပ်ငန်း (operation) နှင့် အခြားလိုအပ်သော အရာများ (operands, addressing mode, ကိန်းသေတန်ဖိုးများ) တို့ပါဝင်သည်။