を用います アセンブリの1行目に .intel_syntax noprefix と記述してください このスライドではSyntax highlighting の関係で ; をコメント用記号として用います が、GNU アセンブリではコメント用記号として # を使うことに注意してください Linux やmacOS で利用されている System V ABI を前提とします Windows や他のOS では異なる部分があるので注意してください x86-64 Assembly Essentials by Latte72
例) movsx eax, cx movsx rax, word ptr [rbp - 6] movsxd 32 bit の値を符号拡張して 64 bit のレジスタに格納する命令 movsxd A, B で B を A に格納します 例) movsxd rax, ebx x86-64 Assembly Essentials by Latte72
A + B を意味します sub は減算命令で sub A, B で A = A - B を意味します imul は乗算命令で imul A, B で A = A * B を意味します idiv は除算命令ですが、少し特殊なので次のページで解説します なお、 imul と idiv の i は整数(integer )を表しています x86-64 Assembly Essentials by Latte72
rbp にコピーして、現在のスタックフレームの基準点を設定し、 関数内でローカル変数や引数へのアクセスが容易にします sub rsp, A スタックポインタを A バイト分下げます この領域は関数内で使用する一時データや変数の保存に利用されます x86-64 Assembly Essentials by Latte72