2010-03-07 13 views
9

एमओवी संभवतः एएसएम सीखते समय हर कोई सीखता है।MOV src dest (या) MOV dest src?

अभी मैं एक किताब Assembly Language Programming in GNU/Linux for IA32 Architectures By Rajat Moona जो कहते हैं का सामना करना पड़ा:

alt text http://i.imagehost.org/0897/mov.gif

लेकिन मुझे पता चला है कि यह MOV dest, src है। इसकी तरह src के साथ "dest लोड करें"। यहां तक ​​कि Wiki भी यही कहता है।

मैं यह नहीं कह रहा हूं कि लेखक गलत है। मुझे पता है कि वह सही है। लेकिन मैं यहाँ क्या याद कर रहा हूँ?

बीटीडब्ल्यू .. वह इन निर्देशों को इकट्ठा करने के लिए जीसीसी के as का उपयोग कर रहा है। लेकिन वह निर्देश वाक्यविन्यास सही नहीं बदलना चाहिए?

+0

मैं प्रस्तावना और 1 अध्याय के 1 पैरा पढ़ा जाना चाहिए था। मैं उन्हें छोड़ दिया। :( – claws

उत्तर

27

mov dest, srcइंटेल सिंटैक्स कहा जाता है।

mov src, destएटी & टी वाक्यविन्यास कहा जाता है।

जीएनयू असेंबलर AT & टी सिंटैक्स का उपयोग करता है, अन्य सभी x86 असेंबलर जिन्हें मैं इंटेल सिंटैक्स का उपयोग करने के बारे में जानता हूं। आप on wikipedia मतभेदों पर पढ़ सकते हैं।

+10

कुछ लोग बस को देखने के लिए दुनिया को जला चाहते हैं। – Paschalis

+0

ध्यान दें कि जीएनयू कोडांतरक एटी एंड टी वाक्यविन्यास _by default_, नहीं का उपयोग करता है बिना शर्त रूप से। आप इसे '.intel_syntax noprefix' निर्देश का उपयोग करके इंटेल सिंटैक्स पर स्विच कर सकते हैं। – Ruslan

1

असेंबली भाषा वाक्यविन्यास के दो अलग-अलग प्रकार हैं - इंटेल और एटी & टी वाक्यविन्यास। आप Wikipedia's assembly language page दोनों की तुलना कर सकते हैं।

संभावना है कि आपकी पुस्तक AT & टी सिंटैक्स का उपयोग करती है, जहां स्रोत ऑपरेशन गंतव्य से पहले आता है।

6

हां, गैस/एटी & टी सिंटैक्स का उपयोग करता है जो ऑर्डर src, dest। एमएएसएम, टीएएसएम, एनएसएम, आदि सभी ऑर्डर 'dest, src' का उपयोग करते हैं। जैसा कि होता है, AT & टी सिंटैक्स इंटेल प्रोसेसर के साथ बहुत अच्छी तरह से फिट नहीं होता है, और (कम से कम आईएमओ) लगभग अपठनीय गड़बड़ है। movzx विशेष रूप से बुरा बाहर आता है।

+0

"अपठनीय गड़बड़" काफी सुंदर है। –

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