පරිගණකයේ මතකය තුල එහෙම නැත්නම්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).
Ayye HALT wenuwata end dammoth weradida?
ReplyDelete