2012-04-05 13 views
7

DCPU specification के अनुसार, केवल समय एक SET अनुदेश विफल रहता है a मूल्य एक शाब्दिक है।क्या आप [पीसी] पर लिख सकते हैं?

तो निम्नलिखित काम करेंगे?

SET [PC],0x1000 

एक अधिक उपयोगी संस्करण एक PC की भरपाई की स्थापना की जाएगी, तो एक नहीं बल्कि अजीब अनंत लूप होगा:

SET [PC+0x2],0x89C3 ; = SUB PC,0x2 
+0

"डीसीपीयू विनिर्देश" क्या है? यदि आपके पास कोई लिंक है तो कृपया एक लिंक प्रदान करें। –

+1

@AaronDigulla, http://0x10c.com/doc/dcpu-16.txt – Matt

+1

+1 ओह, मैं काल्पनिक कंप्यूटिंग से कैसे प्यार करता हूं :) –

उत्तर

7

शायद (= मुझे लगता है कि यह काम करना चाहिए, लेकिन मैं कोशिश नहीं की) ।

यह कहा जाता है "आत्म बदलाव" कोड और एक) सीमित रैम और ख) सीमित कोड आकार की वजह से बहुत आम 8bit युग था। इस तरह का कोड बहुत शक्तिशाली है लेकिन त्रुटि प्रवण है। यदि आपका कोड बेस बढ़ता है, तो यह जल्दी से रखरखाव दुःस्वप्न बन सकता है।

प्रसिद्ध उपयोग के मामलों:

  1. Windows 95 स्टैक पर कोड प्रतिपादन ग्राफिक्स के निर्माण के लिए इस तरह कोड का इस्तेमाल किया।
  2. वायरस और ट्रोजन (या एक JMP simluate के ढेर पर लिखने कोड वापसी पते में हेरफेर) C64
  3. पर
  4. अनुकरण स्विच बयान एक हमले वेक्टर के रूप में उपयोग
+0

एकमात्र अंतर मैं देख सकता हूँ कि आप 'DCPU साथ ढेर पर कोड निष्पादित कर सकते हैं नहीं,' के बाद से PC' मूल्यों के ढेर/राम एक पूरी तरह से अलग स्मृति स्थान में हैं, इसलिए सेट पीसी, ### 'पर कूदने के लिए नहीं किया जा सकता है ढेर। – Matt

+0

@Mat - आप डीसीपीयू के साथ स्टैक पर कोड निष्पादित कर सकते हैं। डीसीपीयू विनिर्देश के बहुत नीचे एक नज़र डालें। उस कोड की स्मृति डंप। – flumpb

+0

@ किस्प्लिट, आप स्टैक पर कोड डाल सकते हैं, लेकिन आप इसे कैसे कूदते हैं? वह डंप सिर्फ निष्पादन योग्य कोड है। – Matt

4

[पीसी] के लिए कोई मूल्य नहीं है, इसलिए मुझे लगता है कि पीसी को संग्रहीत करके आप इसे एक पॉइंटर (रजिस्ट्री या मेमोरी) के रूप में उपयोग कर सकते हैं।

 
     SET A , PC 
     SET [A+3], 0x8dc3 ; SUB PC, 3 (if A can't be changed from outside SUB PC,2 works too.) 
+0

वह कोड काम नहीं करेगा, क्योंकि कोड अनुभाग रैम/स्टैक के समान संख्याओं का उपयोग करता है।उस कथन के बाद 'ए' एक संख्या का मूल्यांकन करेगा, और उसके बाद कोड [कोड 'के बजाय' [ए + 3] 'स्मृति में उस स्थिति को संदर्भित करेगा। – Matt

+1

@Mat - कोई अलग अनुभाग नहीं हैं। आप डीसीपीयू के साथ स्वयं संशोधित कोड लिख सकते हैं। – flumpb

संबंधित मुद्दे

 संबंधित मुद्दे