मेरे पास 32 बिट असेंबली भाषा में प्रोग्राम लिखा गया है ... अब मैं इसे 64 बिट ओएस पर संकलित नहीं कर सकता। हमारे स्कूल में वे विशिष्ट हैं और कार्यक्रम 32 बिट संस्करण में लिखा जाना है। यहां मेरा कार्यक्रम है:64 बिट ubuntu पर 32 बिट असेंबलर संकलित
bits 32
extern _printf
global _start
section .data
message db "Hello world!!", 10, 0
section .text
_start:
pushad
push dword message
call _printf
add esp, 4
popad
ret
कोई विचार? मैंने इसे संकलित करने के कई तरीकों की कोशिश की है। त्रुटि उत्पादन संकलन के बाद:
nasm -f elf64 vaja4.asm
ld vaja4.o -o vaja4
./vaja4
उत्पादन:
vaja4.o: In function `_start':
vaja4.asm:(.text+0x7): undefined reference to `_printf'
क्या printf नहीं होना चाहिए _printf? – iabdalkader
वही त्रुटि: vaja4.o: फ़ंक्शन 'स्टार्ट' में: vaja4.asm :(। टेक्स्ट + 0x7): 'printf ' – Klemenko