1 ## first program: same as https://www.muppetlabs.com/~breadbox/software/tiny/teensy.html 2 # Just return 42. 3 # 4 # To run: 5 # $ subx translate ex1.1.subx ex1 6 # $ subx run ex1 7 # Expected result: 8 # $ echo $? 9 # 42 10 11 == 0x08048054 # code segment, after leaving room for ELF header 12 # opcode ModR/M SIB displacement immediate 13 # instruction mod, reg, Reg/Mem bits scale, index, base 14 # 1-3 bytes 0/1 byte 0/1 byte 0/1/2/4 bytes 0/1/2/4 bytes 15 bb 2a 00 00 00 # copy 0x2a (42) to EBX 16 # exit(EBX) 17 b8 01 00 00 00 # copy 1 to EAX 18 cd 80 # int 80h 19 20 # vim:ft=subx