操作系统实验报告1
一、实验内容
-
熟悉 Linux 下 x86 汇编语言编程环境
-
验证实验 Blum’s Book: Sample programs in Chapter 04, 05 (Moving Data)
二、实验环境
Ubuntu 18.04(64位)
三、实验过程
1、Sample programs in Chapter 04
CPUID指令是一条汇编语言指令,它是请求处理器的特定信息并且把信息返回到特定寄存器中的低级指令。在该范例程序中,指令从处理器获得简单的厂商ID字符器。
1)cpuid.s
在终端中输入命令行:
$ as -o cpuid.o cpuid.s $ ld -o cpuid cpuid.o $ ./cpuid
输出结果:
2)cpuid2.s
-
用as和ld命令编译链接
在cpuid2.s程序中,它调用了C库中的函数,因此需要将C库文件连接到程序目标代码。在Linux系统上,将C函数连接到汇编语言程序有两种方法。第一种方法为静态链接(static linking),它把函数目标代码直接连接到应用程序的可执行程序文件中,容易造成内存浪费。第二种方法是动态链接(dynamic linking),在程序运行时由操作系统调用动态链接库,并且多个程序可以共