注: 私は BSD ベースのシステムを使用しているため、私の記憶が正しければ、呼び出されたサブルーチン/関数の引数がレジスタに配置されずにスタックにプッシュされることを意味します。
私はアセンブリを試していて、単純なカーネル出口プログラムを試してみたかった:
.globl _start
_start:
movl $0x20, %eax
pushl %eax
movl $0x1, %eax
subl $0x4, %esp
int $0x80
64ビットアセンブリで。
大きな違いは、レジスタの名前r
が 32 ビット標準のe
プレフィックスではなく、プレフィックス付きに変更されたことを読んだことを覚えています。
l
しかし、すでに 32 ビットの long を意味している場合、64 ビット オペコードの新しい接尾辞は何ですか?
好奇心から、なぜそれr
が新しいレジスタのプレフィックスなのですか?
また、さらに詳しい情報が得られる優れたリソースがあるかどうか。またはチュートリアル、チュートリアルは常に楽しいです。