+ #### DBG
+ call ser_print_num
+ mov $32, %al
+ call ser_putchar
+ mov $10, %al
+ call ser_putchar
+ xor %eax, %eax
+ ####
+ add $1, %cl
+ jnc 0b
+
+ # copy pixels
+ pushw $0xa000
+ pop %es
+ xor %di, %di
+ mov $logo_pix, %eax
+ shr $4, %eax
+ mov %ax, %ds
+ xor %si, %si
+ mov $16000, %ecx
+ rep movsl
+
+ cli
+ hlt
+
+ # expects string pointer in ds:si
+ser_print_str:
+ pusha
+
+0: mov (%si), %al
+ cmp $0, %al
+ jz .Lend
+ call ser_putchar
+ inc %si
+ jmp 0b
+
+.Lend: popa