मैं लिनक्स के तहत असेंबलर से शुरू कर रहा हूं। मैंने निम्न कोड को testasm.c
के रूप में सहेजा है और इसे संकलित किया है: gcc testasm.c -otestasm
कंपाइलर उत्तर देता है: "असंभव बाधा 'asm'"।लिनक्स असेंबलर त्रुटि "असंभव बाधा 'asm'
#include <stdio.h>
int main(void)
{
int foo=10,bar=15;
__asm__ __volatile__ ("addl %%ebx,%%eax"
: "=eax"(foo)
: "eax"(foo), "ebx"(bar)
: "eax"
);
printf("foo = %d", foo);
return 0;
}
मैं इस समस्या को कैसे हल कर सकता हूं? (मैं here से उदाहरण कॉपी किया है।)
डेबियन लेनी, कर्नेल 2.6.26-2-amd64
जीसीसी संस्करण 4.3.2 (Debian 4.3.2-1.1)
संकल्प:
स्वीकृत उत्तर देखें - ऐसा लगता है कि 'संशोधित' खंड अब और समर्थित नहीं है।
यह काम करता है, धन्यवाद। ऐसा लगता है कि इसे अब 'संशोधित' खंड पसंद नहीं है, इसलिए मुझे लगता है कि मुझे जो कुछ भी बदलना है उसे धक्का देना और पॉप करना होगा। – slashmais
संशोधित खंड अभी भी काम करता है; मुझे लगता है कि समस्या यह है कि "आउटपुट" स्पष्ट रूप से "संशोधित" निर्दिष्ट करता है, इसलिए दोनों क्षेत्रों में प्रतिनिधित्व किया गया ईएक्स मुद्दा पैदा कर रहा था। –