6502 अप्रत्यक्ष पहुंच मोड - 6502

मेरा सवाल 6502 विधानसभा भाषा के बारे में है। मैं इस वेबसाइट का उपयोग करके इसे सीखने की कोशिश कर रहा हूं https://skilldrick.github.io/easy6502/

मोड को संबोधित करने के विषय पर। मैं अप्रत्यक्ष एड्रेसिंग मोड को समझ नहीं पा रहा हूं। नीचे स्रोत कोड उदाहरण देखें।

LDA #$01
STA $f0
LDA #$cc
STA $f1
JMP ($00f0) ;dereferences to $cc01

क्यों है JMP ($00f0) के लिए संदर्भित $cc01 के बजाय $01cc

मेरी याददाश्त इस तरह दिखती है

00f0: 01 cc 00 00 00 00 00 00 00 00 00 00 00 00 84

यहाँ आप देखते हैं 00f0 इसके साथ आरंभ होता है 01 और फिर उसके बाद cc इसलिए यह मेरे लिए और अधिक तार्किक लग रहा है कि कूद निर्देश को अस्वीकार कर दिया जाएगा $01cc, लेकिन यह किसी भी तरह से उलट क्यों है?

उत्तर:

उत्तर № 1 के लिए 1

6502 थोड़ा एंडियन है। इसका मतलब है कि 16 बिट मान, जो दो बाइट लेते हैं, सबसे कम बाइट सबसे कम पते पर संग्रहीत किया जाता है। दो के बाद STAएस, आपके पास है:

00f0: 01
00f1: cc

The JMP अनुदेश पर बाइट लोड f0 कम बाइट में गंतव्य पता और बाइट पर f1 गंतव्य पता अर्थ के उच्च बाइट में आप कूद cc01


जवाब के लिए 0 № 2

पर एक अतिरिक्त जवाब "क्यूं कर यह किसी भी तरह उलट है? ": लिटिल एंडियन दिशा जो में चलाता है, तो लागू करने के लिए सस्ता है का पालन करता है ।आप सभी जानकारी है इससे पहले कि आप अंकगणित कर रहा शुरू करने के लिए पर्याप्त जानकारी है ।

यह ६५०२ की साइकिल टूटने जब एक साथ काम कर रहा है $aabb, X अनुदेश:

  1. अनुदेश लायें
  2. ऑपरेंड पते की कम बाइट लायें
  3. कम बाइट के ऑपरेंड पता करने के लिए X रजिस्टर जोड़ें, उच्च बाइट ऑपरेंड का पता लायें
  4. उच्च बाइट $aa और कम बाइट के साथ पते से पढ़ें $bb एक्स, अगर वहां ले गया था तो बाहर काम एक पल में उपयोग के लिए $aa 1.. ।
  5. अगर वहां ले गया था तो उचित पते से पढ़ें

तो अगर है कि "एस LDA तो लागत चार चक्र अगर तुम डॉन "टी एक पृष्ठ सीमा पार, पांच अगर तुम करते हो ।अब कल्पना पते बड़े एंडियन प्रारूप में जमा हो गए । फिर:

  1. अनुदेश लायें
  2. ऑपरेंड पते की उच्च बाइट लाएं
  3. ऑपरेंड पते की कम बाइट लायें
  4. ऑपरेंड पते की कम बाइट में X जोड़ें
  5. उच्च बाइट $aa और कम बाइट के साथ पते से पढ़ें $bb एक्स, अगर वहां ले गया था तो बाहर काम एक पल में उपयोग के लिए $aa 1.. ।
  6. अगर वहां ले गया था तो उचित पते से पढ़ें

तो तुम ' ve एक चक्र द्वारा लागत में वृद्धि हुई । आप कर सकते है "t शुरू जब तक आप कम बाइट है, और तुम" पुनः कम बाइट एक चक्र बाद में हो रही है ।

तो अगर आप चीजों की व्यवस्था नहीं है कि सबसे कम बाइट पहले दिलवाया है तो आप समय खो रहे हैं ।


संबंधित सवाल
सबसे लोकप्रिय