ModR/M Byte ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │REX.R │ │───────────────────────────────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────────│ │r8(/r) without REX prefix │al │cl │dl │bl │ah │ch │dh │bh │ │ │ │ │ │ │ │ │ │r8(/r) with any REX prefix │al │cl │dl │bl │spl │bpl │sil │dil │r8b │r9b │r10b │r11b │r12b │r13b │r14b │r15b │ │r16(/r) │ax │cx │dx │bx │sp │bp │si │di │r8w │r9w │r10w │r11w │r12w │r13w │r14w │r15w │ │r32(/r) │eax │ecx │edx │ebx │esp │ebp │esi │edi │r8d │r9d │r10d │r11d │r12d │r13d │r14d │r15d │ │r64(/r) │rax │rcx │rdx │rbx │rsp │rbp │rsi │rdi │r8 │r9 │r10 │r11 │r12 │r13 │r14 │r15 │ │mm(/r) │mm0 │mm1 │mm2 │mm3 │mm4 │mm5 │mm6 │mm7 │mm0 │mm1 │mm2 │mm3 │mm4 │mm5 │mm6 │mm7 │ │xmm(/r) │xmm0│xmm1│xmm2│xmm3│xmm4 │xmm5 │xmm6│xmm7│xmm8│xmm9│xmm10│xmm11│xmm12│xmm13│xmm14│xmm15│ │sreg │es │cs │ss │ds │fs │gs │res.│res.│es │cs │ss │ds │fs │gs │res. │res. │ │eee │cr0 │wut │cr2 │cr3 │cr4 │wut │wut │wut │cr8 │wut │wut │wut │wut │wut │wut │wut │ │eee │dr0 │dr1 │dr2 │dr3 │dr4^1│dr5^1│dr6 │dr7 │wut │wut │wut │wut │wut │wut │wut │wut │ │REG │000 │010 │020 │030 │040 │050 │060 │070 │000 │010 │020 │030 │040 │050 │060 │070 │ │───────────────────────────────────────────────────────────────────┼─────────────────────────────────────────┼─────────────────────────────────────────────│ │Effective Address │Effective Address REX.B │Mod│R/M│Value of ModR/M Byte │Value of ModR/M Byte │ │──────────────────────────┼────────────────────────────────┼───┼───┼─────────────────────────────────────────┼─────────────────────────────────────────────│ │(rax/eax) │(R8/r8d) │000│000│000 │010 │020 │030 │040 │050 │060 │070 │000 │010 │020 │030 │040 │050 │060 │070 │ │(rcx/ecx) │(R9/r9d) │ │001│001 │011 │021 │031 │041 │051 │061 │071 │001 │011 │021 │031 │041 │051 │061 │071 │ │(rdx/edx) │(R10/r10d) │ │002│002 │012 │022 │032 │042 │052 │062 │072 │002 │012 │022 │032 │042 │052 │062 │072 │ │(rbx/ebx) │(R11/r11d) │ │003│003 │013 │023 │033 │043 │053 │063 │073 │003 │013 │023 │033 │043 │053 │063 │073 │ │SIB │SIB │ │004│004 │014 │024 │034 │044 │054 │064 │074 │004 │014 │024 │034 │044 │054 │064 │074 │ │(rip/eip)+disp32 │(rip/eip)+disp32 │ │005│005 │015 │025 │035 │045 │055 │065 │075 │005 │015 │025 │035 │045 │055 │065 │075 │ │(rsi/esi) │(R14/r14d) │ │006│006 │016 │026 │036 │046 │056 │066 │076 │006 │016 │026 │036 │046 │056 │066 │076 │ │(rdi/edi) │(R15/r15d) │ │007│007 │017 │027 │037 │047 │057 │067 │077 │017 │007 │027 │037 │047 │057 │067 │077 │ │──────────────────────────┼────────────────────────────────┼───┼───┼────┼────┼────┼────┼─────┼─────┼────┼────┼────┼────┼─────┼─────┼─────┼─────┼─────┼─────│ │(rax/eax)+disp8 │(r8/r8d)+disp8 │100│000│100 │110 │120 │130 │140 │150 │160 │170 │100 │110 │120 │130 │140 │150 │160 │170 │ │(rcx/edx)+disp8 │(r9/r9d)+disp8 │ │001│101 │111 │121 │131 │141 │151 │161 │171 │101 │111 │121 │131 │141 │151 │161 │171 │ │(rdx/edx)+disp8 │(r10/r10d)+disp8 │ │002│102 │112 │122 │132 │142 │152 │162 │172 │102 │112 │122 │132 │142 │152 │162 │172 │ │(rbx/ebx)+disp8 │(r11/r11d)+disp8 │ │003│103 │113 │123 │133 │143 │153 │163 │173 │103 │113 │123 │133 │143 │153 │163 │173 │ │SIB+disp8 │SIB+disp8 │ │004│104 │114 │124 │134 │144 │154 │164 │174 │104 │114 │124 │134 │144 │154 │164 │174 │ │(rbp/ebp)+disp8 │(r13/r13d)+disp8 │ │005│105 │115 │125 │135 │145 │155 │165 │175 │105 │115 │125 │135 │145 │155 │165 │175 │ │(rsi/esi)+disp8 │(r14/r14d)+disp8 │ │006│106 │116 │126 │136 │146 │156 │166 │176 │106 │116 │126 │136 │146 │156 │166 │176 │ │(rdi/edi)+disp8 │(r15/r15d)+disp8 │ │007│107 │117 │127 │137 │147 │157 │167 │177 │107 │117 │127 │137 │147 │157 │167 │177 │ │──────────────────────────┼────────────────────────────────┼───┼───┼────┼────┼────┼────┼─────┼─────┼────┼────┼────┼────┼─────┼─────┼─────┼─────┼─────┼─────│ │(rax/eax)+disp32 │(r8/r8d)+disp32 │200│000│200 │210 │220 │230 │240 │250 │260 │270 │200 │210 │220 │230 │240 │250 │260 │270 │ │(rcx/ecx)+disp32 │(r9/r9d)+disp32 │ │001│201 │211 │221 │231 │241 │251 │261 │271 │201 │211 │221 │231 │241 │251 │261 │271 │ │(rdx/edx)+disp32 │(r10/r10d)+disp32 │ │002│202 │212 │222 │232 │242 │252 │262 │272 │202 │212 │222 │232 │242 │252 │262 │272 │ │(rbx/ebx)+disp32 │(r11/r11d)+disp32 │ │003│203 │213 │223 │233 │243 │253 │263 │273 │203 │213 │223 │233 │243 │253 │263 │273 │ │SIB+disp32 │SIB+disp32 │ │004│204 │214 │224 │234 │244 │254 │264 │274 │204 │214 │224 │234 │244 │254 │264 │274 │ │(rbp/ebp)+disp32 │(r13/r13d)+disp32 │ │005│205 │215 │225 │235 │245 │255 │265 │275 │205 │215 │225 │235 │245 │255 │265 │275 │ │(rsi/esi)+disp32 │(r14/r14d)+disp32 │ │006│206 │216 │226 │236 │246 │256 │266 │276 │206 │216 │226 │236 │246 │256 │266 │276 │ │(rdi/edi)+disp32 │(r15/r15d)+disp32 │ │007│207 │217 │227 │237 │247 │257 │267 │277 │207 │217 │227 │237 │247 │257 │267 │277 │ │──────────────────────────┼────────────────────────────────┼───┼───┼────┼────┼────┼────┼─────┼─────┼────┼────┼────┼────┼─────┼─────┼─────┼─────┼─────┼─────│ │al/ax/eax/rax/st0/mm0/xmm0│r8b/r8w/r8d/r8/st0/mm0/xmm8 │300│000│300 │310 │320 │330 │340 │350 │360 │370 │300 │310 │320 │330 │340 │350 │360 │370 │ │cl/cx/ecx/rcx/st1/mm1/xmm1│r9b/r9w/r9d/r9/st1/mm1/xmm9 │ │001│301 │311 │321 │331 │341 │351 │361 │371 │301 │311 │321 │331 │341 │351 │361 │371 │ │dl/dx/edx/rdx/st2/mm2/xmm2│r10b/r10w/r10d/r10/st2/mm2/xmm10│ │002│302 │312 │322 │332 │342 │352 │362 │372 │302 │312 │322 │332 │342 │352 │362 │372 │ │bl/bx/ebx/rbx/st3/mm3/xmm3│r11b/r11w/r11d/r11/st3/mm3/xmm11│ │003│303 │313 │323 │333 │343 │353 │363 │373 │303 │313 │323 │333 │343 │353 │363 │373 │ │ah/sp/esp/rsp/st4/mm4/xmm4│r12b/r12w/r12d/r12/st4/mm4/xmm12│ │004│304 │314 │324 │334 │344 │354 │364 │374 │304 │314 │324 │334 │344 │354 │364 │374 │ │ch/bp/ebp/rbp/st5/mm5/xmm5│r13b/r13w/r13d/r13/st5/mm5/xmm13│ │005│305 │315 │325 │335 │345 │355 │365 │375 │305 │315 │325 │335 │345 │355 │365 │375 │ │dh/si/esi/rsi/st6/mm6/xmm6│r14b/r14w/r14d/r14/st6/mm6/xmm14│ │006│306 │316 │326 │336 │346 │356 │366 │376 │306 │316 │326 │336 │346 │356 │366 │376 │ │bh/di/edi/rdi/st7/mm7/xmm7│r15b/r15w/r15d/r15/st7/mm7/xmm15│ │007│307 │317 │327 │337 │347 │357 │367 │377 │307 │317 │327 │337 │347 │357 │367 │377 │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 16─bit ModR/M Byte ┌────────────────────────────────────────────────────────────────────────┐ │r8(/r) │AL │CL │DL │BL │AH │CH │DH │BH │ │r16(/r) │AX │CX │DX │BX │SP │BP │SI │DI │ │r32(/r) │EAX │ECX │EDX │EBX │ESP │EBP │ESI │EDI │ │mm(/r) │MM0 │MM1 │MM2 │MM3 │MM4 │MM5 │MM6 │MM7 │ │xmm(/r) │XMM0│XMM1│XMM2│XMM3│XMM4 │XMM5 │XMM6│XMM7│ │sreg │ES │CS │SS │DS │FS │GS │res.│res.│ │eee │CR0 │invd│CR2 │CR3 │CR4 │invd │invd│invd│ │eee │DR0 │DR1 │DR2 │DR3 │DR4^1│DR5^1│DR6 │DR7 │ │REG │000 │010 │020 │030 │040 │050 │060 │070 │ │──────────────────────────────┼─────────────────────────────────────────│ │Effective Address │Mod│R/M│Value of ModR/M Byte │ │──────────────────────┼───┼───┼─────────────────────────────────────────│ │(bx,si) │000│000│000 │010 │020 │030 │040 │050 │060 │070 │ │(bx,di) │ │001│001 │011 │021 │031 │041 │051 │061 │071 │ │(bp,si) │ │010│002 │012 │022 │032 │042 │052 │062 │072 │ │(bp,di) │ │011│003 │013 │023 │033 │043 │053 │063 │073 │ │(si) │ │100│004 │014 │024 │034 │044 │054 │064 │074 │ │(di) │ │101│005 │015 │025 │035 │045 │055 │065 │075 │ │disp16 │ │110│006 │016 │026 │036 │046 │056 │066 │076 │ │(bx) │ │111│007 │017 │027 │037 │047 │057 │067 │077 │ │──────────────────────┼───┼───┼────┼────┼────┼────┼─────┼─────┼────┼────│ │(bx,si)+disp8 │100│000│100 │110 │120 │130 │140 │150 │160 │170 │ │(bx,di)+disp8 │ │001│101 │111 │121 │131 │141 │151 │161 │171 │ │(bp,si)+disp8 │ │010│102 │112 │122 │132 │142 │152 │162 │172 │ │(bp,di)+disp8 │ │011│103 │113 │123 │133 │143 │153 │163 │173 │ │(si)+disp8 │ │100│104 │114 │124 │134 │144 │154 │164 │174 │ │(di)+disp8 │ │101│105 │115 │125 │135 │145 │155 │165 │175 │ │(bp)+disp8 │ │110│106 │116 │126 │136 │146 │156 │166 │176 │ │(bx)+disp8 │ │111│107 │117 │127 │137 │147 │157 │167 │177 │ │──────────────────────┼───┼───┼────┼────┼────┼────┼─────┼─────┼────┼────│ │(bx,si)+disp16 │200│000│200 │210 │220 │230 │240 │250 │260 │270 │ │(bx,di)+disp16 │ │001│201 │211 │221 │231 │241 │251 │261 │271 │ │(bp,si)+disp16 │ │010│202 │212 │222 │232 │242 │252 │262 │272 │ │(bp,di)+disp16 │ │011│203 │213 │223 │233 │243 │253 │263 │273 │ │(si)+disp16 │ │100│204 │214 │224 │234 │244 │254 │264 │274 │ │(di)+disp16 │ │101│205 │215 │225 │235 │245 │255 │265 │275 │ │(bp)+disp16 │ │110│206 │216 │226 │236 │246 │256 │266 │276 │ │(bx)+disp16 │ │111│207 │217 │227 │237 │247 │257 │267 │277 │ │──────────────────────┼───┼───┼────┼────┼────┼────┼─────┼─────┼────┼────│ │al/ax/eax/st0/mm0/xmm0│300│000│300 │310 │320 │330 │340 │350 │360 │370 │ │cl/cx/ecx/st1/mm1/xmm1│ │001│301 │311 │321 │331 │341 │351 │361 │371 │ │dl/dx/edx/st2/mm2/xmm2│ │010│302 │312 │322 │332 │342 │352 │362 │372 │ │bl/bx/ebx/st3/mm3/xmm3│ │011│303 │313 │323 │333 │343 │353 │363 │373 │ │ah/sp/esp/st4/mm4/xmm4│ │100│304 │314 │324 │334 │344 │354 │364 │374 │ │ch/bp/ebp/st5/mm5/xmm5│ │101│305 │315 │325 │335 │345 │355 │365 │375 │ │dh/si/esi/st6/mm6/xmm6│ │110│306 │316 │326 │336 │346 │356 │366 │376 │ │bh/di/edi/st7/mm7/xmm7│ │111│307 │317 │327 │337 │347 │357 │367 │377 │ └────────────────────────────────────────────────────────────────────────┘ ModR/M Note 1: Debug Registers DR4 and DR5 References to debug registers DR4 and DR5 cause an undefined opcode (#UD) exception to be generated when CR4.DE[bit 3] (Debugging Extensions) set; when clear, processor aliases references to registers DR4 and DR5 to DR6 and DR7 for compatibility with software written to run on earlier IA-32 processors.