Files
2026-03-22 17:40:44 +08:00

103 lines
1.8 KiB
ArmAsm

.file "struct.c"
.text
.def printf; .scl 3; .type 32; .endef
.seh_proc printf
printf:
pushq %rbp
.seh_pushreg %rbp
pushq %rbx
.seh_pushreg %rbx
subq $56, %rsp
.seh_stackalloc 56
leaq 48(%rsp), %rbp
.seh_setframe %rbp, 48
.seh_endprologue
movq %rcx, 32(%rbp)
movq %rdx, 40(%rbp)
movq %r8, 48(%rbp)
movq %r9, 56(%rbp)
leaq 40(%rbp), %rax
movq %rax, -16(%rbp)
movq -16(%rbp), %rbx
movl $1, %ecx
movq __imp___acrt_iob_func(%rip), %rax
call *%rax
movq %rax, %rcx
movq 32(%rbp), %rax
movq %rbx, %r8
movq %rax, %rdx
call __mingw_vfprintf
movl %eax, -4(%rbp)
movl -4(%rbp), %eax
addq $56, %rsp
popq %rbx
popq %rbp
ret
.seh_endproc
.section .rdata,"dr"
.align 8
.LC0:
.ascii "Name: %s, Age: %d, Is_Male: %d\0"
.text
.globl print
.def print; .scl 2; .type 32; .endef
.seh_proc print
print:
pushq %rbp
.seh_pushreg %rbp
movq %rsp, %rbp
.seh_setframe %rbp, 0
subq $32, %rsp
.seh_stackalloc 32
.seh_endprologue
movq %rcx, 16(%rbp)
movq 16(%rbp), %rax
movzbl (%rax), %eax
movzbl %al, %edx
movq 16(%rbp), %rax
movl 4(%rax), %ecx
movq 16(%rbp), %rax
movq 8(%rax), %rax
movl %edx, %r9d
movl %ecx, %r8d
movq %rax, %rdx
leaq .LC0(%rip), %rax
movq %rax, %rcx
call printf
nop
addq $32, %rsp
popq %rbp
ret
.seh_endproc
.section .rdata,"dr"
.LC1:
.ascii "Green\0"
.text
.globl main
.def main; .scl 2; .type 32; .endef
.seh_proc main
main:
pushq %rbp
.seh_pushreg %rbp
movq %rsp, %rbp
.seh_setframe %rbp, 0
subq $48, %rsp
.seh_stackalloc 48
.seh_endprologue
call __main
movb $1, -16(%rbp)
movl $30, -12(%rbp)
leaq .LC1(%rip), %rax
movq %rax, -8(%rbp)
leaq -16(%rbp), %rax
movq %rax, %rcx
call print
movl $0, %eax
addq $48, %rsp
popq %rbp
ret
.seh_endproc
.def __main; .scl 2; .type 32; .endef
.ident "GCC: (x86_64-posix-seh-rev1, Built by MinGW-Builds project) 14.2.0"
.def __mingw_vfprintf; .scl 2; .type 32; .endef