2019-06-07 22:23:38 +02:00
|
|
|
# The OS/K Team licenses this file to you under the MIT license.
|
|
|
|
# See the LICENSE file in the project root for more information.
|
|
|
|
|
|
|
|
Instruction encoding:
|
|
|
|
|
2019-07-24 16:52:26 +02:00
|
|
|
Byte 1: Instruction number
|
|
|
|
Byte 2:
|
|
|
|
xx0xxxxx
|
|
|
|
|| └───┘
|
|
|
|
RL CND
|
|
|
|
|
|
|
|
Values for ModRMs:
|
|
|
|
000xxxxx xxxxx = reg
|
|
|
|
|
|
|
|
(for memory accesses, xxxxx = access size)
|
|
|
|
001xxxxx [reg]
|
|
|
|
010xxxxx [reg+reg]
|
|
|
|
011xxxxx [reg+reg+imm16]
|
|
|
|
100xxxxx [reg+reg+imm32]
|
|
|
|
101xxxxx [reg+reg*imm8+imm32]
|
|
|
|
110xxxxx [reg+imm64]
|
|
|
|
11100001 imm8 (zero extended)
|
|
|
|
11100010 imm16 (zero extended)
|
|
|
|
11100100 imm32 (zero extended)
|
|
|
|
11101000 imm64 (zero extended)
|
2019-06-07 22:23:38 +02:00
|
|
|
|
|
|
|
Values for COND:
|
|
|
|
00000 (none)
|
2019-07-22 14:41:50 +02:00
|
|
|
00001 .C .B
|
2019-06-07 22:23:38 +02:00
|
|
|
00010 .O
|
|
|
|
00011 .Z .E
|
|
|
|
00100 .S
|
|
|
|
00101 .P
|
2019-07-22 14:41:50 +02:00
|
|
|
00110 .BE
|
|
|
|
00111 .L
|
|
|
|
01000 .LE
|
|
|
|
01001 .AXZ
|
|
|
|
01010 .BXZ
|
|
|
|
01011 .CXZ
|
|
|
|
01100 .DXZ
|
2019-06-07 22:23:38 +02:00
|
|
|
Highest (6th) bit of COND indicates negation
|
|
|
|
|