2010-09-08 32 views
5

कोई भी ऐसा करने का एक अच्छा तरीका जानता है?जीसीसी सी ++ और इनलाइन असेंबली कोड?

यह भी अनुकूल नहीं लगती है:

__asm("command 1" 
     "command 2" 
     "command 3"); 
  1. मैं वास्तव में हर पंक्ति के चारों ओर एक doublequote डाल करने के लिए है?
  2. क्या मैं अकेला हूं जो यह सोचता है कि यह एक प्रमुख पार्टीपोपर है?

इसके अलावा ... चूंकि मल्टीलाइन स्ट्रिंग अक्षर जीसीसी में काम नहीं करते हैं, इसलिए मैं इसके साथ धोखा नहीं दे सका।

आपके ध्यान के लिए धन्यवाद। एक अच्छा दिन है।

उत्तर

8

मुझे हमेशा इंटरनेट पर कुछ उदाहरण मिलते हैं कि आदमी मैन्युअल रूप से \ t और \ n के बजाय एक टैब और नई लाइन डालता है, हालांकि यह मेरे लिए काम नहीं करता है। नहीं बहुत यकीन है कि अगर अपने उदाहरण भी संकलन .. लेकिन यह मैं कैसे करना है:

बहुत बदसूरत तरीका:

asm("xor %eax,%eax"); 
asm("mov $0x7c802446, %ebx"); 
asm("mov $500, %ax"); 
asm("push %eax"); 
asm("call *%ebx"); 

या यह कम बदसूरत एक:

asm("xor %eax,%eax   \t\n\ 
    mov $0x7c802446, %ebx \t\n\ 
    mov $1000, %ax   \t\n\ 
    push %eax    \t\n\ 
    call *%ebx    \t\n\ 
    "); 
+0

धन्यवाद संभोग, कि और अधिक या है उदाहरणों में मैंने जो कुछ देखा है, वैसे भी, यह अभी भी निश्चित रूप से "कम बदसूरत" है! मेरे प्रेरणा को एएसएम लिखने से दूर ले जाता है। –

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