lw
उस पते की आवश्यकता है जिसे आप शब्द-संरेखित होने के लिए लोड करते हैं (यानी पता 4 का एक होना चाहिए)।
तो मान लीजिए कि आप इस पते 0x1000 पर स्थित सरणी है कि आपके पास करते हैं:
array: .byte 0,1,2,3
और तुम दूसरे बाइट (1
) है, जो पता 0x1001 पर स्थित है, जो शब्द नहीं है लोड करना चाहते हैं -aligned। यह स्पष्ट रूप से काम नहीं करेगा, जब तक आप 0xपते 0x1000 से नहीं करते हैं और फिर बाइट प्राप्त करने के लिए कुछ स्थानांतरण और एंडिंग करते हैं, जो प्रोग्रामर के रूप में वास्तविक परेशानी होगी।
या मान लें कि आप 0
लोड करना चाहते हैं, जो शब्द-संरेखित पते पर स्थित है, और कुछ मूल्य के विरुद्ध इसकी तुलना करें। तो आप 0xपते 0x1000 से करते हैं, लेकिन अब आपके लक्षित रजिस्टर में 0
की बजाय 0x00010203
या 0x03020100
(एंडियननेस के आधार पर) होगा। तो तुलना करने से पहले आपको थोड़ा सा करना होगा और बाइट निकालना होगा जिसे आप चाहते थे।
जैसा कि मुझे यकीन है कि आप देख सकते हैं कि जब भी आप डेटा के व्यक्तिगत बाइट्स को संसाधित करना चाहते हैं तो इन अतिरिक्त चरणों को करना बहुत असुविधाजनक होगा - जो कि अधिकांश कार्यक्रमों में एक बहुत ही आम ऑपरेशन है।
मूल अल्फा में उप शब्द लोड/स्टोर निर्देश नहीं थे। आप उनके बिना बहुत दूर हो सकते हैं, लेकिन अल्फा को अंततः मल्टीप्रोसेसर सिस्टम के लिए इन निर्देशों के साथ निर्देश सेट का विस्तार करना पड़ा। – EOF