diff options
Diffstat (limited to 'jefs.fs')
| -rw-r--r-- | jefs.fs | 34 |
1 files changed, 22 insertions, 12 deletions
@@ -42,19 +42,29 @@ variable modrm : rex.x rex @ 42 or rex ! ; : rex.b rex @ 41 or rex ! ; -: ax 0 ; : cx 1 ; : dx 2 ; : bx 3 ; -: sp 4 ; : bp 5 ; : si 6 ; : di 7 ; -\ at least for now, you have to differentiate these from above -\ by manually setting rex. -: r8 0 ; : r9 1 ; : r10 2 ; : r11 3 ; -: r12 4 ; : r13 5 ; : r14 6 ; : r15 7 ; -\ are there instructions that use registers but Not r/m bytes? -\ i don't actually know - +\ REGISTERS {{{ +: rax modrm @ 0 or modrm ! ; : rcx modrm @ 1 or modrm ! ; +: rdx modrm @ 2 or modrm ! ; : rbx modrm @ 3 or modrm ! ; +: rsp modrm @ 4 or modrm ! ; : rbp modrm @ 5 or modrm ! ; +: rsi modrm @ 6 or modrm ! ; : rdi modrm @ 7 or modrm ! ; +: r8 modrm @ 0 or modrm ! rex.b ; : r9 modrm @ 1 or modrm ! rex.b ; +: r10 modrm @ 2 or modrm ! rex.b ; : r11 modrm @ 3 or modrm ! rex.b ; +: r12 modrm @ 4 or modrm ! rex.b ; : r13 modrm @ 5 or modrm ! rex.b ; +: r14 modrm @ 6 or modrm ! rex.b ; : r15 modrm @ 7 or modrm ! rex.b ; + +: rax, modrm @ 00 or modrm ! ; : rcx, modrm @ 08 or modrm ! ; +: rdx, modrm @ 10 or modrm ! ; : rbx, modrm @ 18 or modrm ! ; +: rsp, modrm @ 20 or modrm ! ; : rbp, modrm @ 28 or modrm ! ; +: rsi, modrm @ 30 or modrm ! ; : rdi, modrm @ 38 or modrm ! ; +: r8, modrm @ 00 or modrm ! rex.r ; : >r9, modrm @ 08 or modrm ! rex.r ; +: r10, modrm @ 10 or modrm ! rex.r ; : >r11, modrm @ 18 or modrm ! rex.r ; +: r12, modrm @ 20 or modrm ! rex.r ; : >r13, modrm @ 28 or modrm ! rex.r ; +: r14, modrm @ 30 or modrm ! rex.r ; : >r15, modrm @ 38 or modrm ! rex.r ; +\ }}} \ example idea: (from execute below) -\ rex.w rex.r r11 rex.b r14 0 d) mov, -\ rex.w rex.r r14 rex.b r14 8 d) lea, -\ rex.b r11 call, +\ rex.w r11, r14 0 d) mov, +\ rex.w r14, r14 8 d) lea, +\ r11 call, decimal : execute [ hex |
