CODE:
.code16gcc
_start:
movw $0x1000,%cx
movw %cx,%ds
xorw %cx,%cx
xorw %bx,%bx
_arrayinit_loop:
movb $0,%ds:(%bx)
incw %bx
loopw _arrayinit_loop
xorw %si,%si
jmp _main
_input_char:
xorw %ax,%ax
int $0x16
testb %al,%al
jz _input_char
movb %al,%ds:(%si)
retw
_output_char:
movb $0x0E,%ah
movb %ds:(%si),%al
movw $0x0007,%bx
int $0x10
retw
_main:
addw $3,%si
addb $4,%ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jz _bracket0_e
_bracket0_s:
decw %si
addb $4,%ds:(%si)
incw %si
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jnz _bracket0_s
_bracket0_e:
decw %si
movb %ds:(%si),%al
testb %al,%al
jz _bracket1_e
_bracket1_s:
decw %si
addb $4,%ds:(%si)
decw %si
addb $4,%ds:(%si)
addw $2,%si
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jnz _bracket1_s
_bracket1_e:
decw %si
addb $2,%ds:(%si)
decw %si
addb $6,%ds:(%si)
addw $6,%si
addb $4,%ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jz _bracket2_e
_bracket2_s:
decw %si
addb $4,%ds:(%si)
incw %si
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jnz _bracket2_s
_bracket2_e:
decw %si
movb %ds:(%si),%al
testb %al,%al
jz _bracket3_e
_bracket3_s:
decw %si
addb $7,%ds:(%si)
decw %si
addb $7,%ds:(%si)
decw %si
addb $7,%ds:(%si)
addw $3,%si
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jnz _bracket3_s
_bracket3_e:
decw %si
addb $10,%ds:(%si)
decw %si
addb $5,%ds:(%si)
decw %si
subb $7,%ds:(%si)
addw $3,%si
addb $10,%ds:(%si)
addw $2,%si
addb $6,%ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jz _bracket4_e
_bracket4_s:
decw %si
addb $4,%ds:(%si)
incw %si
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jnz _bracket4_s
_bracket4_e:
addw $5,%si
addb $4,%ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jz _bracket5_e
_bracket5_s:
decw %si
addb $4,%ds:(%si)
incw %si
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jnz _bracket5_s
_bracket5_e:
decw %si
movb %ds:(%si),%al
testb %al,%al
jz _bracket6_e
_bracket6_s:
decw %si
addb $3,%ds:(%si)
decw %si
addb $3,%ds:(%si)
addw $2,%si
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jnz _bracket6_s
_bracket6_e:
addb $10,%ds:(%si)
incw %si
addb $3,%ds:(%si)
incw %si
addb $5,%ds:(%si)
subw $7,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket7_e
_bracket7_s:
addw $2,%si
incb %ds:(%si)
addw $2,%si
incb %ds:(%si)
incw %si
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jz _bracket8_e
_bracket8_s:
subw $3,%si
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jnz _bracket8_s
_bracket8_e:
decw %si
movb %ds:(%si),%al
testb %al,%al
jz _bracket9_e
_bracket9_s:
decw %si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket9_s
_bracket9_e:
incw %si
movb %ds:(%si),%al
testb %al,%al
jz _bracket10_e
_bracket10_s:
decb %ds:(%si)
incw %si
incb %ds:(%si)
incw %si
subb $10,%ds:(%si)
addw $5,%si
incb %ds:(%si)
subw $4,%si
addb $10,%ds:(%si)
subw $3,%si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket10_s
_bracket10_e:
addw $4,%si
decb %ds:(%si)
incw %si
decb %ds:(%si)
incw %si
addb $2,%ds:(%si)
addw $2,%si
incb %ds:(%si)
incw %si
incb %ds:(%si)
subw $5,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket11_e
_bracket11_s:
addw $2,%si
decb %ds:(%si)
addw $2,%si
decb %ds:(%si)
subw $4,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket12_e
_bracket12_s:
decw %si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket12_s
_bracket12_e:
movb %ds:(%si),%al
testb %al,%al
jnz _bracket11_s
_bracket11_e:
decw %si
movb %ds:(%si),%al
testb %al,%al
jz _bracket13_e
_bracket13_s:
decw %si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket13_s
_bracket13_e:
incw %si
movb %ds:(%si),%al
testb %al,%al
jz _bracket14_e
_bracket14_s:
decw %si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket14_s
_bracket14_e:
addw $5,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket15_e
_bracket15_s:
incw %si
decb %ds:(%si)
addw $3,%si
decb %ds:(%si)
subw $6,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket16_e
_bracket16_s:
decw %si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket16_s
_bracket16_e:
movb %ds:(%si),%al
testb %al,%al
jnz _bracket15_s
_bracket15_e:
subw $6,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket17_e
_bracket17_s:
incw %si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket17_s
_bracket17_e:
addw $9,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket18_e
_bracket18_s:
decb %ds:(%si)
subw $4,%si
addb $3,%ds:(%si)
subw $12,%si
callw _output_char
addw $2,%si
callw _output_char
addw $2,%si
callw _output_char
callw _output_char
addw $12,%si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket18_s
_bracket18_e:
incw %si
movb %ds:(%si),%al
testb %al,%al
jz _bracket19_e
_bracket19_s:
decb %ds:(%si)
subw $4,%si
addb $5,%ds:(%si)
subw $12,%si
callw _output_char
addw $2,%si
callw _output_char
incw %si
callw _output_char
callw _output_char
addw $13,%si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket19_s
_bracket19_e:
incw %si
incb %ds:(%si)
subw $4,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket20_e
_bracket20_s:
movb %ds:(%si),%al
testb %al,%al
jz _bracket21_e
_bracket21_s:
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jnz _bracket21_s
_bracket21_e:
addw $4,%si
decb %ds:(%si)
subw $4,%si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket20_s
_bracket20_e:
addw $4,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket22_e
_bracket22_s:
decb %ds:(%si)
subw $3,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket23_e
_bracket23_s:
subw $6,%si
callw _output_char
movb %ds:(%si),%al
testb %al,%al
jz _bracket24_e
_bracket24_s:
incw %si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket24_s
_bracket24_e:
movb %ds:(%si),%al
testb %al,%al
jnz _bracket23_s
_bracket23_e:
subw $2,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket25_e
_bracket25_s:
incw %si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket25_s
_bracket25_e:
subw $4,%si
callw _output_char
addw $8,%si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket22_s
_bracket22_e:
subw $5,%si
movb %ds:(%si),%al
testb %al,%al
jz _bracket26_e
_bracket26_s:
decw %si
movb %ds:(%si),%al
testb %al,%al
jnz _bracket26_s
_bracket26_e:
subw $3,%si
addb $3,%ds:(%si)
callw _output_char
subb $3,%ds:(%si)
callw _output_char
incw %si
decb %ds:(%si)
movb %ds:(%si),%al
testb %al,%al
jnz _bracket7_s
_bracket7_e:
_hlt_loop:
hlt
jmp _hlt_loop