डाल्विक निष्पादन योग्य निर्देश प्रारूप

यह पृष्ठ डाल्विक निष्पादन योग्य (डीईएक्स) प्रारूप और डाल्विक बाइटकोड द्वारा उपयोग किए जाने वाले निर्देश प्रारूपों को सूचीबद्ध करता है। इसका उपयोग बाइटकोड संदर्भ दस्तावेज़ के संयोजन में किया जाना है।

बिटवाइज़ विवरण

प्रारूप तालिका में पहला कॉलम प्रारूप के बिटवाइज़ लेआउट को सूचीबद्ध करता है। इसमें एक या अधिक स्थान-पृथक "शब्द" होते हैं जिनमें से प्रत्येक 16-बिट कोड इकाई का वर्णन करता है। किसी शब्द में प्रत्येक वर्ण चार बिट्स का प्रतिनिधित्व करता है, उच्च बिट्स से निम्न तक पढ़ा जाता है, जिसमें पढ़ने में सहायता के लिए लंबवत पट्टियाँ (" | ") शामिल होती हैं। " A " से अनुक्रम में अपरकेस अक्षरों का उपयोग प्रारूप के भीतर फ़ील्ड को इंगित करने के लिए किया जाता है (जो फिर सिंटैक्स कॉलम द्वारा आगे परिभाषित किया जाता है)। " op " शब्द का उपयोग प्रारूप के भीतर आठ-बिट ऑपकोड की स्थिति को इंगित करने के लिए किया जाता है। एक कटा हुआ शून्य (" Ø ") का उपयोग यह इंगित करने के लिए किया जाता है कि सभी बिट्स संकेतित स्थिति में शून्य होने चाहिए।

अधिकांश भाग के लिए, अक्षरांकन पहले की कोड इकाइयों से बाद की कोड इकाइयों की ओर बढ़ता है, और एक कोड इकाई के भीतर निम्न-क्रम से उच्च-क्रम की ओर बढ़ता है। हालाँकि, इस सामान्य नियम के कुछ अपवाद हैं, जो विभिन्न निर्देश प्रारूपों में समान अर्थ वाले भागों के नामकरण को समान बनाने के लिए किए जाते हैं। इन मामलों को प्रारूप विवरण में स्पष्ट रूप से नोट किया गया है।

उदाहरण के लिए, प्रारूप " B|A| op CCCC " इंगित करता है कि प्रारूप में दो 16-बिट कोड इकाइयां शामिल हैं। पहले शब्द में निम्न आठ बिट्स में ऑपकोड और उच्च आठ बिट्स में चार-बिट मानों की एक जोड़ी शामिल है; और दूसरे शब्द में एकल 16-बिट मान शामिल है।

आईडी प्रारूपित करें

प्रारूप तालिका में दूसरा कॉलम प्रारूप के लिए संक्षिप्त पहचानकर्ता को इंगित करता है, जिसका उपयोग अन्य दस्तावेजों और कोड में प्रारूप की पहचान करने के लिए किया जाता है।

अधिकांश प्रारूप आईडी में तीन अक्षर होते हैं, दो अंकों के बाद एक अक्षर होता है। पहला अंक प्रारूप में 16-बिट कोड इकाइयों की संख्या को इंगित करता है। दूसरा अंक प्रारूप में शामिल रजिस्टरों की अधिकतम संख्या को इंगित करता है (अधिकतम, क्योंकि कुछ प्रारूप रजिस्टरों की एक चर संख्या को समायोजित कर सकते हैं), विशेष पदनाम " r " से संकेत मिलता है कि रजिस्टरों की एक श्रृंखला एन्कोडेड है। अंतिम अक्षर अर्ध-स्मरणात्मक रूप से प्रारूप द्वारा एन्कोड किए गए किसी भी अतिरिक्त डेटा के प्रकार को इंगित करता है। उदाहरण के लिए, प्रारूप " 21t " लंबाई दो का है, इसमें एक रजिस्टर संदर्भ शामिल है, और इसके अतिरिक्त एक शाखा लक्ष्य भी शामिल है।

सुझाए गए स्थिर लिंकिंग प्रारूपों में एक अतिरिक्त " s " प्रत्यय होता है, जिससे उनमें कुल चार अक्षर बन जाते हैं। इसी प्रकार, सुझाए गए "इनलाइन" लिंकिंग प्रारूपों में एक अतिरिक्त " i " प्रत्यय है। (इस संदर्भ में, मशीन के कार्यान्वयन में अधिक प्रत्यक्ष संबंधों को छोड़कर, इनलाइन लिंकिंग स्थिर लिंकिंग की तरह है।) अंत में, कुछ अजीब प्रारूपों का सुझाव दिया गया है (उदाहरण के लिए, " 20bc ") में डेटा के दो टुकड़े शामिल हैं जो दोनों इसके प्रारूप आईडी में दर्शाए गए हैं .

टाइपकोड अक्षरों की पूरी सूची इस प्रकार है। ध्यान दें कि प्रारूप के आधार पर कुछ प्रपत्रों के अलग-अलग आकार होते हैं:

स्मृति सहायक बिट आकार अर्थ
बी 8 तुरंत हस्ताक्षरित byte
सी 16, 32 सी ऑनस्टेंट पूल इंडेक्स
एफ 16 इंटर एफ ऐस स्थिरांक (केवल सांख्यिकीय रूप से जुड़े प्रारूपों में उपयोग किया जाता है)
एच 16 तत्काल हस्ताक्षरित h at (32- या 64-बिट मान के उच्च-क्रम बिट्स; निम्न-क्रम बिट्स सभी 0 हैं)
मैं 32 तत्काल हस्ताक्षरित आई एनटी, या 32-बिट फ्लोट
एल 64 तत्काल हस्ताक्षरित लंबा , या 64-बिट डबल
एम 16 एम एथोड स्थिरांक (केवल स्थिर रूप से जुड़े प्रारूपों में उपयोग किया जाता है)
एन 4 तत्काल हस्ताक्षरित n ibble
एस 16 तत्काल हस्ताक्षरित एस लघु
टी 8, 16, 32 शाखा टी लक्ष्य
एक्स 0 कोई अतिरिक्त डेटा नहीं

वाक्य - विन्यास

प्रारूप तालिका का तीसरा कॉलम उन निर्देशों के लिए मानव-उन्मुख वाक्यविन्यास को इंगित करता है जो संकेतित प्रारूप का उपयोग करते हैं। प्रत्येक निर्देश नामित ऑपकोड से शुरू होता है और वैकल्पिक रूप से उसके बाद एक या अधिक तर्क होते हैं, जो स्वयं अल्पविराम से अलग होते हैं।

जहां भी कोई तर्क पहले कॉलम से किसी फ़ील्ड को संदर्भित करता है, उस फ़ील्ड के लिए अक्षर को सिंटैक्स में दर्शाया जाता है, फ़ील्ड के प्रत्येक चार बिट्स के लिए एक बार दोहराया जाता है। उदाहरण के लिए, पहले कॉलम में " BB " लेबल वाली आठ-बिट फ़ील्ड को सिंटैक्स कॉलम में " BB " भी लेबल किया जाएगा।

किसी रजिस्टर का नाम देने वाले तर्कों का रूप " v X " होता है। (गैर-आभासी) आर्किटेक्चर के साथ टकराव से बचने के लिए उपसर्ग " v " को अधिक सामान्य " r " के बजाय चुना गया था, जिस पर डाल्विक निष्पादन योग्य प्रारूप लागू किया जा सकता है जो स्वयं अपने रजिस्टरों के लिए उपसर्ग " r " का उपयोग करते हैं। (अर्थात, यह निर्णय आभासी और वास्तविक दोनों रजिस्टरों के बारे में एक साथ बात करना संभव बनाता है, बिना किसी भ्रम के।)

जो तर्क शाब्दिक मान दर्शाते हैं उनका रूप " #+ X " होता है। कुछ प्रारूप शाब्दिक संकेत देते हैं जिनके उच्च-क्रम बिट्स में केवल गैर-शून्य बिट्स होते हैं; इनके लिए, शून्य को वाक्यविन्यास में स्पष्ट रूप से दर्शाया जाता है, भले ही वे बिटवाइज़ प्रतिनिधित्व में प्रकट नहीं होते हैं।

वे तर्क जो सापेक्ष अनुदेश पता ऑफसेट दर्शाते हैं, उनका रूप " + X " होता है।

जो तर्क शाब्दिक स्थिर पूल सूचकांक को इंगित करते हैं उनका रूप " kind @ X " होता है, जहां " kind " इंगित करता है कि किस स्थिर पूल को संदर्भित किया जा रहा है। ऐसे प्रारूप का उपयोग करने वाला प्रत्येक ऑपकोड स्पष्ट रूप से केवल एक प्रकार के स्थिरांक की अनुमति देता है; पत्राचार का पता लगाने के लिए ऑपकोड संदर्भ देखें। निरंतर पूल के प्रकार हैं " string " (स्ट्रिंग पूल इंडेक्स), " type " (टाइप पूल इंडेक्स), " field " (फील्ड पूल इंडेक्स), " meth " (मेथड पूल इंडेक्स), और " site " (कॉल साइट इंडेक्स) ).

निरंतर पूल सूचकांकों के प्रतिनिधित्व के समान, ऐसे सुझाए गए (वैकल्पिक) फॉर्म भी हैं जो प्रीलिंक्ड ऑफसेट या सूचकांकों को दर्शाते हैं। सुझाए गए प्रीलिंक किए गए मान दो प्रकार के होते हैं: वीटेबल ऑफ़सेट (" vtaboff " के रूप में दर्शाया गया है) और फ़ील्ड ऑफ़सेट (" fieldoff " के रूप में दर्शाया गया है)।

ऐसे मामलों में जहां एक प्रारूप मान स्पष्ट रूप से वाक्यविन्यास का हिस्सा नहीं है बल्कि इसके बजाय एक प्रकार चुनता है, प्रत्येक संस्करण को पत्राचार को इंगित करने के लिए उपसर्ग " [ X = N ] " (उदाहरण के लिए, " [A=2] ") के साथ सूचीबद्ध किया जाता है। .

प्रारूप

प्रारूप पहचान वाक्य - विन्यास उल्लेखनीय ऑपकोड को कवर किया गया
एन/ए 00x N/A अप्रयुक्त ऑपकोड के लिए प्रयुक्त छद्म प्रारूप; ब्रेकप्वाइंट ऑपकोड के लिए नाममात्र प्रारूप के रूप में उपयोग के लिए सुझाव दिया गया
ØØ| सेशन 10x op
बी|ए| सेशन 12x op वीए, वीबी
11एन op वीए, #+बी
एए| सेशन 11x op वीएए
10t op +एए जाओ
ØØ| ऑप AAAA 20t op +AAAA गोटो/16
एए| ऑप बीबीबीबी 20बीसी op एए, मेहरबान@बीबीबीबी सांख्यिकीय रूप से निर्धारित सत्यापन त्रुटियों के लिए सुझाया गया प्रारूप; ए त्रुटि का प्रकार है और बी एक प्रकार-उपयुक्त तालिका में एक सूचकांक है (उदाहरण के लिए ऐसी कोई विधि नहीं त्रुटि के लिए विधि संदर्भ)
एए| ऑप बीबीबीबी 22x op वीएए, वीबीबीबीबी
21टी op वीएए, +बीबीबीबी
-21 op वीएए, #+बीबीबीबी
21 घंटे op वीएए, #+बीबीबीबी0000
op वीएए, #+बीबीबीबी00000000000
21सी op वीएए, टाइप करें@बीबीबीबी
op वीएए, फ़ील्ड@बीबीबीबी
op वीएए, मेथड_हैंडल@बीबीबीबी
op वीएए, प्रोटो@बीबीबीबी
op वीएए, स्ट्रिंग@बीबीबीबी
चेक-कास्ट
स्थिरांक-वर्ग
स्थिरांक-विधि-हैंडल
स्थिरांक-विधि-प्रकार
स्थिरांक-स्ट्रिंग
एए| ऑप सीसी|बीबी 23x op वीएए, वीबीबी, वीसीसी
22बी op वीएए, वीबीबी, #+सीसी
बी|ए| ऑप सीसीसीसी 22t op वीए, वीबी, +सीसीसीसी
22s op वीए, वीबी, #+सीसीसीसी
22सी op वीए, वीबी, टाइप@सीसीसीसी
op वीए, वीबी, फील्ड@सीसीसीसी
का उदाहरण
22सी.एस op वीए, वीबी, फील्डऑफ@सीसीसीसी प्रारूप 22सी के स्थिर रूप से जुड़े फ़ील्ड एक्सेस निर्देशों के लिए सुझाया गया प्रारूप
ØØ| op AAAA लो AAAA हाय 30t op +AAAAAAAA गोटो/32
ØØ| ओपी एएएए बीबीबीबी 32x op वीएएएए, वीबीबीबीबी
एए| ओपी बीबीबीबी लो बीबीबीबी हाय 31i op वीएए, #+बीबीबीबीबीबीबी
31t op वीएए, +बीबीबीबीबीबीबी
31सी op वीएए, स्ट्रिंग@बीबीबीबीबीबीबी कॉन्स्ट-स्ट्रिंग/जंबो
ए|जी| ऑप बीबीबीबी एफ|ई|डी|सी 35सी [ A=5 ] op {वीसी, वीडी, वीई, वीएफ, वीजी}, मेथ@बीबीबीबी
[ A=5 ] op {वीसी, वीडी, वीई, वीएफ, वीजी}, साइट@बीबीबीबी
[ A=5 ] op {वीसी, वीडी, वीई, वीएफ, वीजी}, टाइप@बीबीबीबी
[ A=4 ] op {वीसी, वीडी, वीई, वीएफ}, kind @बीबीबीबी
[ A=3 ] op {वीसी, वीडी, वीई}, kind @बीबीबीबी
[ A=2 ] op {वीसी, वीडी}, kind @बीबीबीबी
[ A=1 ] op {वीसी}, kind @बीबीबीबी
[ A=0 ] op {}, kind @बीबीबीबी

यहां अक्षरों में असामान्य विकल्प गिनती करने की इच्छा को दर्शाता है और संदर्भ सूचकांक में प्रारूप 3rc के समान लेबल होता है।

35ms [ A=5 ] op {वीसी, वीडी, वीई, वीएफ, वीजी}, vtaboff@BBBB
[ A=4 ] op {वीसी, वीडी, वीई, वीएफ}, vtaboff@BBBB
[ A=3 ] op {वीसी, वीडी, वीई}, vtaboff@BBBB
[ A=2 ] op {वीसी, वीडी}, vtaboff@BBBB
[ A=1 ] op {वीसी}, vtaboff@BBBB

यहां अक्षरों में असामान्य विकल्प गिनती करने की इच्छा को दर्शाता है और संदर्भ सूचकांक में प्रारूप 3rms के समान लेबल होता है।

प्रारूप 35सी के स्थिर रूप से जुड़े invoke-virtual और invoke-super निर्देशों के लिए सुझाया गया प्रारूप
35मी [ A=5 ] op {वीसी, वीडी, वीई, वीएफ, वीजी}, इनलाइन@बीबीबीबी
[ A=4 ] op {वीसी, वीडी, वीई, वीएफ}, इनलाइन@बीबीबीबी
[ A=3 ] op {वीसी, वीडी, वीई}, इनलाइन@बीबीबीबी
[ A=2 ] op {वीसी, वीडी}, इनलाइन@बीबीबीबी
[ A=1 ] op {वीसी}, इनलाइन@बीबीबीबी

यहां अक्षरों में असामान्य विकल्प गिनती करने की इच्छा को दर्शाता है और संदर्भ सूचकांक में प्रारूप 3आरएमआई के समान लेबल होता है।

प्रारूप 35सी के इनलाइन लिंक्ड invoke-static और invoke-virtual निर्देशों के लिए सुझाया गया प्रारूप
एए| ओपी बीबीबीबी सीसीसीसी 3आरसी op {vCCCC .. vNNNN}, meth@BBBB
op {वीसीसीसीसी .. वीएनएनएनएन}, साइट@बीबीबीबी
op {vCCCC .. vNNNN}, type@BBBB

जहां NNNN = CCCC+AA-1 , अर्थात A गिनती 0..255 निर्धारित करता है, और C पहला रजिस्टर निर्धारित करता है

3rms op {vCCCC .. vNNNN}, vtaboff@BBBB

जहां NNNN = CCCC+AA-1 , अर्थात A गिनती 0..255 निर्धारित करता है, और C पहला रजिस्टर निर्धारित करता है

प्रारूप 3rc स्थिर रूप से जुड़े invoke-virtual और invoke-super निर्देशों के लिए सुझाया गया प्रारूप
3rmi op {वीसीसीसीसी .. वीएनएनएनएन}, इनलाइन@बीबीबीबी

जहां NNNN = CCCC+AA-1 , अर्थात A गिनती 0..255 निर्धारित करता है, और C पहला रजिस्टर निर्धारित करता है

प्रारूप 3rc के इनलाइन लिंक्ड invoke-static और invoke-virtual निर्देशों के लिए सुझाया गया प्रारूप
ए|जी| ओपी बीबीबीबी एफ|ई|डी|सी एचएचएचएच 45सीसी [ A=5 ] op {वीसी, वीडी, वीई, वीएफ, वीजी}, मेथ@बीबीबीबी, प्रोटो@एचएचएचएच
[ A=4 ] op {वीसी, वीडी, वीई, वीएफ}, मेथ@बीबीबीबी, प्रोटो@एचएचएचएच
[ A=3 ] op {वीसी, वीडी, वीई}, मेथ@बीबीबीबी, प्रोटो@एचएचएचएच
[ A=2 ] op {वीसी, वीडी}, मेथ@बीबीबीबी, प्रोटो@एचएचएचएच
[ A=1 ] op {वीसी}, मेथ@बीबीबीबी, प्रोटो@एचएचएचएच
आह्वान-बहुरूपी
एए| ओपी बीबीबीबी सीसीसीसी ह्ह्ह्ह्ह 4आरसीसी op> {vCCCC .. vNNNN}, meth@BBBB, proto@HHHH

जहां NNNN = CCCC+AA-1 , अर्थात A गिनती 0..255 निर्धारित करता है, और C पहला रजिस्टर निर्धारित करता है

आह्वान-बहुरूपी/श्रेणी
एए| ओपी बीबीबीबी लो बीबीबीबी बीबीबीबी बीबीबीबी हाय 51ली op वीएए, #+बीबीबीबीबीबीबीबीबीबीबीबी स्थिरांक-चौड़ा