1
0
mirror of https://gitlab.os-k.eu/os-k-team/kvisc.git synced 2023-08-25 14:05:46 +02:00
kvisc/vm/in/INSTRS
2019-06-06 22:07:34 +02:00

131 lines
1.2 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
!or rm rim
!and rm rim
!xor rm rim
!shl rm rim
!shr rm rim
#
# Unsigned arithmetic instructions
#
!neg rm
!inc rm
!dec rm
!add rm rim
!sub rm rim
!mul rm rim
!div rm rim
!mod rm rim
!sgn rm rim
# rdx = hi(rax * $0)
# rax = lo(rax * $0)
mul2 rim
# rdx = rax % $0
# rax = rax / $0
div2 rim
#
# 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
#
!j ri
!jmp ri
!loop ri
#
# Movement instructions
#
!lea rm m
!mov rm rim
!xchg rm rim
cmpxchg rm rim
movb rm rim
movw rm rim
movl rm rim
movt rm rim
#
# Stack manipulation instructions
#
!push rim
!call rim
!pop rm
!ret
# push rbp
# mov rbp, rsp
enter
# add rsp, 8
# mov rbp, [rsp]
!leave
pushf
popf
#
# Supervisor only instructions
#
cli
sti
devctl rim rim
iocall rim rim
#
# Misc. instructions
#
# Clear rax...rsi
clr
# Clear ax0...ax7
cla
# Clear nx0...nx7
cln
# Print a character on the screen
prn rim
#
# Debugging instructions
#
!break
step rim