add addembly x86
This commit is contained in:
parent
4a1628a4f9
commit
85fec93ba2
28
study_assembly_x86/Makefile
Executable file
28
study_assembly_x86/Makefile
Executable file
|
@ -0,0 +1,28 @@
|
|||
CC = gcc
|
||||
CFLAGS = -Wall -g
|
||||
|
||||
# 默认目标,生成所有文件
|
||||
all: main.i main.s main.o main
|
||||
|
||||
# 预处理: 生成 main.i
|
||||
main.i: main.c
|
||||
$(CC) -E $< -o $@
|
||||
|
||||
# 编译: 生成汇编代码 main.s
|
||||
main.s: main.i
|
||||
$(CC) -S $< -o $@
|
||||
|
||||
# 汇编: 生成目标文件 main.o
|
||||
main.o: main.s
|
||||
$(CC) -c $< -o $@
|
||||
|
||||
# 链接: 生成可执行文件 main
|
||||
main: main.o
|
||||
$(CC) $< -o $@
|
||||
|
||||
# 清理所有生成的文件
|
||||
clean:
|
||||
rm -f main.i main.s main.o main
|
||||
|
||||
# .PHONY 表示这些目标不是文件名
|
||||
.PHONY: all clean
|
BIN
study_assembly_x86/main
Executable file
BIN
study_assembly_x86/main
Executable file
Binary file not shown.
8
study_assembly_x86/main.c
Executable file
8
study_assembly_x86/main.c
Executable file
|
@ -0,0 +1,8 @@
|
|||
int add_a_and_b(int a, int b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
int main() {
|
||||
return add_a_and_b(2, 3);
|
||||
}
|
||||
|
13
study_assembly_x86/main.i
Executable file
13
study_assembly_x86/main.i
Executable file
|
@ -0,0 +1,13 @@
|
|||
# 0 "main.c"
|
||||
# 0 "<built-in>"
|
||||
# 0 "<命令行>"
|
||||
# 1 "/usr/include/stdc-predef.h" 1 3 4
|
||||
# 0 "<命令行>" 2
|
||||
# 1 "main.c"
|
||||
int add_a_and_b(int a, int b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
int main() {
|
||||
return add_a_and_b(2, 3);
|
||||
}
|
BIN
study_assembly_x86/main.o
Executable file
BIN
study_assembly_x86/main.o
Executable file
Binary file not shown.
44
study_assembly_x86/main.s
Executable file
44
study_assembly_x86/main.s
Executable file
|
@ -0,0 +1,44 @@
|
|||
.file "main.c"
|
||||
.text
|
||||
.globl add_a_and_b
|
||||
.type add_a_and_b, @function
|
||||
add_a_and_b:
|
||||
.LFB0:
|
||||
.cfi_startproc
|
||||
pushq %rbp
|
||||
.cfi_def_cfa_offset 16
|
||||
.cfi_offset 6, -16
|
||||
movq %rsp, %rbp
|
||||
.cfi_def_cfa_register 6
|
||||
movl %edi, -4(%rbp)
|
||||
movl %esi, -8(%rbp)
|
||||
movl -4(%rbp), %edx
|
||||
movl -8(%rbp), %eax
|
||||
imul %edx, %eax
|
||||
popq %rbp
|
||||
.cfi_def_cfa 7, 8
|
||||
ret
|
||||
.cfi_endproc
|
||||
.LFE0:
|
||||
.size add_a_and_b, .-add_a_and_b
|
||||
.globl main
|
||||
.type main, @function
|
||||
main:
|
||||
.LFB1:
|
||||
.cfi_startproc
|
||||
pushq %rbp
|
||||
.cfi_def_cfa_offset 16
|
||||
.cfi_offset 6, -16
|
||||
movq %rsp, %rbp
|
||||
.cfi_def_cfa_register 6
|
||||
movl $3, %esi
|
||||
movl $2, %edi
|
||||
call add_a_and_b
|
||||
popq %rbp
|
||||
.cfi_def_cfa 7, 8
|
||||
ret
|
||||
.cfi_endproc
|
||||
.LFE1:
|
||||
.size main, .-main
|
||||
.ident "GCC: (GNU) 14.1.1 20240720"
|
||||
.section .note.GNU-stack,"",@progbits
|
Loading…
Reference in New Issue
Block a user