비트 마스크는 원하는 비트를 1로, 다른 비트를 0으로 만들어주는 값으로, 특정 비트를 추출하거나 설정하는 데 유용합니다. 각 레지스터의 비트 마스크는 다음과 같습니다:
8비트 레지스터 (al, ah, bl, bh, cl, ch, dl, dh)
- al (하위 8비트): 0xff (모든 비트가 1)
- ah (상위 8비트): 0xff00 (상위 8비트를 제외한 나머지 비트는 0)
예)
예)
16비트 레지스터 (ax, bx, cx, dx, si, di, sp, bp, ip)
- ax: 0xffff (모든 비트가 1)
- bx: 0xffff (모든 비트가 1)
- cx: 0xffff (모든 비트가 1)
- dx: 0xffff (모든 비트가 1)
- si, di, sp, bp: 0xffff (모든 비트가 1)
- ip: 0xffff (모든 비트가 1)
예)
32비트 레지스터 (eax, ebx, ecx, edx, esi, edi, esp, ebp, eip)
- eax: 0xffffffff (모든 비트가 1)
- ebx: 0xffffffff (모든 비트가 1)
- ecx: 0xffffffff (모든 비트가 1)
- edx: 0xffffffff (모든 비트가 1)
- esi, edi, esp, ebp: 0xffffffff (모든 비트가 1)
- eip: 0xffffffff (모든 비트가 1)
예) rax=0x123456789abcdef0 일 때, eax=0x9abcdef0
64비트 레지스터 (rax, rbx, rcx, rdx, rsi, rdi, rsp, rbp, rip)
- rax: 0xffffffffffffffff (모든 비트가 1)
- rbx: 0xffffffffffffffff (모든 비트가 1)
- rcx: 0xffffffffffffffff (모든 비트가 1)
- rdx: 0xffffffffffffffff (모든 비트가 1)
- rsi, rdi, rsp, rbp: 0xffffffffffffffff (모든 비트가 1)
- rip: 0xffffffffffffffff (모든 비트가 1)
예) rax=0x123456789abcdef0 일 때, rax=0x123456789abcdef0