タグ

cpuとアセンブラに関するedo_m18のブックマーク (3)

  • プログラミングノート - ARM

    str 以下のようなアドレッシングモードがある。 ldr r1, [r2] @ r1 ← mem[r2] ldr r1, [r2, #+3] @ r1 ← mem[r2+3] ldr r1, [r2, #+3]! @ r1 ← mem[r2+3], r2 ← r2+3 ldr r1, [r2], #+3 @ r1 ← mem[r2], r2 ← r2+3 ldr r1, [r2, +r3] @ r1 ← mem[r2+r3] ldr r1, [r2, +r3, lsl #4] @ r1 ← mem[r2+(r3<<4)] ldr r1, [r2, +r3, lsl #4]! @ r1 ← mem[r2+(r3<<4)], r2 ← r2+(r3<<4) ldr r1, [r2], +r3, lsl #4 @ r1 ← mem[r2], r2 ← r2+(r3<<4) ldr r1, [r2

  • x64のレジスタ拡張

    x64の大きな特徴の1つに、レジスタの拡張が挙げられます。今回は、この部分を中心に解説していきます(特集:64ビットコンピューティング最前線)。 C MAGAZINE 2005年6月号より転載 x64には、64ビットに拡張された16の汎用レジスタ(GPR)と、16の128ビットXMMレジスタが搭載されています。 x64で新たに追加されたレジスタは、アプリケーションレベルでは64ビットモード時においてのみ使用することができます。 ここで1つ例をあげてみましょう。 ADD AL, DL ;8ビットの加算 ADD AX, DX ;16ビットの加算 ADD EAX, EDX ;32ビットの加算 ADD RAX, RDX ;64ビットの加算 この4つの命令は従来のx86でも使われているADDという加算命令です。これらはすべて「A=A+B」の計算をしろという意味の命令ですが、x86では加算するデー

    x64のレジスタ拡張
  • Assembly Programming on x86-64 Linux (04)

    レジスタ x86-64 には64ビットの汎用レジスタが16あります。それぞれ64ビット(8バイト)、32ビット(4バイト)、16ビット(2バイト)、8ビット(1バイト)のレジスタとして使用することができます。RAX、RBX、RCX、RDXの4は8ビットのレジスタ2つとして独立にアクセスできます。32ビットレジスタとして書き込まれた場合に上位32ビットは0が書き込まれることに注意してください。16ビット、8ビットレジスタとして書き込まれた場合は上位のビットは変化しません。 汎用レジスタには整数またはメモリアドレスを格納することができます。 RAX、RBX、RCX、RDX、RSI、RDI、RBP、RSP は16bit CPUである 8086の時代(1978年?)から存在するレジスタの64bit拡張版です。したがって汎用レジスタといっても昔の役割が少し残っていて、一部の命令で特殊な役割があり

  • 1