முழு ஆன்லைன் கம்ப்யூட்டர் சயின்ஸ் டேட்டாபேஸ் மற்றும் இன்டர்நெட் கேரியர் கோர்ஸின் அத்தியாயம் 4 இன் சிக்கல்களுக்கான தீர்வுகள் ஆரம்பம் முதல்

Mulu Anlain Kampyuttar Cayins Tettapes Marrum Intarnet Keriyar Korsin Attiyayam 4 In Cikkalkalukkana Tirvukal Arampam Mutal



சிக்கல்கள் மற்றும் அவற்றின் தீர்வுகள்

1) 6502 µPக்கு $0200 இல் தொடங்கி 2A94 கையொப்பமிடப்படாத எண்களைச் சேர்க்கும் ஒரு சட்டசபை மொழி நிரலை எழுதவும். எச் (சேர்க்கவும்) 2ABF க்கு எச் (ஆஜெண்ட்). உள்ளீடுகள் மற்றும் வெளியீடு நினைவகத்தில் இருக்கட்டும். மேலும், கூடியிருந்த நிரல் ஆவணத்தை கையால் தயாரிக்கவும்.







தீர்வு:



CLC
LDA $0213
ஏடிசி $0215
STA $0217
LDA $0214
ஏடிசி $0216
STA $0218



கூடியிருந்த திட்டம்:





2) 6502 µP க்கு $0200 இல் தொடங்கும் ஒரு சட்டசபை மொழி நிரலை எழுதவும், மேலும் கையொப்பமிடாத எண்களான 1569 ஐக் கழிக்கவும். எச் (சப்ட்ராஹெண்ட்) 2ABF இலிருந்து எச் (சிறியது). உள்ளீடுகள் மற்றும் வெளியீடு நினைவகத்தில் இருக்கட்டும். அசெம்பிள் செய்யப்பட்ட நிரல் ஆவணத்தையும் கையால் தயாரிக்கவும்.



தீர்வு:

SEC
LDA $0213
SBC $0215
STA $0217
LDA $0214
SBC $0216
STA $0218

கூடியிருந்த திட்டம்:

3) ஒரு லூப்பைப் பயன்படுத்தி $00 முதல் $09 வரை கணக்கிடப்படும் 6502 µP க்கு ஒரு சட்டசபை மொழி நிரலை எழுதவும். நிரல் $0200 இல் தொடங்க வேண்டும். மேலும், கூடியிருந்த நிரல் ஆவணத்தை கையால் தயாரிக்கவும்.

தீர்வு:

LDA #$09
STA $0220 ; X மற்றும் $09 ஆகியவற்றை ஒப்பிடுவதற்கு
LDX #$00
லூப் ஐஎன்எக்ஸ்
CPX $0220
BNE வளையம்

கூடியிருந்த திட்டம்:

4) 6502 µPக்கு $0200 இல் தொடங்கும் ஒரு சட்டசபை மொழி நிரலை எழுதவும். நிரல் இரண்டு துணை நிரல்களைக் கொண்டுள்ளது. முதல் சப்ரூட்டின் 0203 இன் கையொப்பமிடப்படாத எண்களைச் சேர்க்கிறது எச் (ஆஜெண்ட்) மற்றும் 0102 எச் (சேர்க்க). இரண்டாவது சப்ரூட்டீன் முதல் சப்ரூட்டினிலிருந்து 0305 என்ற தொகையைச் சேர்க்கிறது எச் 0006 வரை எச் (ஆஜெண்ட்). இறுதி முடிவு நினைவகத்தில் சேமிக்கப்படுகிறது. முதல் சப்ரூட்டினை FSTSUB என்றும் இரண்டாவது சப்ரூட்டினை SECSUB என்றும் அழைக்கவும். உள்ளீடுகள் மற்றும் வெளியீடுகள் நினைவகத்தில் இருக்கட்டும். மேலும், முழு நிரலுக்காகவும் கூடியிருந்த நிரல் ஆவணத்தை கையால் தயாரிக்கவும்.

தீர்வு:

SECSUB CLC
LDA $021A
ADC $0234
STA $0236
LDA $021B
ADC $0235
STA $0237
ஆர்டிஎஸ்

FSTSUB CLC
LDA $0216
ஏடிசி $0218
STA $021A
LDA $0217
ADC $0219
STA $021B
ஆர்டிஎஸ்

JSR FSTSUB

கூடியிருந்த திட்டம்:

5) கொடுக்கப்பட்ட ஒரு ¯IRQ ஹேண்ட்லர் $02 முதல் $01 வரை குவிப்பானில் முக்கிய கையாளுதலாக சேர்க்கிறார் ¯NMI வழங்கப்படுகிறது, மற்றும் முக்கிய கையாளுதல் ¯NMI திரட்டியில் $05 முதல் $04 வரை சேர்க்கிறது, இரு கையாளுபவர்களுக்கும் அவர்களின் அழைப்புகள் உட்பட ஒரு சட்டசபை மொழியை எழுதுங்கள். என்ற அழைப்பு ¯IRQ கையாளுபவர் $0200 என்ற முகவரியில் இருக்க வேண்டும். தி ¯IRQ கையாளுபவர் $0300 என்ற முகவரியில் தொடங்க வேண்டும். தி ¯NMI கையாளுபவர் $0400 என்ற முகவரியில் தொடங்க வேண்டும். இதன் விளைவு ¯IRQ கையாளுபவர் $0500 என்ற முகவரியில் வைக்கப்பட வேண்டும், அதன் முடிவு ¯NMI கையாளுபவர் $0501 என்ற முகவரியில் வைக்கப்பட வேண்டும்.

தீர்வு:

NMISR PHA; NMI வழக்கம் $0400 முகவரியில் தொடங்குகிறது
PHX
PHY
;
LDA #$04
ADC #$05
STA $0501
;
PLY
PLX
பிஎல்ஏ
RTI

ISR PHA; இந்த அறிவுறுத்தல் $0300 முகவரியில் உள்ளது
PHX
PHY
;
LDA #$01
ADC #$02
; ஜேஎம்பி என்எம்ஐஎஸ்ஆர்: இது வழக்கமான பகுதியாக இல்லாததால் கருத்து தெரிவித்துள்ளார்
STA $0500 ; அடுக்கிச் செல்லும்
;
PLY
PLX
பிஎல்ஏ
RTI
;
ஜேஎம்பி ஐஎஸ்ஆர்; இந்த அறிவுறுத்தல் $0200 முகவரியில் உள்ளது

6) 65C02 கணினியில் மென்பொருள் குறுக்கீட்டை உருவாக்க BRK அறிவுறுத்தல் எவ்வாறு பயன்படுத்தப்படுகிறது என்பதை சுருக்கமாக விளக்கவும்.

தீர்வு:

65C02 µPக்கு மென்பொருள் குறுக்கீடு ஏற்படுவதற்கான முக்கிய வழி BRK மறைமுகமான முகவரி அறிவுறுத்தலைப் பயன்படுத்துவதாகும். பிரதான நிரல் இயங்குகிறது என்று வைத்துக்கொள்வோம், அது BRK அறிவுறுத்தலை எதிர்கொள்கிறது. அந்த இடத்திலிருந்து, தற்போதைய அறிவுறுத்தல் முடிந்ததும், கணினியில் அடுத்த அறிவுறுத்தலின் முகவரி அடுக்கிற்கு அனுப்பப்பட வேண்டும். மென்பொருள் அறிவுறுத்தலைக் கையாள ஒரு சப்ரூட்டின் அடுத்ததாக அழைக்கப்பட வேண்டும். இந்த குறுக்கீடு சப்ரூட்டீன் A, X மற்றும் Y பதிவு உள்ளடக்கங்களை அடுக்கிற்கு தள்ள வேண்டும். சப்ரூட்டினின் மையப்பகுதி செயல்படுத்தப்பட்ட பிறகு, A, X, மற்றும் Y பதிவேடுகளின் உள்ளடக்கங்கள் சப்ரூட்டினை நிறைவு செய்வதன் மூலம் அடுக்கிலிருந்து அவற்றின் பதிவேடுகளுக்கு இழுக்கப்பட வேண்டும். வழக்கமான கடைசி அறிக்கை RTI ஆகும். ஆர்டிஐ காரணமாக, பிசி உள்ளடக்கம் ஸ்டாக்கிலிருந்து பிசிக்கு தானாகவே இழுக்கப்படுகிறது.

7) ஒரு சாதாரண சப்ரூட்டினை ஒரு குறுக்கீடு சேவை வழக்கத்துடன் ஒப்பிடும் மற்றும் வேறுபடுத்தும் அட்டவணையை உருவாக்கவும்.

தீர்வு:

8) 65C02 µP இன் முக்கிய முகவரி முறைகளை அசெம்பிளி மொழி அறிவுறுத்தல் எடுத்துக்காட்டுகளுடன் சுருக்கமாக விளக்கவும்.

தீர்வு:

6502க்கான ஒவ்வொரு அறிவுறுத்தலும் ஒரு பைட் ஆகும், அதைத் தொடர்ந்து பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட செயல்கள்.

உடனடி முகவரி முறை
உடனடி முகவரி பயன்முறையில், operand க்குப் பிறகு, மதிப்பு என்பது நினைவக முகவரி அல்ல. மதிப்புக்கு முன் # இருக்க வேண்டும். மதிப்பு ஹெக்ஸாடெசிமலில் இருந்தால், “#” ஐத் தொடர்ந்து “$” இருக்க வேண்டும். 65C02க்கான உடனடி முகவரி வழிமுறைகள்: ADC, மற்றும், BIT, CMP, CPX, CPY, EOR, LDA, LDX, LDY, ORA, SBC. இந்த அத்தியாயத்தில் விளக்கப்படாத இங்கே பட்டியலிடப்பட்டுள்ள வழிமுறைகளை எவ்வாறு பயன்படுத்துவது என்பதை அறிய, வாசகர் 65C02 µPக்கான ஆவணங்களைப் பார்க்க வேண்டும். ஒரு எடுத்துக்காட்டு அறிவுறுத்தல்:

LDA #$77

முழுமையான முகவரி முறை
முழுமையான முகவரிப் பயன்முறையில், ஒரு செயல்பாடு உள்ளது. இந்த ஓபராண்ட் நினைவகத்தில் உள்ள மதிப்பின் முகவரி (பொதுவாக ஹெக்ஸாடெசிமல் அல்லது லேபிளில்). 6502 µPக்கு 64K10 = 65,53610 நினைவக முகவரிகள் உள்ளன. பொதுவாக, ஒரு பைட் மதிப்பு இந்த முகவரிகளில் ஒன்றில் இருக்கும். 65C02க்கான முழுமையான முகவரி வழிமுறைகள்: ADC, மற்றும், ASL, BIT, CMP, CPX, CPY, DEC, EOR, INC, JMP, JSR, LDA, LDX, LDY, LSR, ORA, ROL, ROR, SBC, STA , STX, STY, STZ, TRB, TSB. இங்கே பட்டியலிடப்பட்டுள்ள வழிமுறைகளையும், இந்த அத்தியாயத்தில் விளக்கப்படாத மற்ற முகவரி முறைகளையும் எவ்வாறு பயன்படுத்துவது என்பதைத் தெரிந்துகொள்ள, வாசகர் 65C02 µPக்கான ஆவணங்களைப் பார்க்க வேண்டும். ஒரு எடுத்துக்காட்டு அறிவுறுத்தல்:

அவை $1234

மறைமுகமான முகவரி முறை
மறைமுகமான முகவரி முறையில், எந்த இயக்கமும் இல்லை. சம்பந்தப்பட்ட எந்த µP பதிவும் அறிவுறுத்தலால் குறிக்கப்படுகிறது. 65C02க்கான மறைமுகமான முகவரி வழிமுறைகள்: BRK, CLC, CLD, CLI, CLV, DEX, DEY, INX, INY, NOP, PHA, PHP, PHX, PHY, PLA, PLP, PLX, PLY, RTI, RTS, SEC , SED, SEI, TAX, TAY, TSX, TXA, TXS, TYA. ஒரு எடுத்துக்காட்டு அறிவுறுத்தல்:

DEX: X பதிவேட்டை ஒரு அலகால் குறைக்கவும்.

உறவினர் முகவரி முறை
உறவினர் முகவரியிடல் முறை கிளை வழிமுறைகளை மட்டுமே கையாள்கிறது. தொடர்புடைய முகவரி முறையுடன், ஒரே ஒரு செயலி மட்டுமே உள்ளது. இது -12810 முதல் +12710 வரையிலான மதிப்பு. இந்த மதிப்பு ஆஃப்செட் என்று அழைக்கப்படுகிறது. அடையாளத்தின் அடிப்படையில், இந்த மதிப்பு நிரல் கவுண்டரின் அடுத்த அறிவுறுத்தலில் இருந்து உத்தேசித்துள்ள அடுத்த அறிவுறுத்தலின் முகவரியில் விளைவாக சேர்க்கப்படுகிறது அல்லது கழிக்கப்படுகிறது. தொடர்புடைய முகவரி முறை வழிமுறைகள்: BCC, BCS, BEQ, BMI, BNE, BPL, BRA, BVC, BVS. அறிவுறுத்தல் எடுத்துக்காட்டுகள்:

BNE $7F : (நிலைப் பதிவேட்டில் Z = 0 எனில் கிளை, P)

இது தற்போதைய நிரல் கவுண்டரில் 127 ஐச் சேர்க்கிறது (செயல்படுத்த வேண்டிய முகவரி) மற்றும் அந்த முகவரியில் உள்ள வழிமுறைகளை செயல்படுத்தத் தொடங்கும். இதேபோல்:

BEQ $F9 : (கிளை என்றால் Z = : நிலைப் பதிவேட்டில், P)

இது தற்போதைய நிரல் கவுண்டரில் -7 ஐச் சேர்த்து புதிய நிரல் கவுண்டர் முகவரியில் செயல்படுத்தலைத் தொடங்கும். ஓபராண்ட் என்பது இரண்டின் நிரப்பு எண்.

முழுமையான குறியீட்டு முகவரி
முழுமையான குறியீட்டு முகவரியுடன், X அல்லது Y பதிவேட்டின் உள்ளடக்கம் உண்மையான முகவரியைக் கொண்டிருக்க, கொடுக்கப்பட்ட முழுமையான முகவரியில் ($0000 முதல் $FFFF வரை, அதாவது 010 முதல் 6553610 வரை) சேர்க்கப்படும். இந்த முழுமையான முகவரி அடிப்படை முகவரி என்று அழைக்கப்படுகிறது. X பதிவேடு பயன்படுத்தப்பட்டால், சட்டசபை அறிவுறுத்தல் இது போன்றது:

LDA $C453,X

Y பதிவேடு பயன்படுத்தப்பட்டால், அது இப்படி இருக்கும்:

LDA $C453,Y

X அல்லது Y பதிவேட்டின் மதிப்பு எண்ணிக்கை அல்லது குறியீட்டு மதிப்பு என்று அழைக்கப்படுகிறது, மேலும் அது $00 (010) முதல் $FF (25010) வரை எங்கும் இருக்கலாம். இது ஆஃப்செட் என்று அழைக்கப்படவில்லை.

முழுமையான குறியீட்டு முகவரிக்கான வழிமுறைகள்: ADC, AND, ASL (X மட்டும்), BIT (அக்முலேட்டர் மற்றும் நினைவகத்துடன், X மட்டும்), CMP, DEC (நினைவகம் மற்றும் X மட்டும்), EOR, INC (நினைவகம் மற்றும் X மட்டும்), LDA , LDX, LDY, LSR (X மட்டும்), ORA, ROL (X மட்டும்), ROR (X மட்டும்), SBC, STA, STZ (X மட்டும்).

முழுமையான மறைமுக முகவரி
இது ஜம்ப் அறிவுறுத்தலுடன் மட்டுமே பயன்படுத்தப்படுகிறது. இதனுடன், கொடுக்கப்பட்ட முழுமையான முகவரிக்கு ஒரு சுட்டி முகவரி உள்ளது. சுட்டி முகவரி இரண்டு பைட்டுகளைக் கொண்டுள்ளது. இரண்டு பைட்டுகள் சுட்டிக்காட்டி நினைவகத்தில் உள்ள இலக்கு பைட் மதிப்பை (முகவரியாகும்) சுட்டிக்காட்டுகிறது. எனவே, சட்டசபை மொழி வழிமுறை பின்வருமாறு:

ஜேஎம்பி ($3456)

அடைப்புக்குறிகள் மற்றும் $3456 முகவரியில் $13, $3457 (= $3456 + 1) முகவரியில் $EB உள்ளது, இலக்கு முகவரி $13EB மற்றும் $13EB என்பது சுட்டிக்காட்டி. முழுமையான $3456 அறிவுறுத்தலில் அடைப்புக்குறிக்குள் உள்ளது.

9) அ) 'ஐ லவ் யூ!' என்று எழுத 6502 இயந்திர மொழி நிரலை எழுதவும். நினைவகத்தில் உள்ள ASCII குறியீடுகளின் சரம், சரத்தின் நீளத்துடன் $0300 முகவரியிலிருந்து தொடங்குகிறது. நிரல் $0200 முகவரியில் தொடங்க வேண்டும். சில சப்ரூட்டின் மூலம் அவை ஒவ்வொன்றாக அனுப்பப்படுகின்றன என்று கருதி, ஒவ்வொரு எழுத்துகளையும் திரட்டியிலிருந்து பெறவும். மேலும், நிரலை கையால் செம்பிள் செய்யவும். (“ஐ லவ் யூ!” என்பதற்கான ASCII குறியீடுகளை நீங்கள் தெரிந்து கொள்ள வேண்டும் என்றால், அவை இதோ: 'I':4916, space : 2016, 'l': 6C16, 'o':6F16, 'v':7616, ' e':65, 'y':7916, 'u':7516, மற்றும் '!':2116. குறிப்பு: ஒவ்வொரு குறியீடும் 1 பைட் ஆகும்).

b) 'ஐ லவ் யூ!' என்று எழுத 6502 இயந்திர மொழி நிரலை எழுதவும். நினைவகத்தில் உள்ள ASCII குறியீடுகளின் சரம், சரத்தின் நீளம் இல்லாமல் $0300 முகவரியிலிருந்து தொடங்கி 0016 இல் முடிவடையும். நிரல் $0200 முகவரியில் தொடங்க வேண்டும். ஒவ்வொரு எழுத்தையும் திரட்டியில் இருந்து பெறவும், அவை சில சப்ரூட்டின் மூலம் ஒவ்வொன்றாக அங்கு அனுப்பப்படுகின்றன என்று வைத்துக் கொள்ளுங்கள். மேலும், நிரலை கைமுறையாக இணைக்கவும்.

தீர்வு:

அ) உத்தி: சரத்திற்கு 12 பைட்டுகள் உள்ளன: சரத்தின் நீளத்திற்கு 1 பைட் மற்றும் சரத்திற்கு 11 பைட்டுகள். எனவே, 0 இலிருந்து 12 மறு செய்கைகள் (லூப்பிங்ஸ்) இருக்க வேண்டும். அதாவது: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. இவை 12 எண்கள்.

0 முழு எண் X பதிவேட்டில் வைக்கப்பட்டுள்ளது மற்றும் 1110 = 1210 – 110 = B16 = $ 0B எண் நினைவகத்தில் ஒரு முகவரி இடத்தில் வைக்கப்பட்டுள்ளது, முகவரியை $0250 எனக் கூறவும். ஒவ்வொரு மறு செய்கைக்கும், X பதிவேட்டில் உள்ள மதிப்பு அதிகரிக்கப்பட்டு, முடிவு $0250 முகவரியில் உள்ள $0B உடன் ஒப்பிடப்படுகிறது. X இல் உள்ள மதிப்பு $0B இன் மதிப்பிற்குச் சமமான பிறகு, மறு செய்கை நிறுத்தப்படும். இந்த கட்டத்தில், சரத்தின் நீளம் (பைட்டுகளின் எண்ணிக்கை) மற்றும் சரம் ஆகியவை $0300 முதல் $030B (உள்ளடக்கிய) முகவரி இருப்பிடங்களை ஆக்கிரமித்துள்ளன. நினைவக முகவரிகளை $0300 இலிருந்து அதிகரிக்க, Y பதிவு பயன்படுத்தப்படுகிறது. குறியீடு:

LDA #$0B
அவை $0250
LDX #$00
LDY #$00
STA $0300 ; 11 இன் நீளம் சில சப்ரூட்டின் மூலம் A யில் போடப்பட்டு $0300க்கு செல்கிறது
லூப் ஐஎன்எக்ஸ்
அங்கு
CPY $0250
BEQ வளையம்

b) உத்தி: சரத்திற்கு 12 பைட்டுகள் உள்ளன: $00 Null டெர்மினேட்டருக்கு 1 பைட் மற்றும் சரத்திற்கு 11 பைட்டுகள். எனவே, 0 இலிருந்து 12 மறு செய்கைகள் (லூப்பிங்ஸ்) இருக்க வேண்டும். அதாவது: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. இவை 12 எண்கள்.

0 முழு எண் X பதிவேட்டில் வைக்கப்பட்டுள்ளது மற்றும் 1110 = 1210 – 110 = B16 = $ 0B எண் நினைவகத்தில் ஒரு முகவரி இடத்தில் வைக்கப்பட்டுள்ளது, முகவரியை $0250 எனக் கூறவும். ஒவ்வொரு மறு செய்கைக்கும், X பதிவேட்டில் உள்ள மதிப்பு அதிகரிக்கப்பட்டு, முடிவு $0250 முகவரியில் உள்ள $0B உடன் ஒப்பிடப்படுகிறது. X இல் உள்ள மதிப்பு $0B இன் மதிப்பிற்குச் சமமான பிறகு, மறு செய்கை நிறுத்தப்படும். இந்த கட்டத்தில், சரத்தின் பைட்டுகளின் எண்ணிக்கை மற்றும் பூஜ்ய எழுத்துக்கள் $0300 முதல் $030B (உள்ளடக்கிய) முகவரி இருப்பிடங்களை ஆக்கிரமித்துள்ளன. நினைவக முகவரிகளை $0300 இலிருந்து அதிகரிக்க, Y பதிவு பயன்படுத்தப்படுகிறது. குறியீடு:

LDA #$0B
அவை $0250
LDX #$00
LDY #$00
STA $0300 ; 'I' என்பது சில சப்ரூட்டின் மூலம் A இல் வைக்கப்பட்டு $0300க்கு செல்கிறது
லூப் ஐஎன்எக்ஸ்
அங்கு
CPY $0250
BEQ வளையம்