Pages

Friday, December 24, 2010

සරල පරිගණක විධාන ලිවීම(Writing Machine Instructions)

      ගොඩක් දවසකින් බ්ලොග් එක පැත්තෙ ආවෙ.මේ දවස් වල හරිම කාර්යබහුලයි.අද මම පරිගණකය සරල ගණිත කර්ම කිරීම සදහා යොදා ගන්න ක්‍රමවේදය ඉතාම සරලව කියන්නම්.
      පරිගණකයේ මතකය තුල එහෙම නැත්නම්RAM(Random Access Memory) එක තුල තැන්පත්ව ඇති දත්ත අපිට අවශ‍්‍ය  ගණිත කර්ම කිරීමේදී රෙජිස්ටර් යන නමින් හදුන්වන මතක කොටස් තුලට් දත්ත රැහැන්(Data Buses) හරහා ගෙනවිත් එම ගණිත කර්ම සිදු කරයි.මෙය සරලවම මෙය එසේ දැක්විය හැකි වුවත් මෙය ඉතා සංකීර්ණ ක්‍රියාවලියක්.එසේ කිරීමටද හේතුවක් තියෙනවා.සරලවමපැහැදිලි කල හැකි හේතුව ලෙස ඉතා වේගයෙන් දත්ත සමග් ගනු දෙනු කල හැකි වීම සලකිය හැකියි.නමුත් මෙහි ර්ටත් වඩ වැදගත් හේතුවක් තිබෙනවා.දැනට එය අමතක කරමුකෝ.
      මෙසේ රෙජිස්ටර් වෙතට ගෙන් ආ දත්ත ගණිත කර්මය කිරීමෙන් අනතුරුව නැවත  RAM මතකයේ Memory Locations වල තැන්පත් කරනවා.මේ ක්‍රියාවලිය පැහැදිලි කිරීම සදහා Machine Instructions ලිවීමේ ක්‍රම්වේදය යොදා ගන්නවා.

උදාහරණ 1



a,b,c සහ d ලෙස ඇති Variables පිහිටා ඇත්තේ ප්‍රධාන මතකයේ(RAM)100,101,102,103 මතක ලිපින(Memory Locations)වල නම් a හි අගය b,c සහ d අගයන්ගේ එකතුවට සමාන කරන්නේ කෙසේද බලමු.(a=b+c+d)මේ සදහා විශේෂිත වූ වචන(key words) කිහිපයක් භාවිතා කරනවා.උදාහරණ ලෙස LOAD. ඒවා ගැන පසුව කතා කරමු.

50  LOAD 101
51   ADD   102
52   ADD   103
53 STORE 100

මෙහි 50  LOAD 101 හිදී කර ඇත්තේ මතක ලිපින 100 ඇති b හි අගය රෙජිස්ටර් ලිපින 50 ත ගෙන්වා ගැනීමයි. 51   ADD   102 හිදී b අගය හා c අගය එකිනෙක එකතු කිරීම කර ඇත.52   ADD   103 හිදී දැනට පවතින මුලු එකතුවට d හි අගය එකතු කිරීම කර ඇත. 53 STORE 100 යනුවෙන් සදහන් කර ඇත්තේ මෙම මුලු එකතුවම a හි මතක ලිපිනයෙහි තැන්පත් කිරීමයි.

උදාහරණ 2

ඉහත 1 උදාහරණයේ දැක්වූ අගයන් හා මතක ලිපින සැලකූ විට a හි අගය b  ට සමාන වේ නම් c හි අගය් d ට සමාන කරන්නේ කෙසේදෑය් බලමු.
if a==b then do c=d
50 COMPARE 100,101
51        JUMPEQ      53 
52          JUMP         55
53         LOAD        102
54        STORE       103
55          END              .

මෙහි 50 COMPARE 100,101 න් කර ඇත්තේ මතක ලිපින 100 හා 101 ඇති a හා b සසදා බැලීමයි.ඒවා එක සමාන නම් 51  JUMPEQ  53 න් සදහන් කර ඇත්තේ 53 වෙනි රෙජිස්ටර් මතක ලිපිනය තුලට පනින ලෙසයි. එවිට 53 සදහන් කර ඇත්තේ 102 ප්‍රධාන මතක ලිපිනයේ සදහන් ව ඇති c හි අගය 53ට ගෙන්වා ගැනීමයි. (53   LOAD  102).ඉන්පසු 54   STORE  103න් සදහන් කර ඇත්තේ c හි අගය d හි මතක ලිපිනයෙහි තැන්පත් කිරීමයි. මෙහි a ට b සමාන නොවන  විට 52   JUMP   55ලෙස සදහන් ව ඇත.එමගින් වැඩසටහන අවසානයට ගෙන එයි.(program terminate).

1 comment: