ファイルは2つしかないので、NASMmain.c
とkernel.asm
GCCを使ってプログラムを作ってみました。内容は以下の通りです。
main.c
#include <stdio.h>
void Print_String() {
printf("Hello World!\n");
}
kernle.asm
extern Print_String
[section .text]
global _start
_start:
call Print_String
コンパイルとリンク:
nasm -f elf -o kernel.o kernel.asm
gcc -c -o main.o main.c
ld -s -lc -o final kernel.o main.o
次にfinal
、次のコマンドを使用してファイルを実行します./final
が、結果は気のめいるようです。
bash: ./final: No such file or directory
ただし、現在のディレクトリにはファイルがありますfinal
。コマンドls
の場合、次のように表示されます。
final kernel.asm kernel.o main.c main.o
では、なぜファイルが見つからないのfinal
でしょうか。何か問題でもありますか?助けていただければ幸いです。