Tôi đang sử dụng Kali linux 64 bit và tôi đang cố thực hiện các chương trình sau từ trang web của Tiến sĩ Paul carter. Lệnh gcc đưa ra lỗi. Tôi nên sử dụng những gì trong lệnh gcc?không thể biên dịch assembly:/usr/bin/ld: kiến trúc i386 của tệp đầu vào `array1.o 'không tương thích với đầu ra i386: x86-64
nasm -f elf32 array1.asm
[email protected]:assembly# gcc -o array1 array1.o array1c.c
array1c.c:9:1: warning: ‘cdecl’ attribute ignored [-Wattributes]
array1c.c:10:1: warning: ‘cdecl’ attribute ignored [-Wattributes]
/usr/bin/ld: i386 architecture of input file `array1.o' is incompatible with i386:x86-64 output
collect2: error: ld returned 1 exit status
Thử nghiệm với ngôn ngữ lắp ráp như là người chủ là một ý tưởng khủng khiếp. http://apple.stackexchange.com/a/192422/118588 có một lời giải thích tuyệt vời về những cạm bẫy của việc sử dụng root cho mọi thứ, áp dụng cho tất cả các hệ điều hành Unix, không chỉ OS X. Nó còn tồi tệ hơn khi thử nghiệm với ASM, vì bạn có thể vô tình thực hiện cuộc gọi hệ thống không mong muốn khởi động lại hệ thống của bạn hoặc tệ hơn. –
Xem thêm http://stackoverflow.com/questions/36861903/assembling-32-bit-binaries-on-a-64-bit-system-gnu-toolchain/36901649#36901649 cho một hướng dẫn đầy đủ hơn với nhiều cách khác nhau của xây dựng các tệp nhị phân 32 hoặc 64 bit từ nguồn asm, có hoặc không có libc. –