https://github.com/akkartik/mu/blob/main/baremetal/101screen.subx
1
2
3 pixel:
4
5 55/push-ebp
6 89/<- %ebp 4/r32/esp
7
8 50/push-eax
9 51/push-ecx
10
11 8b/-> *(ebp+8) 1/r32/ecx
12 81 7/subop/compare %ecx 0/imm32
13 {
14 75/jump-if-!= break/disp8
15
16 8b/-> *(ebp+0xc) 0/r32/eax
17 3d/compare-eax-and 0/imm32
18 7c/jump-if-< $pixel:end/disp8
19 3d/compare-eax-and 0x400/imm32/1024
20 7d/jump-if->= $pixel:end/disp8
21 8b/-> *(ebp+0x10) 0/r32/eax
22 3d/compare-eax-and 0/imm32
23 7c/jump-if-< $pixel:end/disp8
24 3d/compare-eax-and 0x300/imm32/768
25 7d/jump-if->= $pixel:end/disp8
26
27 8b/-> *(ebp+0x10) 0/r32/eax
28 c1/shift 4/subop/left %eax 0xa/imm8
29 03/add-> *(ebp+0xc) 0/r32/eax
30
31 03/add-> *0x7f28 0/r32/eax
32
33 8b/-> *(ebp+0x14) 1/r32/ecx
34 88/byte<- *eax 1/r32/CL
35
36 eb $pixel:end/disp8
37 }
38
39 $pixel:end:
40
41 59/pop-to-ecx
42 58/pop-to-eax
43
44 89/<- %esp 5/r32/ebp
45 5d/pop-to-ebp
46 c3/return