cpu.x86.assembler: cleanup
parent
7c83ccf6b0
commit
563ecbd871
|
@ -198,12 +198,16 @@ M: register POP f HEX: 58 short-operand ;
|
|||
M: operand POP { BIN: 000 f HEX: 8f } 1-operand ;
|
||||
|
||||
! MOV where the src is immediate.
|
||||
<PRIVATE
|
||||
|
||||
GENERIC: (MOV-I) ( src dst -- )
|
||||
M: register (MOV-I) t HEX: b8 short-operand cell, ;
|
||||
M: operand (MOV-I)
|
||||
{ BIN: 000 t HEX: c6 }
|
||||
pick byte? [ immediate-1 ] [ immediate-4 ] if ;
|
||||
|
||||
PRIVATE>
|
||||
|
||||
GENERIC: MOV ( dst src -- )
|
||||
M: immediate MOV swap (MOV-I) ;
|
||||
M: operand MOV HEX: 88 2-operand ;
|
||||
|
@ -296,6 +300,8 @@ M: operand TEST OCT: 204 2-operand ;
|
|||
: CDQ ( -- ) HEX: 99 , ;
|
||||
: CQO ( -- ) HEX: 48 , CDQ ;
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: (SHIFT) ( dst src op -- )
|
||||
over CL eq? [
|
||||
nip t HEX: d3 3array 1-operand
|
||||
|
@ -303,6 +309,8 @@ M: operand TEST OCT: 204 2-operand ;
|
|||
swapd t HEX: c0 3array immediate-1
|
||||
] if ; inline
|
||||
|
||||
PRIVATE>
|
||||
|
||||
: ROL ( dst n -- ) BIN: 000 (SHIFT) ;
|
||||
: ROR ( dst n -- ) BIN: 001 (SHIFT) ;
|
||||
: RCL ( dst n -- ) BIN: 010 (SHIFT) ;
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Slava Pestov
|
||||
Joe Groff
|
|
@ -0,0 +1 @@
|
|||
x86 registers and memory operands
|
Loading…
Reference in New Issue