https://github.com/akkartik/mu/blob/main/linux/apps/ex13.subx
 1 # Compare 3 and 3.
 2 #
 3 # To run:
 4 #   $ ./translate_subx 000init.subx apps/ex13.subx
 5 #   $ ./a.elf
 6 # Expected result:
 7 #   $ echo $?
 8 #   1
 9 
10 == code
11 #   instruction                     effective address                                                   register    displacement    immediate
12 # . op          subop               mod             rm32          base        index         scale       r32
13 # . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes
14 
15 Entry:
16     b8/copy-to-eax  3/imm32
17     3d/compare-eax-and  3/imm32
18     0f 94/set-if-=                  3/mod/direct    3/rm32/ebx    .           .             .           .           .               .                 # set ebx to ZF
19     81 4/subop/and                  3/mod/direct    3/rm32/ebx    .           .             .           .           .               0xff/imm32        # AND with eax
20 
21 $exit:
22     # exit(ebx)
23     e8/call  syscall_exit/disp32
24 
25 # . . vim:nowrap:textwidth=0