mirror of
https://gitlab.os-k.eu/os-k-team/kvisc.git
synced 2023-08-25 14:05:46 +02:00
202 lines
1.5 KiB
Plaintext
202 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
|
|
|
|
loop r
|
|
loop 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
|
|
|