64ビット(Ubuntu 12.04)でいくつかのasm行を実行しようとしています。再起動システムコールを実行するためだけです。コンパイルできますが、実行しても何も起こりません。
コードは次のとおりです。
section .text
global _start
_start:
mov eax,88
mov ebx,0xfee1dead
mov ecx,672274793
mov edx,0x89abcdef
mov esi,0
int 0x80
私はそれを使用してコンパイルします:
nasm -f elf reboot.asm
次に、次を使用してリンクします。
ld -m elf_i386 -s -o reboot reboot.o
この動作に関していくつか質問があります。
- 正しく使用している場合、この 32 ビット コードを 64 ビット システムで実行することが問題の原因ですか?
- %esi レジスタに NULL を渡すことについて疑問に思っています。この引数は、再起動システムコールに対して間違っていますか?