kvisc/vm/in/INSTRS

197 lines
1.8 KiB
Plaintext

# The OS/K Team licenses this file to you under the MIT license.
# See the LICENSE file in the project root for more information.
stop
nop
#
# Logical instructions
#
not rm
and rm rim
or rm rim
xor rm rim
shl rm rim
shr rm rim
cnotz rm
candz rm rim
corz rm rim
cxorz rm rim
cshlz rm rim
cshrz rm rim
cnotnz rm
candnz rm rim
cornz rm rim
cxornz rm rim
cshlnz rm rim
cshrnz rm rim
#
# Unsigned arithmetic instructions
#
# mul:
# rdx = hi(rax * $0)
# rax = lo(rax * $0)
# div:
# rdx = rax % $0
# rax = rax / $0
sgn rm rim
add rm rim
sub rm rim
mul rim
div rim
inc rm
dec rm
csgnz rm rim
caddz rm rim
csubz rm rim
cmulz rim
cdivz rim
cincz rm
cdecz rm
csgnnz rm rim
caddnz rm rim
csubnz rm rim
cmulnz rim
cdivnz rim
cincnz rm
cdecnz rm
#
# Comparison instruction
#
cmp rim rim
cmpb rim rim
cmpw rim rim
cmpl rim rim
cmpt rim rim
test rim rim
testb rim rim
testw rim rim
testl rim rim
testt rim rim
#
# Jump instructions
#
jmp ri
cjmpz ri
cjmpnz ri
cjmpa ri
cjmpae ri
cjmpb ri
cjmpbe ri
jcxz ri
jcxnz ri
loop ri
cloopz ri
cloopnz ri
#
# Movement instructions
#
lea rm m
mov rm rim
xchg rm rim
cmpxchg rm rim
cleaz rm m
cmovz rm rim
cxchgz rm rim
ccmpxchgz rm rim
cleanz rm m
cmovnz rm rim
cxchgnz rm rim
ccmpxchgnz rm rim
movb rm rim
movw rm rim
movl rm rim
movt rm rim
cmovbz rm rim
cmovwz rm rim
cmovlz rm rim
cmovtz rm rim
cmovbnz rm rim
cmovwnz rm rim
cmovlnz rm rim
cmovtnz rm rim
#
# Stack manipulation instructions
#
push rim
call rim
pop rm
ret
cpushz rim
ccallz rim
cpopz rm
cretz
cpushnz rim
ccallnz rim
cpopnz rm
cretnz
# push rbp
# mov rbp, rsp
enter
# add rsp, 8
# mov rbp, [rsp]
leave
cleavez
cleavenz
pushf
#
# Supervisor only instructions
#
popf
cli
sti
devctl rim rim
iocall rim rim
#
# Misc. instructions
#
# Prints a character on the screen
prn rim
#
# Debugging instructions
#
break
cbreakz
cbreaknz