मैं वर्तमान में कक्षा के लिए एआरएम असेंबली सीख रहा हूं और एक समस्या में आया हूं जहां मुझे "सरणी" का उपयोग करने की आवश्यकता होगी। मुझे पता है कि एआरएम में एक सरणी जैसी कोई चीज नहीं है इसलिए मुझे अंतरिक्ष आवंटित करना होगा और इसे एक सरणी के रूप में देखना होगा। मेरे पास दो प्रश्न हैं।एआरएम असेंबली में सरणी कैसे व्यवस्थित करें?
- क्या मैं सरणी में नए मान सही ढंग से जोड़ रहा हूं या क्या मैं केवल पिछले मान को ओवरराइट कर रहा हूं? यदि मैं मूल्यों को ओवरराइट कर रहा हूं, तो मैं नए मान जोड़ने के बारे में कैसे जा सकता हूं?
- मैं सरणी के विभिन्न मानों के माध्यम से लूपिंग के बारे में कैसे जा सकता हूं? मुझे पता है कि मुझे
loop:
का उपयोग करना है, लेकिन यह नहीं पता कि विभिन्न "इंडेक्स" तक पहुंचने के लिए इसका उपयोग कैसे किया जाए।
अभी तक, यह मुझे एआरएम दस्तावेज पढ़ने से प्राप्त हुआ है जैसा कि मैंने ऑनलाइन संसाधनों से एकत्र किया है।
.equ SWI_Exit, 0x11
.text
.global _start
_start: .global _start
.global main
b main
main:
ldr R0, =MyArray
mov R1, #42
str R1, [R0], #4
mov R1, #43
str R1, [R0], #4
swi SWI_Exit
MyArray: .skip 20 * 4
.end
एक तरफ ध्यान दें के रूप में, मैं ARMSim# उपयोग कर रहा हूँ के रूप में मेरे प्रोफेसर के लिए आवश्यक है, तो जीएनयू उपकरण द्वारा मान्यता प्राप्त कुछ आदेश ARMSim # द्वारा मान्यता प्राप्त नहीं किया जाएगा, या कम से कम मुझे विश्वास है कि मामला है। कृपया मुझे सुधारें अगर मैं गलत हूं।
डाउन वोट क्यों? हां, यह आंशिक रूप से होमवर्क से संबंधित है लेकिन मैं यह जानकारी दूसरों के लिए उपयोगी होने देख सकता हूं और मैं नहीं पूछ रहा हूं कि मेरा असाइनमेंट कैसे करें। – allejo
यदि आप इसे इस तरह से बताना चाहते हैं तो किसी भी प्रोसेसर परिवार में सरणी जैसी कोई चीज नहीं है। Arrays वास्तव में मौजूद नहीं है, वे सिर्फ स्मृति की एक ब्लॉब है जो कहीं से शुरू होता है। कई निर्देश सेट, निश्चित रूप से हाथ, एक रजिस्टर ऑफसेट एड्रेसिंग मोड का समर्थन करते हैं जो आपको एक सरणी का शुद्ध अनुभव प्राप्त करने की अनुमति देता है। मैं भविष्य में आपके द्वारा किए गए बयान को सावधान कर दूंगा। –
@ ड्वाल्च आह नोट के लिए धन्यवाद, मेरी समझ के साथ बहुत मदद की। मैं यह भी ध्यान में रखूंगा कि उन्हें एक सरणी नहीं कहने के लिए – allejo