2017-06-11 22 views
12

दूसरे शब्दों में, क्या कोई मामला है जिसके लिए मुझे इस निर्देश की आवश्यकता हो सकती है?क्यों आरईपी लोड AL निर्देश मौजूद है?

इंटेल निर्देश मैनुअल से, यह है कि क्या अनुदेश करना है:

लोड (ई) डी एस से CX बाइट्स: अल करने के लिए [(ई) एसआई]।

एनएएसएम में निम्न उदाहरण लें: अनुदेश rep lodsb निष्पादित हो रहा है

section .data 
    src: db 0, 1, 2, 3 

section .code 
    mov esi, src 
    mov ecx, 4 
    rep lodsb ; mov al, byte[esi + ecx -1]; ecx++ 

करते हुए मैं al में लोड मूल्य से अधिक किसी भी नियंत्रण नहीं है। मैं बस इतना कर सकता हूं, जब तक निर्देश al का अंतिम मान प्राप्त करने के लिए समाप्त नहीं हो जाता है, जो निश्चित रूप से मैं लूप के बिना सीधे प्राप्त कर सकता हूं।

वही सवाल परिवार के बाकी हिस्सों के लिए जाता है: REP LODS AX, REP LODS EAX और REP LODS RAX

+1

मेरे प्राचीन माइक्रोसॉफ्ट MASM "प्रोग्रामर गाइड" का कहना है कि 'LODS' निर्देश जो पुनरावृत्ति उपसर्ग नहीं ले करता है की है कि परिवार में केवल एक ही है। –

+8

यह अस्तित्व में है क्योंकि यह अस्तित्व में रहने के लिए बहुत महंगा था। आप केवल 20000 ट्रांजिस्टर से 16-बिट प्रोसेसर बनाने के लिए niceties बर्दाश्त नहीं कर सकते हैं। –

+0

@ वेदरवेन, मुझे लगता है कि यह हमारे लिए तय करने के लिए एमएएसएम तक नहीं है, एलओएल –

उत्तर

9

स्मृति से पढ़ना कुछ मामलों में दुष्प्रभाव हो सकता है। उदाहरण के लिए, यह तब हो सकता है जब स्मृति हार्डवेयर रजिस्टरों के लिए मैप किया गया हो। सटीक दुष्प्रभाव हार्डवेयर पर निर्भर करेगा। तो rep lodsb बहुत दुर्लभ मामलों में उपयोगी हो सकता है जहां आपको दुष्प्रभाव होने की आवश्यकता है, लेकिन पढ़ने वाले मूल्यों की आवश्यकता नहीं है।

7

... क्या कोई ऐसा मामला है जो मुझे इस निर्देश की आवश्यकता है?

आप नहीं हो सकता है जरूरत यह दर असल, लेकिन 16-बिट दुनिया है, जहां अंतरिक्ष संरक्षण महत्वपूर्ण है में कोडिंग, मैं और अधिक है की तुलना में एक बार वरीय

rep lodsb 
अब खत्म हो गया

(में बाइट्स)

add si, cx 
mov al, [si-1] 

बेशक यह सभी स्थितियों पर निर्भर है।

ध्यान रखें कि आपके प्रतिस्थापन अनुदेश पाश बिना लाने के लिए वास्तव में है mov al, byte[esi + ecx -1]

+0

ऐसा लगता है कि इसकी आवश्यकता बहुत मुश्किल है। सुधार के लिए भी धन्यवाद। –

+0

यय, कोड गोल्फ के लिए बेल्ट में एक और चाल! –

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