43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Factor
		
	
	
USING: cpu.x86.assembler.operands.private help.markup help.syntax math ;
 | 
						|
IN: cpu.x86.assembler.operands
 | 
						|
 | 
						|
HELP: indirect
 | 
						|
{ $class-description "Tuple that represents an indirect addressing operand. It has the following slots:"
 | 
						|
  { $table
 | 
						|
    { { $slot "index" } { "Register for the index value. It must not be " { $link ESP } " or " { $link RSP } "." } }
 | 
						|
    { { $slot "displacement" } { "An integer offset." } }
 | 
						|
  }
 | 
						|
} ;
 | 
						|
 | 
						|
HELP: [RIP+]
 | 
						|
{ $values { "displacement" number } { "indirect" indirect } }
 | 
						|
{ $description "Creates an indirect operand relative to the RIP register." }
 | 
						|
{ $examples
 | 
						|
  { $unchecked-example
 | 
						|
    "USING: cpu.x86.assembler cpu.x86.assembler.operands make tools.disassembler ;"
 | 
						|
    "[ 0x1234 [RIP+] EAX MOV ] B{ } make disassemble"
 | 
						|
    "00000000015cef50: 890534120000  mov [rip+0x1234], eax"
 | 
						|
  }
 | 
						|
} ;
 | 
						|
 | 
						|
HELP: []
 | 
						|
{ $values { "base/displacement" "register or an integer" } { "indirect" indirect } }
 | 
						|
{ $description "Creates an indirect operand from a given address or " { $link register } "." } ;
 | 
						|
 | 
						|
HELP: n-bit-version-of
 | 
						|
{ $values { "register" register } { "n" integer } { "register'" register } }
 | 
						|
{ $description "Returns a less wide version of the given register." } ;
 | 
						|
 | 
						|
ARTICLE: "cpu.x86.assembler.operands" "CPU x86 registers and memory operands"
 | 
						|
"Indirect operand constructors for various addressing formats:"
 | 
						|
{ $subsections [] [RIP+] [+] [++] [+*2+] [+*4+] [+*8+] }
 | 
						|
"Register correspondances:"
 | 
						|
{ $subsections
 | 
						|
  8-bit-version-of
 | 
						|
  16-bit-version-of
 | 
						|
  32-bit-version-of
 | 
						|
  64-bit-version-of
 | 
						|
  n-bit-version-of
 | 
						|
  native-version-of
 | 
						|
} ;
 |