1

注: 私は 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が新しいレジスタのプレフィックスなのですか?

また、さらに詳しい情報が得られる優れたリソースがあるかどうか。またはチュートリアル、チュートリアルは常に楽しいです。

4

1 に答える 1

2

接尾辞はqwordq用で、おそらくregisterを表します。AT&T 構文の概要を次に示します。r

于 2012-03-27T01:15:23.473 に答える