簡単な追加:
add eax, ebx ; Adds eax and ebx and stores the result in eax
メモリからロードし、追加して、メモリに保存します。
mov eax, DWORD PTR [esi] ; Load a double word from memory into eax
mov ebx, DWORD PTR [edi] ; Load a double word from memory into ebx
add eax, ebx ; Adds eax and ebx and stores the result in eax
mov DWROD PTR[esi], eax ; Store a double word in eax into memory
上記の例では、DWORD PTRは厳密には必要ありませんが、あいまいさを取り除き、コードを読みやすくするため、練習するのに適した習慣です。
同じサイズのレジスター(上記の例ではDWORD)のみを追加できることを覚えておくことが重要です。サイズの異なる2つのレジスタを追加する場合:
mov al, BYTE PTR [esi] ; Loads a single byte from memory into al
mov bx, WORD PTR [edi] ; Loads a word from memory into bx
movzx eax, al ; Zero extends al into the entire eax register
movzx ebx, bx ; Zero extends bx into the entire ebx register
add eax, ebx ; Adds eax and ebx and stores the result in eax
同じことを行う簡単な方法があるので、これはひどく良い例ではありませんが、うまくいけば、あなたが使用できるトリックのいくつかを示すでしょう。
レジスタにメモリ値を追加することもできます。
mov eax, DWORD PTR [esi] ; Load a double word from memory into eax
add eax, DWORD PTR [edi] ; Add a double word in memory to eax
参照として使用するのに適したサイトは次のとおりです:http://ref.x86asm.net/