2011-08-03 10 views
9

मैं असेंबली भाषा पर बहुत नया हूं। मैं लगभग एमआईपीएस आर्किटेक्चर पढ़ रहा था और मैं रजिस्टर प्रारूप (आर-प्रारूप) के अंतिम क्षेत्र से फंस गया हूं। यहां इसका दृश्य प्रतिनिधित्व है, enter image description here क्या कोई मुझे के साथ मेरी सहायता कर सकता है छठे क्षेत्र का अर्थ और हम इसकी गणना कैसे करते हैं? अग्रिम धन्यवाद।आर-प्रारूप निर्देश सेट में func का अर्थ क्या है?

उत्तर

7

विवरण के रूप में सभी आर-प्रकार निर्देश का उल्लेख है (उदाहरण के लिए ADD, AND, SLL और अन्य) 6 सबसे महत्वपूर्ण बिट (= सेशन) 0 पर सेट है, भेद करने के लिए उन दोनों के बीच करने के लिए है एक ही तरीका है इसका मतलब है कि 6 कम से कम महत्वपूर्ण बिट्स (= funct) देखें। दूसरे शब्दों में वे निर्देश प्रकार निर्धारित करते हैं। शायद एक उदाहरण मदद करेगा।

ADD $1, $2, $3 

है:

op = 0 (as all R-type instructions) 
rs = 2 
rt = 3 
rd = 1 
shamt = 0 
funct = 0x20 = 0b00000100000 = 32 

एन्कोडिंग इस प्रकार होगा:

0000 0000 0100 0011 0000 1000 0010 0000 

उदा के लिए XOR (एक और आर-प्रकार) निर्देश फंक्शन 0b100110 = 0x26 = 38 है। तो आप यह निर्देश देखकर "गणना करें" कि आप किस निर्देश को एन्कोड करना चाहते हैं।

(MIPS Instruction Reference से लिया गया)।

+0

क्या आप कृपया बता सकते हैं कि आपको func = 0x20 कैसे मिला? –

+1

@ JustAnotherProgrammer: मैंने इसे एक टेबल में देखा (जैसे एक आर्सेन [लिंक किया गया] (http://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats#Opcodes))। 'Add' के लिए कार्य' 0x20' है। – user786653

+0

मदद के लिए धन्यवाद :) –

1

निम्न तालिका से:

http://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats#Opcodes

लगभग सभी आर-प्रकार शिक्षा के opcode 00 है, इसलिए funct ALU समारोह का चयन करें।

Funct निर्देश है कि एक opcode का हिस्सा के लिए, funct पैरामीटर अलग निर्देश अंतर करने के लिए आवश्यक नियंत्रण कोड में शामिल है। 6 बिट लंबा (0 से 5)। उदाहरण: ओपोड 0x00 एएलयू तक पहुंचता है, और फ़ंक्शन का चयन करने के लिए कौन सा एएलयू फ़ंक्शन उपयोग करता है।

+0

: उत्तर के लिए धन्यवाद। –

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