make wozmon.s (in dev container)
This commit is contained in:
parent
789fa1306c
commit
45a0b8ca68
266
wozmon.s
Normal file
266
wozmon.s
Normal file
@ -0,0 +1,266 @@
|
||||
.arch i8086,jumps
|
||||
.code16
|
||||
.att_syntax prefix
|
||||
#NO_APP
|
||||
.text
|
||||
.type _ZN12_GLOBAL__N_14putcEh, @function
|
||||
_ZN12_GLOBAL__N_14putcEh:
|
||||
movw %sp, %bx
|
||||
movb 2(%bx), %al
|
||||
#APP
|
||||
;# 21 "wozmon.cc" 1
|
||||
mov %al, %al
|
||||
mov $0x0e, %ah
|
||||
int $0x10
|
||||
|
||||
;# 0 "" 2
|
||||
#NO_APP
|
||||
ret
|
||||
.size _ZN12_GLOBAL__N_14putcEh, .-_ZN12_GLOBAL__N_14putcEh
|
||||
.type _ZN12_GLOBAL__N_17ReadHexEPKc, @function
|
||||
_ZN12_GLOBAL__N_17ReadHexEPKc:
|
||||
pushw %si
|
||||
pushw %di
|
||||
pushw %bp
|
||||
movw %sp, %bp
|
||||
pushw %ds
|
||||
pushw %ds
|
||||
movw 8(%bp), %ax
|
||||
movw %ax, -2(%bp)
|
||||
.L5:
|
||||
movw -2(%bp), %bx
|
||||
cmpb $32, (%bx)
|
||||
jne .L4
|
||||
incw -2(%bp)
|
||||
jmp .L5
|
||||
.L4:
|
||||
xorw %di, %di
|
||||
movw %di, %ax
|
||||
movw %di, %dx
|
||||
movb $4, %ch
|
||||
.L9:
|
||||
movw %di, %bx
|
||||
movw -2(%bp), %si
|
||||
movb (%bx,%si), %cl
|
||||
cmpb $57, %cl
|
||||
ja .L6
|
||||
addb $-48, %cl
|
||||
.L12:
|
||||
movb %cl, %bl
|
||||
cmpb $15, %cl
|
||||
ja .L3
|
||||
movw %ax, %si
|
||||
movb $12, %cl
|
||||
shrw %cl, %si
|
||||
movb %ch, %cl
|
||||
shlw %cl, %dx
|
||||
orw %si, %dx
|
||||
shlw %cl, %ax
|
||||
movb %bl, -4(%bp)
|
||||
movb -4(%bp), %bl
|
||||
xorb %bh, %bh
|
||||
addw %bx, %ax
|
||||
movw $0, %bx
|
||||
adcw %bx, %dx
|
||||
incw %di
|
||||
cmpw $8, %di
|
||||
jne .L9
|
||||
.L3:
|
||||
movw %bp, %sp
|
||||
popw %bp
|
||||
popw %di
|
||||
popw %si
|
||||
ret
|
||||
.L6:
|
||||
addb $-87, %cl
|
||||
jmp .L12
|
||||
.size _ZN12_GLOBAL__N_17ReadHexEPKc, .-_ZN12_GLOBAL__N_17ReadHexEPKc
|
||||
.type _ZN12_GLOBAL__N_114WriteHexNibbleEh, @function
|
||||
_ZN12_GLOBAL__N_114WriteHexNibbleEh:
|
||||
pushw %bp
|
||||
movw %sp, %bp
|
||||
movb 4(%bp), %al
|
||||
movb %al, %dl
|
||||
xorb %dh, %dh
|
||||
cmpw $9, %dx
|
||||
jle .L14
|
||||
addb $87, %al
|
||||
.L16:
|
||||
movb %al, 4(%bp)
|
||||
popw %bp
|
||||
jmp _ZN12_GLOBAL__N_14putcEh
|
||||
.L14:
|
||||
addb $48, %al
|
||||
jmp .L16
|
||||
.size _ZN12_GLOBAL__N_114WriteHexNibbleEh, .-_ZN12_GLOBAL__N_114WriteHexNibbleEh
|
||||
.section .text.startup,"ax",@progbits
|
||||
.global main
|
||||
.type main, @function
|
||||
main:
|
||||
pushw %si
|
||||
pushw %di
|
||||
pushw %es
|
||||
pushw %bp
|
||||
movw %sp, %bp
|
||||
subw $76, %sp
|
||||
leaw -64(%bp), %di
|
||||
movw $64, %ax
|
||||
pushw %ax
|
||||
xorw %ax, %ax
|
||||
movw %ax, %es
|
||||
pushw %ax
|
||||
pushw %di
|
||||
call memset
|
||||
addw $6, %sp
|
||||
movw %es, %si
|
||||
movw %es, -70(%bp)
|
||||
.L18:
|
||||
#APP
|
||||
;# 11 "wozmon.cc" 1
|
||||
mov $0x00, %ah
|
||||
int $0x16
|
||||
|
||||
;# 0 "" 2
|
||||
#NO_APP
|
||||
pushw %ax
|
||||
movb %al, -71(%bp)
|
||||
call _ZN12_GLOBAL__N_14putcEh
|
||||
addw $2, %sp
|
||||
movb -71(%bp), %al
|
||||
cmpb $13, %al
|
||||
jne .L19
|
||||
movb $0, (%di)
|
||||
leaw -64(%bp), %bx
|
||||
cmpw %bx, %di
|
||||
jne .L21
|
||||
addw $4, %si
|
||||
adcw $0, -70(%bp)
|
||||
.L22:
|
||||
movw %si, %ax
|
||||
andw $-4, %ax
|
||||
movw %ax, %es
|
||||
movw -70(%bp), %di
|
||||
movw $8, %bx
|
||||
.L25:
|
||||
movw %ax, -76(%bp)
|
||||
movw %bx, -74(%bp)
|
||||
movb $12, %cl
|
||||
movb %cl, -71(%bp)
|
||||
pushw -68(%bp)
|
||||
call _ZN12_GLOBAL__N_114WriteHexNibbleEh
|
||||
movw -76(%bp), %ax
|
||||
movw %ax, %dx
|
||||
movb -71(%bp), %cl
|
||||
shrw %cl, %dx
|
||||
movb $4, %cl
|
||||
shlw %cl, %di
|
||||
shlw %cl, %ax
|
||||
orw %dx, %di
|
||||
addw $2, %sp
|
||||
movw -74(%bp), %bx
|
||||
decw %bx
|
||||
jne .L25
|
||||
movb $58, %al
|
||||
pushw %ax
|
||||
call _ZN12_GLOBAL__N_14putcEh
|
||||
movw %es, %di
|
||||
leaw 4(%di), %cx
|
||||
addw $2, %sp
|
||||
.L26:
|
||||
movw %cx, -74(%bp)
|
||||
movb $32, %al
|
||||
pushw %ax
|
||||
call _ZN12_GLOBAL__N_14putcEh
|
||||
movb (%di), %dl
|
||||
movb %dl, %al
|
||||
movb %dl, -71(%bp)
|
||||
xorb %ah, %ah
|
||||
movb $4, %cl
|
||||
sarw %cl, %ax
|
||||
pushw %ax
|
||||
call _ZN12_GLOBAL__N_114WriteHexNibbleEh
|
||||
movb -71(%bp), %dl
|
||||
andb $15, %dl
|
||||
pushw %dx
|
||||
call _ZN12_GLOBAL__N_114WriteHexNibbleEh
|
||||
incw %di
|
||||
addw $6, %sp
|
||||
movw -74(%bp), %cx
|
||||
cmpw %di, %cx
|
||||
jne .L26
|
||||
movb $13, %al
|
||||
pushw %ax
|
||||
call _ZN12_GLOBAL__N_14putcEh
|
||||
movb $10, %al
|
||||
pushw %ax
|
||||
call _ZN12_GLOBAL__N_14putcEh
|
||||
addw $4, %sp
|
||||
xorw %bx, %bx
|
||||
leaw -64(%bp), %di
|
||||
.L29:
|
||||
movb (%bx,%di), %al
|
||||
testb %al, %al
|
||||
je .L18
|
||||
cmpb $58, %al
|
||||
je .L28
|
||||
incw %bx
|
||||
jmp .L29
|
||||
.L32:
|
||||
xchgw %ax, %di
|
||||
jmp .L18
|
||||
.L21:
|
||||
movb (%bx), %al
|
||||
testb %al, %al
|
||||
je .L23
|
||||
cmpb $114, %al
|
||||
je .L24
|
||||
incw %bx
|
||||
jmp .L21
|
||||
.L19:
|
||||
cmpb $127, %al
|
||||
jne .L30
|
||||
decw %di
|
||||
leaw -64(%bp), %ax
|
||||
cmpw %ax, %di
|
||||
jc .L32
|
||||
movb $8, %al
|
||||
pushw %ax
|
||||
movb %al, -71(%bp)
|
||||
call _ZN12_GLOBAL__N_14putcEh
|
||||
movb $32, %dl
|
||||
pushw %dx
|
||||
call _ZN12_GLOBAL__N_14putcEh
|
||||
movb -71(%bp), %al
|
||||
pushw %ax
|
||||
call _ZN12_GLOBAL__N_14putcEh
|
||||
addw $6, %sp
|
||||
jmp .L18
|
||||
.L30:
|
||||
movb %al, (%di)
|
||||
incw %di
|
||||
jmp .L18
|
||||
.L24:
|
||||
call *%si
|
||||
jmp .L22
|
||||
.L23:
|
||||
leaw -64(%bp), %ax
|
||||
pushw %ax
|
||||
call _ZN12_GLOBAL__N_17ReadHexEPKc
|
||||
addw $2, %sp
|
||||
xchgw %ax, %si
|
||||
movw %dx, -70(%bp)
|
||||
movb $10, %al
|
||||
pushw %ax
|
||||
call _ZN12_GLOBAL__N_14putcEh
|
||||
addw $2, %sp
|
||||
jmp .L22
|
||||
.L28:
|
||||
leaw 1(%bx,%di), %bx
|
||||
pushw %bx
|
||||
call _ZN12_GLOBAL__N_17ReadHexEPKc
|
||||
addw $2, %sp
|
||||
movw %ax, (%si)
|
||||
movw %dx, 2(%si)
|
||||
jmp .L18
|
||||
.size main, .-main
|
||||
.ident "GCC: (GNU) 6.3.0"
|
Loading…
Reference in New Issue
Block a user