திங்கள், 6 ஜூன், 2011

'அ' - நான் அறிந்த அனைத்து மொழிகளின் முதல் எழுத்து! கணினி மொழிகளிலும் அதுவே முதல் மொழி! (அ - assembly language ). இதுவே அனைத்துக்கும் அடிப்படையான மொழி. நாம் மற்ற மொழிகளில் மென்பொருள் எழுதினாலும், இறுதியாக அசெம்ப்ளி மொழிக்கு தான் மாறி ஓடுகிறது. உங்கள் தருக்கத் திறனை கண்டு கொள்ளவும் ஏற்ற மொழி! ஆகையால் நாம் 'அ' வில் ஆரம்பிப்போம்!
'அ' கற்பதற்கு ஓர் எளிய வழி உள்ளது. உங்களிடம் விண்டோஸ் இயக்கு தளம் இருந்தால் போதும். (கொஞ்சம் பொறுத்துக்கோங்க,  தமிழ்ல எழுதுறது ரொம்ப கஷ்டம் :( ).  ஸ்டார்ட் மெனுல போய் cmd னு டைப் பண்ணுங்க.ஓகே கிளிக் பண்ணா command விண்டோ வரும். அதுல debug னு டைப் பண்ணி enter அடிங்க. பிறகு பின் வருமாறு ப்ரோக்ராம் எழுத வேண்டியதுதான்!

இந்த படத்தில் உள்ள ப்ரோக்ராம் H என்ற எழுத்தை பிரிண்ட் செய்யும். 

மிகவும் எளிதாக இருக்கிறது அல்லவா! மைக்ரோசாப்ட் எதையும் கை விடுவதில்லை. ஆதி காலம் முதல் விண்டோஸ் 7 வரை debug utility உள்ளது.  ஆனால் இதில் 16 பிட் ப்ரோக்ராம் தான் எழுத முடியும். 

-a 100 -> 100 ஆவது அட்ரெஸ் இல் இருந்து அசெம்ப்ளி எழுத போகிறோம்.

mov dl,48 ->  mov ஆணை (instruction) 48ஐ dl ரெஜிஸ்டர்க்கு அனுப்பும். CPU வில் AX, BX, CX, DX, SP, BP, SI, DI, DS, ES, SS, CS, IP என 13 ரெஜிஸ்டர்கள் உள்ளன. ஒவ்வொரு ரெஜிஸ்டரும் 16 பிட். இந்த ரெஜிஸ்டர் அளவை கொண்டுதான் 16 பிட், 32 பிட், 64 பிட் ப்ரோசெஸ்ஸர் என்று சொல்கிறோம். AX, BX, CX, DX ஆகியவை பொதுவான ரெஜிஸ்டர்கள். அனைத்து ஆணைகளும் இவற்றை கொண்டுதான் இயங்கும். இந்த ரெஜிஸ்டர்களை மேலும் AH, AL, BH, BL, CH, CL, DH, DL என்று பிரிக்கலாம். ஒவ்வொன்றும் 8 பிட். கடைசியாக வரும் 48 'H' ஆன ASCII பதின் அரும் எண் (Hexadecimal value, உஸ்ஸ்ஸ்  முடியல). 

mov ah,2 ->  ah க்கு 2அ அனுப்புங்கப்பா. ஏன்னு அப்புறமா சொல்றேன். 

int 21 -> இந்த ஆணை தான் ரொம்ப முக்கியம்! இந்த ஆணை நம் ப்ரோக்ராம்மை இடைமறித்து, 21 ஆம் இடைமறிப்பு சுட்டும் செயல்கூற்றினை ஓட்டும் (function pointed by 21st vector in interrupt vector table). இடைமறிப்பு அட்டவணை பல செயல்கூற்றின் விலாசத்தை சுட்டிக்கொண்டிருக்கும். 21 ஆம் இடைமறிப்பு DOS செயல்கூற்றினை சுட்டும். DOS மேலும் பல சிறு சிறு செயல்கூற்றினை கொண்டிருப்பதால் AH க்கு எந்த DOS செயல்கூரைக் கூப்பிட வேண்டும் என்று சொல்ல வேண்டும். AH இல் உள்ள 2, DL இல் உள்ள ஓர் எழுத்தை அச்சிட DOS க்கு int 21 வழியாக சொல்கிறது. 

int 20 ->  நம் ப்ரோக்ராம் இதோட முடிஞ்சுதுனு இயக்கு தளத்திற்கு அறிவிச்சாச்சு.

அதுக்கு அப்புறம் ஒரு enter தட்டினா debug prompt க்கு போய்டும்.
g அடிச்சு enter அழுத்தினா ப்ரோக்ராம் ஓடும்!

Hello World ப்ரோக்ராம் எழுதலேனா கணினி கடவுள்கள் என்னை சபிப்பார்கள்.
                     
   ப்ரோக்ராம் எழுதியாச்சு. ரொம்ப முக்கியம், ப்ரோக்ராம் சேமிக்க வேண்டும்.












CX ரெஜிஸ்டரில் எவ்வளவு பைட்ஸ் கோப்பில் எழுத வேண்டும் என்று குறிப்பிட வேண்டும். n - கோப்பின் பெயர். w - ம் கோப்பில் எழுது. q - வெளியேறு. 22 பைட்ஸ்சில் நம் முதல் ப்ரோக்ராம் வெற்றிகரமாக எழுதிவிட்டோம்!

பின்குறிப்பு : இது ஓர் அறிமுகம் தான். மேலும் தகவல்களுக்கு எங்கள் அருமை அண்ணன் கூக்கிள்லைக் கேளுங்கள்.  

பயிற்சி: 
௧. A-Z அச்சிடவும்.
௨. பெருக்கல் அட்டவணை அச்சிடவும். 

வியாழன், 2 ஜூன், 2011

காதல்


மென்பொருள் எழுதுவதற்கு என்ன வேண்டும்? என்னை பொறுத்த வரையில் மென்பொருள் கற்பவர்களுக்கு மிகவும் தேவையானது ஒரு வெறித்தனமான ஆர்வம் & காதல் (Passion). இந்த ஆர்வமே மற்ற அனைத்தையும் கொண்டு வந்து சேர்க்கும்! மென்பொருள் எழுதும் போது பசி, தூக்கம், நம்மை சுற்றி நடப்பவை எதுவும் தெரியாமல், ஒன்றி போக முடிந்தால் அவர்களே மென்பொருள் வல்லுநர் ஆக முடியும். ஏன் இந்த ஆர்வம்? மற்றவர்கள் வியக்கும் வண்ணம் எதையாவது உருவாக்குவதில் தான் எத்தனை சந்தோசம்! அப்படி உருவாக்குவது பலருக்கும் பயன்படும் என்றால் அதை விட பெரிய சந்தோசம் இருக்க முடியுமா? வேறு துறைகளில் எதையாவது உருவாக்குவது என்றால் அதற்கு பெரும் முயற்சி வேண்டும். பணம், உதவிக்குப் பலர்,  உடல் உழைப்பு, இன்னும் பல தேவை படுகிறது. அனால் மென்பொருள் எழுதுபவருக்குத் தேவை ஒரு கணினி மட்டுமே. பிறகு எல்லாமே மாயம் தான். நம் விரல்களை அசைக்க அசைக்க பல விந்தைகள்! நம்முடைய பொழுது போக்கே மென்பொருள் எழுதுவது என்றால் நாள் முழுவதும், இரவு முழுவதும் நமக்கு பிடித்ததை செய்து கொண்டே இருக்கலாம். அதுவே நமக்கு பொருள் ஈட்டியும் கொடுக்கும். இதை விட வேறு என்ன வேண்டும்? ஆயினும் மென்பொருள் எழுதுவதில் அனைவருக்கும் இந்த சந்தோசம் கிடைப்பது இல்லை. ஆகையால் மென்பொருள் எழுதி இன்புறுபவர்கள் மட்டும் மென்பொருள் பயில்வது நல்லது.