# 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