From 20d6be52405130930fde9ca5bb5e95131ba4e659 Mon Sep 17 00:00:00 2001 From: Kartik Agaram Date: Thu, 14 Jan 2021 14:03:32 -0800 Subject: 7520 --- html/baremetal/101screen.subx.html | 90 +++++++++++++++++++------------------- 1 file changed, 46 insertions(+), 44 deletions(-) (limited to 'html/baremetal/101screen.subx.html') diff --git a/html/baremetal/101screen.subx.html b/html/baremetal/101screen.subx.html index 038e8f78..1f204a59 100644 --- a/html/baremetal/101screen.subx.html +++ b/html/baremetal/101screen.subx.html @@ -56,50 +56,52 @@ if ('onhashchange' in window) {
  1 # Primitives for screen control.
  2 
- 3 pixel:  # screen: (addr screen), x: int, y: int, color: int
- 4     # . prologue
- 5     55/push-ebp
- 6     89/<- %ebp 4/r32/esp
- 7     # . save registers
- 8     50/push-eax
- 9     51/push-ecx
-10     # ecx = screen
-11     8b/-> *(ebp+8) 1/r32/ecx
-12     81 7/subop/compare %ecx 0/imm32
-13     {
-14       75/jump-if-!= break/disp8
-15       # bounds checks
-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       # eax = y*1024 + x
-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       # eax += location of frame buffer
-31       03/add-> *0x7f28 0/r32/eax
-32       # *eax = color
-33       8b/-> *(ebp+0x14) 1/r32/ecx
-34       88/byte<- *eax 1/r32/CL
-35       # return
-36       eb $pixel:end/disp8
-37     }
-38     # TODO: fake screen
-39 $pixel:end:
-40     # . restore registers
-41     59/pop-to-ecx
-42     58/pop-to-eax
-43     # . epilogue
-44     89/<- %esp 5/r32/ebp
-45     5d/pop-to-ebp
-46     c3/return
+ 3 == code
+ 4 
+ 5 pixel:  # screen: (addr screen), x: int, y: int, color: int
+ 6     # . prologue
+ 7     55/push-ebp
+ 8     89/<- %ebp 4/r32/esp
+ 9     # . save registers
+10     50/push-eax
+11     51/push-ecx
+12     # ecx = screen
+13     8b/-> *(ebp+8) 1/r32/ecx
+14     81 7/subop/compare %ecx 0/imm32
+15     {
+16       75/jump-if-!= break/disp8
+17       # bounds checks
+18       8b/-> *(ebp+0xc) 0/r32/eax
+19       3d/compare-eax-and 0/imm32
+20       7c/jump-if-< $pixel:end/disp8
+21       3d/compare-eax-and 0x400/imm32/1024
+22       7d/jump-if->= $pixel:end/disp8
+23       8b/-> *(ebp+0x10) 0/r32/eax
+24       3d/compare-eax-and 0/imm32
+25       7c/jump-if-< $pixel:end/disp8
+26       3d/compare-eax-and 0x300/imm32/768
+27       7d/jump-if->= $pixel:end/disp8
+28       # eax = y*1024 + x
+29       8b/-> *(ebp+0x10) 0/r32/eax
+30       c1/shift 4/subop/left %eax 0xa/imm8
+31       03/add-> *(ebp+0xc) 0/r32/eax
+32       # eax += location of frame buffer
+33       03/add-> *0x7f28 0/r32/eax
+34       # *eax = color
+35       8b/-> *(ebp+0x14) 1/r32/ecx
+36       88/byte<- *eax 1/r32/CL
+37       # return
+38       eb $pixel:end/disp8
+39     }
+40     # TODO: fake screen
+41 $pixel:end:
+42     # . restore registers
+43     59/pop-to-ecx
+44     58/pop-to-eax
+45     # . epilogue
+46     89/<- %esp 5/r32/ebp
+47     5d/pop-to-ebp
+48     c3/return
 
-- cgit 1.4.1-2-gfad0