global _start section .text _start: mov eax, 0xAAAAAAAA mov al, 0xBB mov ah, 0xCC mov ax, 0xDDDDDD mov ebx, 0 mov ecx, 0 ; moving register -> register mov ebx, eax mov bl, al mov bh, ah mov bx, ax mov eax, 0 mov ebx, 0 mov ecx, 0 ; moving memory -> register mov al, [data] mov ah, [data +2] mov ax, [data] mov ecx, [data] ; moving regsiter -> memory mov ebx, 0x11223344 mov byte [data], bl mov word [data], bx mov dword [data], ebx ; moving immediate data value -> memory mov dword [data], 0x55667788 ; loading effective address lea eax, [data] lea ebx, [eax] ; exchange mov eax, 0xAABBCCDD mov ebx, 0x11223344 xchg eax, ebx mov eax, 0x1 mov ebx, 0x0 int 0x80 section .data data: db 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x11, 0x22