# 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