Search
Pro překlad z C do assembleru zkuste soubor init_array.c:
init_array.c
int pole[10]; int main() { int N = 10,i; for(i=0; i<N; i++) { pole[i]=N-i; } return 0; }
start.S
.globl _start .text .option norelax _start: la x2, _end+0x4000 la x3, __global_pointer$ jal main ebreak
Překlad do assembleru pro RISC-V a zobrazení přeložených instrukcí provedeme následujícími příkazy.
riscv64-unknown-elf-gcc -march=rv32i -mabi=ilp32 -g -c init_array.c -o init_array.o riscv64-unknown-elf-gcc -march=rv32i -mabi=ilp32 -g -c start.S -o start.o riscv64-unknown-elf-gcc -Wl,-Ttext,0x200 -Wl,-Tdata,0x400 -march=rv32i -mabi=ilp32 -nostdlib init_array.o start.o -o init_array riscv64-unknown-elf-objdump --source init_array
Na Windows je možné nainstalovat buď kompletní MSys s make nebo používat jen holý kompilátor riscv64-unknown-elf-gcc a dávkový soubor.
PATH=%PATH%;c:\path\to\gcc-riscv64-unknown-elf_mingw32\bin riscv64-unknown-elf-gcc -Wl,-Ttext,0x200 -Wl,-Tdata,0x400 -march=rv32i -mabi=ilp32 -nostdlib -g init_array.c -o init_array