Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .file "Ex1-24.c"
- .text
- .p2align 4,,15
- .globl get_lines
- .def get_lines; .scl 2; .type 32; .endef
- .seh_proc get_lines
- get_lines:
- pushq %rdi
- .seh_pushreg %rdi
- pushq %rsi
- .seh_pushreg %rsi
- pushq %rbx
- .seh_pushreg %rbx
- subq $32, %rsp
- .seh_stackalloc 32
- .seh_endprologue
- cmpl $1, %edx
- jle .L6
- movq %rcx, %rbx
- leal -1(%rdx), %edi
- xorl %esi, %esi
- jmp .L3
- .p2align 4,,10
- .L12:
- addq $1, %rbx
- addl $1, %esi
- cmpl $10, %eax
- movq %rbx, %rcx
- je .L11
- cmpl %esi, %edi
- movb %al, (%r8)
- je .L2
- .L3:
- call getchar
- cmpl $-1, %eax
- movq %rbx, %r8
- jne .L12
- movq %rbx, %rcx
- .L2:
- movl %esi, %eax
- movb $0, (%rcx)
- addq $32, %rsp
- popq %rbx
- popq %rsi
- popq %rdi
- ret
- .p2align 4,,10
- .L11:
- movl %esi, %eax
- movb $10, (%r8)
- movb $0, (%rcx)
- addq $32, %rsp
- popq %rbx
- popq %rsi
- popq %rdi
- ret
- .L6:
- xorl %esi, %esi
- jmp .L2
- .seh_endproc
- .def __main; .scl 2; .type 32; .endef
- .section .rdata,"dr"
- .LC0:
- .ascii "Errors in program:\0"
- .align 8
- .LC1:
- .ascii "Unbalanced single quotes detected.\0"
- .align 8
- .LC2:
- .ascii "Unbalanced double quotes detected.\0"
- .LC3:
- .ascii "Unbalanced braces: %7d\12\0"
- .LC4:
- .ascii "Unbalanced Parentheses: %2d\12\0"
- .LC5:
- .ascii "Unbalanced brackets: %5d\12\0"
- .section .text.startup,"x"
- .p2align 4,,15
- .globl main
- .def main; .scl 2; .type 32; .endef
- .seh_proc main
- main:
- pushq %r14
- .seh_pushreg %r14
- pushq %r13
- .seh_pushreg %r13
- pushq %r12
- .seh_pushreg %r12
- pushq %rbp
- .seh_pushreg %rbp
- pushq %rdi
- .seh_pushreg %rdi
- pushq %rsi
- .seh_pushreg %rsi
- pushq %rbx
- .seh_pushreg %rbx
- subq $1056, %rsp
- .seh_stackalloc 1056
- .seh_endprologue
- xorl %edi, %edi
- xorl %ebp, %ebp
- xorl %r14d, %r14d
- leaq 32(%rsp), %rsi
- xorl %ebx, %ebx
- xorl %r13d, %r13d
- call __main
- leaq 1(%rsi), %r12
- .p2align 4,,10
- .L14:
- movl $1024, %edx
- movq %rsi, %rcx
- call get_lines
- testl %eax, %eax
- jle .L37
- leal -1(%rax), %r8d
- movq %rsi, %rcx
- addq %r12, %r8
- jmp .L26
- .p2align 4,,10
- .L17:
- cmpb $93, %al
- je .L21
- jle .L38
- cmpb $123, %al
- je .L24
- cmpb $125, %al
- sete %al
- movzbl %al, %eax
- subl %eax, %r14d
- .p2align 4,,10
- .L15:
- addq $1, %rcx
- cmpq %r8, %rcx
- je .L14
- .L26:
- movzbl (%rcx), %eax
- cmpb $41, %al
- je .L16
- jg .L17
- cmpb $39, %al
- je .L18
- jg .L19
- cmpb $34, %al
- sete %al
- movzbl %al, %eax
- addl %eax, %edi
- jmp .L15
- .p2align 4,,10
- .L38:
- cmpb $91, %al
- sete %al
- movzbl %al, %eax
- addl %eax, %r13d
- jmp .L15
- .p2align 4,,10
- .L16:
- subl $1, %ebx
- jmp .L15
- .p2align 4,,10
- .L21:
- subl $1, %r13d
- jmp .L15
- .p2align 4,,10
- .L24:
- addl $1, %r14d
- jmp .L15
- .p2align 4,,10
- .L19:
- addl $1, %ebx
- jmp .L15
- .p2align 4,,10
- .L18:
- addl $1, %ebp
- jmp .L15
- .p2align 4,,10
- .L37:
- movl %r14d, %eax
- leaq .LC0(%rip), %rcx
- sarl $31, %eax
- xorl %eax, %r14d
- subl %eax, %r14d
- movl %ebx, %eax
- sarl $31, %eax
- xorl %eax, %ebx
- subl %eax, %ebx
- movl %r13d, %eax
- sarl $31, %eax
- xorl %eax, %r13d
- subl %eax, %r13d
- call puts
- andl $1, %ebp
- je .L39
- .L28:
- andl $1, %edi
- jne .L29
- leaq .LC2(%rip), %rcx
- call puts
- .L29:
- leaq .LC3(%rip), %rcx
- movl %r14d, %edx
- call printf
- leaq .LC4(%rip), %rcx
- movl %ebx, %edx
- call printf
- leaq .LC5(%rip), %rcx
- movl %r13d, %edx
- call printf
- xorl %eax, %eax
- addq $1056, %rsp
- popq %rbx
- popq %rsi
- popq %rdi
- popq %rbp
- popq %r12
- popq %r13
- popq %r14
- ret
- .L39:
- leaq .LC1(%rip), %rcx
- call puts
- jmp .L28
- .seh_endproc
- .ident "GCC: (Rev1, Built by MSYS2 project) 7.2.0"
- .def getchar; .scl 2; .type 32; .endef
- .def puts; .scl 2; .type 32; .endef
- .def printf; .scl 2; .type 32; .endef
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement