Specifications

Intel
®
Quark Core—Instruction Set Summary
Intel
®
Quark SoC X1000 Core
Developer’s Manual October 2013
254 Order Number: 329679-001US
12.2.2 32-Bit Extensions of the Instruction Set
With the Intel
®
Quark SoC X1000 Core, the instruction set is extended in two
orthogonal directions: 32-bit forms of all 16-bit instructions support the 32-bit data
types and 32-bit addressing modes are available for all instructions referencing
memory. This orthogonal instruction set extension is accomplished having a Default (D)
bit in the code segment descriptor, and by having two prefixes to the instruction set.
Whether the instruction defaults to operations of 16 bits or 32 bits depends on the
setting of the D bit in the code segment descriptor, which gives the default length
(either 32 bits or 16 bits) for both operands and effective addresses when executing
that code segment. In Real Address Mode or Virtual 8086 Mode, no code segment
descriptors are used, but the Intel
®
Quark SoC X1000 Core assumes a D value of 0
when operating in those modes (for 16-bit default sizes).
Two prefixes, the Operand Size Prefix and the Effective Address Size Prefix, allow
overriding individually the Default selection of operand size and effective address size.
These prefixes may precede any opcode bytes and affect only the instruction they
precede. If necessary, one or both of the prefixes may be placed before the opcode
bytes. The Operand Size Prefix and the Effective Address Prefix toggle the operand size
or the effective address size, respectively, to the value “opposite” the Default setting.
For example, when the default operand size is for 32-bit data operations, the presence
of the Operand Size Prefix toggles the instruction to 16-bit data operation. When the
default effective address size is 16 bits, the presence of the Effective Address Size
prefix toggles the instruction to use 32-bit effective address computations.
These 32-bit extensions are available in all Intel
®
Quark SoC X1000 Core modes,
including Real Address Mode or Virtual 8086 Mode. In these modes the default is
always 16 bits, so prefixes are needed to specify 32-bit operands or addresses. For
instructions with more than one prefix, the order of prefixes is unimportant.
Unless specified otherwise, instructions with 8-bit and 16-bit operands do not affect the
contents of the high-order bits of the extended registers.
Table 75. Fields within Intel
®
Quark Core Instructions
Field
Name
Description
Number of
Bits
w Specifies whether data is byte or full size (full size is either 16 or 32 bits) 1
d Specifies direction of data operation 1
s Specifies whether an immediate data field must be sign-extended 1
reg General register specifier 3
mod
r/m
Address mode specifier (effective address can be a general register)
2 for mod;
3 for r/m
ss Scale factor for scaled index address mode 2
index General register to be used as index register 3
base General register to be used as base register 3
sreg2 Segment register specifier for CS, SS, DS, ES 2
sreg3 Segment register specifier for CS, SS, DS, ES, FS, GS 3
tttn For conditional instructions, specifies a condition asserted or a condition negated 4
Note: Table 89 through Table 93 show encoding of individual instructions.