summaryrefslogtreecommitdiff
path: root/assignments/3/main.s
blob: 0a1d81214f4bc39224bea1915f1ca44dee460b21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
	.file	"main.c"
# GNU C17 (GCC) version 14.2.1 20240912 (Red Hat 14.2.1-3) (x86_64-redhat-linux)
#	compiled by GNU C version 14.2.1 20240912 (Red Hat 14.2.1-3), GMP version 6.2.1, MPFR version 4.2.1, MPC version 1.3.1, isl version none
# GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
# options passed: -mtune=generic -march=x86-64 -O2
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"%d"
.LC1:
	.string	"Max: %d\nMin: %d\n"
	.section	.text.startup,"ax",@progbits
	.p2align 4
	.globl	main
	.type	main, @function
main:
.LFB11:
	.cfi_startproc
	pushq	%r12	#
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	pushq	%rbp	#
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
# main.c:7:   int min = INT_MAX;
	movl	$2147483647, %ebp	#, min
# main.c:4: int main(int argc, char *argv[]) {
	pushq	%rbx	#
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
# main.c:6:   int max = INT_MIN;
	movl	$-2147483648, %ebx	#, max
# main.c:4: int main(int argc, char *argv[]) {
	subq	$16, %rsp	#,
	.cfi_def_cfa_offset 48
# main.c:5:   int number = 0;
	movl	$0, 12(%rsp)	#, number
	leaq	12(%rsp), %r12	#, tmp107
# main.c:9:   while (scanf("%d", &number) != EOF) {
	jmp	.L2	#
	.p2align 4,,10
	.p2align 3
.L3:
# main.c:10:     if (number > max)
	movl	12(%rsp), %eax	# number, number.0_1
# main.c:10:     if (number > max)
	cmpl	%eax, %ebx	# number.0_1, max
	cmovl	%eax, %ebx	# max,, number.0_1, max
# main.c:12:     if (number < min)
	cmpl	%eax, %ebp	# number.0_1, min
	cmovg	%eax, %ebp	# min,, number.0_1, min
.L2:
# main.c:9:   while (scanf("%d", &number) != EOF) {
	xorl	%eax, %eax	#
	movq	%r12, %rsi	# tmp107,
	movl	$.LC0, %edi	#,
	call	__isoc99_scanf	#
# main.c:9:   while (scanf("%d", &number) != EOF) {
	cmpl	$-1, %eax	#, tmp108
	jne	.L3	#,
# main.c:16:   printf("Max: %d\nMin: %d\n", max, min);
	movl	%ebp, %edx	# min,
	movl	%ebx, %esi	# max,
	movl	$.LC1, %edi	#,
	xorl	%eax, %eax	#
	call	printf	#
# main.c:17: }
	addq	$16, %rsp	#,
	.cfi_def_cfa_offset 32
	xorl	%eax, %eax	#
	popq	%rbx	#
	.cfi_def_cfa_offset 24
	popq	%rbp	#
	.cfi_def_cfa_offset 16
	popq	%r12	#
	.cfi_def_cfa_offset 8
	ret	
	.cfi_endproc
.LFE11:
	.size	main, .-main
	.ident	"GCC: (GNU) 14.2.1 20240912 (Red Hat 14.2.1-3)"
	.section	.note.GNU-stack,"",@progbits