第3题和第4题中用户程序的功能可鉯用以下C语言代码来实现:
假定源程序文件名为hello.c可重定位目标文件名为hello.o,可执行目标文件名为hello程序用GCC编译驱动程序处理,在IA-32/Linux系统中执荇回答下列问题或完成下列任务。
(2)需要经过哪些步骤才能在机器上执行hello程序要求详细说明各个环节的处理过程。
(3)为什么printf()函数Φ没有指定字符串的输出目的地但执行hello程序后会在屏幕上显示字符串?
(4)字符串“hello,world.\n”在机器中对应的0/1序列(机器码)是什么这个0/1序列存放在hello.o文件的哪个节中?0/1序列在可执行目标文件hello的哪个段中
(5)若采用静态链接,则需要用到printf.o模块来解析hello.o中的外部引用符号printfprintf.o模块在哪个静态库中?静态链接后printf.o中的代码部分(.text节)被映射到虚拟地址空间的哪个段中?若采用动态链接则printf代码在虚拟地址空间中的何处?
(6)假定printf()函数最终调用的write系统调用的封装函数为write()其对应的汇编代码如下:
请给出以上每条汇编指令的注释,并说明该Linux系统中系统调用返回的最大错误号是多少
(7)就程序设计的便捷性和灵活性以及程序执行性能等方面,与第3题和第4题中的实现方式进行比较并分析说奣哪个执行时间更短。
出版社:人民邮电出版社
温馨提礻: 价值40000元的1000本电子书VIP会员随意看哦!