Linux课程大作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux课程设计报告

题目 Linux课程大作业

院系

班级

姓名

指导教师

一、基础篇(给出源程序和编译运行的结果)

1、编写一个简单的c语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。

源代码(c):

源代码(汇编):

.file "sum.c"

.text

.globl average

.type average, @function

average:

.LFB0:

.cfi_startproc

pushl %ebp

.cfi_def_cfa_offset 8

.cfi_offset 5, -8

movl %esp, %ebp

.cfi_def_cfa_register 5

subl $8, %esp

movl 12(%ebp), %eax

movl 8(%ebp), %edx

addl %edx, %eax

movl %eax, -4(%ebp)

fildl -4(%ebp)

fldl .LC0

fdivrp %st, %st(1)

leave

.cfi_restore 5

.cfi_def_cfa 4, 4

ret

.cfi_endproc

.LFE0:

.size average, .-average

.section .rodata

.align 4

.LC2:

.string

"\350\257\267\350\276\223\345\205\245\344\270\244\344\270\252\346\225\260\ 357\274\214\345\233\236\350\275\246\345\210\206\345\211\262"

.LC3:

.string "%d"

.LC4:

.string

"%d\344\270\216%d\347\232\204\345\271\263\345\235\207\345\200\274\346\23 0\257\357\274\232%lf\n"

.text

.globl main

.type main, @function

main:

.LFB1:

.cfi_startproc

pushl %ebp

.cfi_def_cfa_offset 8

.cfi_offset 5, -8

movl %esp, %ebp

.cfi_def_cfa_register 5 andl $-16, %esp

subl $48, %esp

movl $0, 44(%esp) movl $.LC2, (%esp) call puts

movl $.LC3, %eax leal 40(%esp), %edx movl %edx, 4(%esp) movl %eax, (%esp) call __isoc99_scanf movl $.LC3, %eax leal 44(%esp), %edx movl %edx, 4(%esp) movl %eax, (%esp) call __isoc99_scanf movl 44(%esp), %edx movl 40(%esp), %eax movl %edx, 4(%esp) movl %eax, (%esp) call average

movl 44(%esp), %ecx movl 40(%esp), %edx movl $.LC4, %eax fstpl 12(%esp)

movl %ecx, 8(%esp) movl %edx, 4(%esp) movl %eax, (%esp)

call printf

leave

.cfi_restore 5

.cfi_def_cfa 4, 4

ret

.cfi_endproc

.LFE1:

.size main, .-main

.section .rodata

.align 8

.LC0:

.long 0

.long 1073741824

.ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3"

.section .note.GNU-stack,"",@progbits

执行结果:

2、编写一个c语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤,至少十步以上)。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153=1³+5³+3³。

源代码:

执行结果:

3、设计一个程序,要求输出n个整数(n也由键盘输入)中的最大值,并为它编写makefile文件,用make编译后修成返回最小值,再编译,观察有多少文件不需要重新编译。

源代码:

makefile文件:

结果图:

改变程序后,只有max.c,main.c文件程序需要重新编译;

4、编写一个程序,求2-n间的素数,n由键盘输入,循环变量分别从2到n、2到(int)sqrt(n),分别测出两个循环的所用时间。

源代码:

编译运行效果:

5、设计一个程序,要求将10分别以十进制、八进制和十六进制输出。

程序设计:

运行结果:

一、提高篇(三选二,划出程序流程图,给出程序源代码和编译运行的结果)

1、设计两个程序,要求用命名管道FIFO,实现简单的文本文件或图片文件的传输功能。

相关文档
最新文档