मैं NASM following this tutorial (सेक्शन 4) का उपयोग करके एक अधिक indepth हैलो दुनिया पर काम कर रहा हूँ। यह ट्यूटोरियल अनिवार्य रूप से आपको कमांड लाइन इनपुट को संभालने का तरीका सिखाता है। ऊपर 3 पॉप निर्देश की चर्चा करते हुए error: instruction not supported in 64-bit mode
साथ संकलन के दौरानपॉप निर्देश NASM का उपयोग कर 64-बिट मोड में समर्थित नहीं है?
section .text
global _start
_start:
pop ebx ; arg count
pop ebx ; arg[0] the program name
pop ebx ; arg[1-n] the remainder of the args
; must each be indiviually popped
कोड त्रुटियों आउट:
इस सवाल में कोड का स्निपेट है। Upon viewing the docs ऐसा लगता है कि यह कोड केवल 32-बिट सिस्टम के लिए काम करता है।
क्या 64-बिट pop
निर्देश है? क्या किसी के पास pop
का उपयोग कर 64 बिट ट्यूटोरियल है जिसे मैं देख सकता हूं?
आपको पता है कि ट्यूटोरियल 32-बिट के लिए है? मेरा मानना है कि आप आउटपुट प्रारूप को 'elf32' के बजाय 'elf32' पर सेट करके 32-बिट कोड उत्पन्न कर सकते हैं, जो आपको 64-बिट मशीन पर भी इस ट्यूटोरियल का पालन करने की अनुमति देनी चाहिए ... –
@Aedin - हाँ, आपको चाहिए उस ट्यूटोरियल का पालन करते हुए 32-बिट मोड में रहें। 64 बिट्स का उपयोग करते समय रजिस्टर नाम अलग-अलग नहीं होते हैं, इसलिए कॉलिंग सम्मेलन भी होते हैं। बस 'पॉप' की जगह बदलने की संभावना नहीं है। –