kvisc/pc/instrs/INSTRS

199 lines
1.5 KiB
Plaintext

# The OS/K Team licences this file to you under the MIT license.
# See the LICENSE file in the project root for more information.
stop
nop
#
# Logical instructions
#
not r
not m
and r r
and r i
and r m
and m r
and m i
and m m
or r r
or r i
or r m
or m r
or m i
or m m
xor r r
xor r i
xor r m
xor m r
xor m i
xor m m
# shift left logical
shl r r
shl r i
shl r m
shl m r
shl m i
shl m m
# shift right logical
shr r r
shr r i
shr r m
shr m r
shr m i
shr m m
#
# Unsigned arithmetic instructions
#
add r r
add r i
add r m
add m r
add m i
add m m
sub r r
sub r i
sub r m
sub m r
sub m i
sub m m
# rdx = hi(rax * $0)
# rax = lo(rax * $0)
mul r
mul i
# rdx = rax % $0
# rax = rax / $0
div r
div i
inc r
inc m
dec r
dec m
#
# Comparison instruction
#
# Affects ZF and CF
cmp r r
cmp r i
cmp r m
cmp i r
cmp i i
cmp i m
cmp m r
cmp m i
cmp m m
# Only affects ZF
test r r
test r i
test r m
test i r
test i i
test i m
test m r
test m i
test m m
#
# Jump instructions
#
jmp r
jmp i
jz r
jz i
jnz r
jnz i
je r
je i
jne r
jne i
ja r
ja i
jae r
jae i
jb r
jb i
jbe r
jbe i
jcxz
#
# Movement instructions
#
mov r r
mov r i
mov r m
mov m r
mov m i
mov m m
xchg r r
xchg r i
xchg r m
xchg m r
xchg m i
xchg m m
lea r m
lea m m
# get code segment
gcs r m
#
# Stack manipulation instructions
#
push i
push r
push m
pop r
pop m
call r
call i
call m
ret
enter
leave
pushf
#
# Supervisor only instructions
#
popf
cli
sti
# Prints a character on the screen
prn r
prn i
prn m