मैंने नेट पर खोज की है, लेकिन मुझे यह समझने के लिए एक स्पष्ट उदाहरण नहीं मिला कि यह निर्देश क्या करता है। इसलिए, अगर कोई इस बारे में एक उदाहरण दे सकता है, तो यह मेरे लिए बहुत उपयोगी होगा।movsbl निर्देश क्या करता है?
उत्तर
बाइट से लांगवर्ड तक विस्तार के साथ ले जाएं। इंटेल सिंटैक्स में, इस निर्देश का निमोनिक MOVSX है।
ए सी कंपाइलर इस निर्देश का उपयोग कर सकता है जब int8_t
के एक चर को int
में परिवर्तित करने की आवश्यकता है, जो अंकगणित और कुछ अन्य परिचालनों (पूर्णांक पदोन्नति) पर स्वचालित रूप से होता है।
क्योंकि यह निर्देश गंतव्य रजिस्टर के सभी 32 (या 64) बिट्स को लिखता है, यह प्रदर्शन दंड से बचाता है जो लेखन के परिणामस्वरूप केवल निम्न 8 (या 16) बिट्स के रजिस्टर के परिणामस्वरूप हो सकता है। निर्देशों का एक समान सेट शून्य बिट्स (इंटेल सिंटैक्स में MOVZX, AT & टी वाक्यविन्यास (आकार से आकार टी तक) में MOVZX के साथ विस्तार करने की अनुमति देता है।
मान लीजिए कि यह एटी & आईए 32 (i386/x86_64) के लिए टी असेंबली सिंटैक्स का अर्थ है बाइट से लांग तक साइन-एक्सटेंशन के साथ एमओवी। यह MOVSX r32, r/m8
के बराबर है 3-730 Vol. 2A देखें।
movsbl
के लिए शीर्ष वेब हिट this page है, और यदि आप movsbl
के लिए खोज यह कहता है
MOVSBL and MOVZBL
* MOVSBL sign-extends a single byte, and copies it into a
double-word destination
* MOVZBL expands a single byte to 32 bits with 24 leading
zeros, and copies it into a double-word destination
Example:
%eax = 0x12345678
%edx = 0xAAAABBBB
MOVB %dh, %al %eax = 0x123456BB
MOVSBL %dh, %eax %eax = 0xFFFFFFBB
MOVZBL %dh, %eax %eax = 0x000000BB
मेरे लिए एक बहुत स्पष्ट उदाहरण की तरह लग रहा। अधिक उदाहरणों के लिए, अगले पृष्ठ को पढ़ें।
मान लीजिए कि आप x86 के बारे में बात कर रहे हैं, MOVSBL निर्देश का प्रतिनिधित्व करते हुए एक बाइट (8 बिट्स) का विस्तार करता है संख्या 32-बिट हस्ताक्षरित संख्या पर हस्ताक्षर करता है। शेष 24 बिट्स संकेत के आधार पर शून्य या एक हैं ताकि दोनों का पूरक मूल्य बना रहता है।
मतलब, यदि आपके पास ऋणात्मक संख्या है, तो ऊपरी 24 बिट्स 1 एस होंगे, अन्यथा वे शून्य होंगे।
हस्ताक्षरित संख्याओं के बराबर MOVZBL है, जो हमेशा 0 के साथ विस्तारित होता है।
- 1. 'परीक्षण' निर्देश क्या करता है?
- 2. उपयोग निर्देश क्या करता है, बिल्कुल?
- 3. बीईक्यू निर्देश वास्तव में क्या करता है?
- 4. क्या एमआरओटीक्ट एआरएम लिनक्स पर निर्देश कैश फ्लश करता है?
- 5. क्या REX.B MOVSS निर्देश के साथ काम करता है?
- 6. 'परीक्षण' निर्देश कैसे काम करता है?
- 7. एक जेवीएम निर्देश क्या है?
- 8. क्या कोई एक्सएसएल "शामिल है" निर्देश है?
- 9. एआरएम थंब निर्देश सेट क्या है?
- 10. एक विशेषाधिकार प्राप्त निर्देश क्या है?
- 11. प्रत्येक एएसएम निर्देश का आकार क्या है?
- 12. क्या sy86c64 x86_64 पर एक निर्देश है?
- 13. एमआईपीएस निर्देश प्रारूप में आरटी क्या है?
- 14. जीसीसी में '__IO' निर्देश क्या है?
- 15. {$ C PRELOAD} निर्देश का अर्थ क्या है?
- 16. निर्देश
- 17. जेएक्सबी बनाना एक एक्सएमएल प्रोसेसिंग निर्देश उत्पन्न करता है
- 18. कुछ आसान एफ # कोड क्या है जो .टेल आईएल निर्देश उत्पन्न करता है?
- 19. आईआर 6 निर्देश I386 निर्देश
- 20. आईओ -32 एटी एंड टी वाक्यविन्यास में MOVZBL निर्देश क्या करता है?
- 21. प्रति सी-निर्देश कितने एएसएम-निर्देश?
- 22. सीएमपीएसबी निर्देश
- 23. AngularJS निर्देश
- 24. सीएमके "प्रोजेक्ट" निर्देश का उचित उपयोग क्या है
- 25. इंटेल निर्देश के LOCK उपसर्ग। मुद्दा क्या है?
- 26. एलएलवीएम निर्देश
- 27. SQLAlchemy - निर्देश
- 28. x86 में "PAUSE" निर्देश का उद्देश्य क्या है?
- 29. प्रीप्रोसेसर निर्देश?
- 30. प्रीप्रोसेसर निर्देश
वहां केवल एक असेंबली निर्देश सेट किया गया है ... आप किसके साथ काम कर रहे हैं? 86? MIPS? पीपीसी? एआरएम? आदि ... आदि ... आदि ..? –
मुझे लगता है कि यह ia32 है। – sarslanhan
और MOVZBL से शून्य तक विस्तार: http://stackoverflow.com/questions/9317922/what-does-the-movzbl-instruction-do-in-ia-32-att-syntax?lq=1 –