# 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 # push rbp # mov rbp, rsp enter # mov rbp, [rsp+8] # add rsp, 8 leave pushf # # Supervisor only instructions # popf cli sti # Prints a character on the screen prn r prn i prn m