首先作者有提供asm_io.asm,這要先編譯,先安裝作者的nasm組譯器:
sudo pacman -S nasm
組譯:
nasm -f elf -d ELF_TYPE asm_io.asm
nasm -f elf first.asm
這裡的first 是我們自己寫的asm codenasm -f elf first.asm
下一步要用gcc,原本書中是建議
gcc -o first driver.c first.o asm_io.o
不過方才都是用elf32去組譯的,所以要改成:
gcc -m32 -lc -o first driver.c first.o asm_io.o
這裡要安裝:
sudo pacman -S gcc-multilib gcc-libs-multilib
然後我還遇到找不到shared library libisl的問題,可能是gcc-multilib跟不上isl的更新,這個用symbolic link到libisl.13.0.0的方式解決之後就可以完成編譯了,不過也許學著寫64 bits的assembly比較治本?
沒有留言:
張貼留言