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