पर काम करना बंद कर देता है हर बार जब मैं टीआई -83 + कैलक्यूलेटर (Z80 प्रोसेसर) के लिए कोई एप्लिकेशन इकट्ठा करता हूं, तो यह कॉल पर चलना बंद कर देता है। यहां एक उदाहरण है ("हैलो") - यह ठीक चल रहा है, लेकिन कैलकुलेटर कॉल निर्देश पर जम जाता है। कॉल से पहले जो कुछ भी मैंने रखा है वह ठीक काम करता है, और जो कुछ भी मैंने रखा है वह नहीं चलता है। लेबल के बजाए पते दिखाने के लिए यह कोड का एक पृथक्करण है। डीबी लाइनों को दिखाने के लिए मैंने इसे "स्पर्श किया" है, जहां वे इसे पढ़ने में आसान बनाने के लिए गिरते हैं।Z80 (TI-83 +) कॉल
मुझे इस समस्या को असेंबली "प्रोग्राम" (जो रैम में लोड किया गया है) लिखने में कभी समस्या नहीं आई है। "अनुप्रयोग" (जो फ्लैश रोम में रखा जाता है) चलाने के साथ मुझे पता चलने वाली एकमात्र समस्या यह है कि वे स्व-संशोधित नहीं हो सकते हैं, और क्योंकि पेजिंग आवश्यक है, एक अलग पृष्ठ पर डेटा तक पहुंचना संभव नहीं है। यह आत्म-संशोधित नहीं है और केवल एक पृष्ठ है ... मैंने क्या गलत किया है?
0080 218900 LD HL, 0089h
0083 cd9900 CALL 0099h ; --- App stops here
0086 c38f00 JP 008fh
0089 48656c6c6f00 DB "Hello", 0
008f fd360500 LD (IY+05h), 0
0093 ef RST 28h ; B_CALL (
0094 364c DB 4C36h ; _ReloadAppEntryVecs)
0096 ef RST 28h ; B_CALL (
0097 2740 DB 4027h ; _JForceCmdNoChar) --- App should end here
0099 7e LD A, (HL) ; --- Call goes to here
009a ef RST 28h ; B_CALL (
009b 0445 DB 4504h ; _PutC)
009d fe00 CP 0
009f c8 RET Z
00a0 23 INC HL
00a1 18f6 JR 0099h
क्या पुटक कॉल गारंटी देता है कि यह रजिस्टर ए की सामग्री को सुरक्षित रखेगा? अगर बड़ी परेशानी नहीं है। यह पता लगाने के लिए कि क्या समस्या है, पुट कॉल को पुश के साथ घेरें और ए –
को सुरक्षित रखने के लिए एक पॉप को सुनिश्चित करें कि निश्चित रूप से एप्लिकेशन 4080h पर शुरू होते हैं। –
हां, पुट संचयक को संरक्षित करता है। – c4757p