Sto usando Kali linux 64 bit e sto provando ad eseguire i seguenti programmi dal sito web del Dr. Paul Carter. Il comando gcc sta dando errori. Cosa dovrei usare nel comando gcc?impossibile compilare assembly:/usr/bin/ld: l'architettura i386 del file di input `array1.o 'non è compatibile con i386: x86-64 output
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
La sperimentazione di linguaggio assembly come root è una pessima idea. http://apple.stackexchange.com/a/192422/118588 ha una grande spiegazione delle insidie dell'utilizzo di root per tutto, che si applica a tutti i sistemi operativi Unix, non solo a OS X. È ancora peggio quando si sperimenta con ASM, dal momento che potrebbe accidentalmente effettuare una chiamata di sistema indesiderata che riavvia il sistema o, peggio. –
Vedere anche http://stackoverflow.com/questions/36861903/assembling-32-bit-binaries-on-a-64-bit-system-gnu-toolchain/36901649#36901649 per una guida più completa ai vari modi di creazione di file binari a 32 o 64 bit dalla sorgente ASM, con o senza libc. –