mirror of
https://gitlab.os-k.eu/os-k-team/kvisc.git
synced 2023-08-25 14:05:46 +02:00
133 lines
1.2 KiB
Plaintext
133 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
|
|
!and rm rim
|
|
!or rm rim
|
|
!xor rm rim
|
|
!shl rm rim
|
|
!shr rm rim
|
|
|
|
#
|
|
# Unsigned arithmetic instructions
|
|
#
|
|
|
|
!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
|
|
#
|
|
|
|
!jmp ri
|
|
|
|
jcxz ri
|
|
jcxnz 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
|
|
|