汇编语言程序的编译、调试与C库函数使用
1. 使用gcc汇编程序的问题及解决
使用gcc汇编程序时存在一个问题,GNU链接器寻找 _start 标签来确定程序的起始位置,而gcc则寻找 main 标签(这在C或C++编程中很常见)。因此,需要将程序中的 _start 标签和定义该标签的 .globl 指令修改如下:
.section .text
.globl main
main:
修改后,汇编和链接程序就很简单了:
$ gcc -o cpuid cpuid.s
$ ./cpuid
The processor Vendor ID is ‘GenuineIntel’
2. 程序调试
在简单的示例中,除非在源代码中引入了一些输入错误,程序应该能按预期运行。但在汇编语言编程中,情况并非总是如此。在更复杂的程序中,分配寄存器和内存位置,或尝试特殊指令代码来处理复杂数据问题时,很容易出错。这时,有一个调试器来逐步执行程序并观察数据处理方式就很有用。
2.1 使用gdb调试
要调试汇编语言程序,首先需要使用 -gstabs 参数重新汇编源代码:
$ as -gstabs -o cpuid.o cpuid.s
$ ld
汇编程序的编译调试与C库使用
超级会员免费看
订阅专栏 解锁全文
1923

被折叠的 条评论
为什么被折叠?



