当前位置: 代码迷 >> 汇编语言 >> 《汇编语言程序设计》 as+ld 跟 gcc 两种将汇编->机器指令的操作结果不一样
  详细解决方案

《汇编语言程序设计》 as+ld 跟 gcc 两种将汇编->机器指令的操作结果不一样

热度:377   发布时间:2016-05-02 04:27:10.0
《汇编语言程序设计》 as+ld 和 gcc 两种将汇编->机器指令的操作结果不一样
RT:
在as+ld生成的机器指令,执行完成之后还多了一个Segment Fault(core dump)输出
将下方_start改成main之后,使用gcc转成机器码,却是没有问题的。为啥?求指导
(这里的系统调用目的是将字符显示在display上面)


.section .data
output: .ascii "The processor Vendor ID is 'xxxxxxxxxxxx'\n "
.section .bss

.globl _start

.section .text
_start: 
  movl $0,%eax
  cpuid
  movl $output, %edi
  movl %ebx, 28(%edi)
  movl %edx, 32(%edi)
  movl %ecx, 36(%edi)
  movl $4, %eax
  movl $1, %ebx
  movl $output, %ecx
  movl $42, %edx
  int $0x80

------解决思路----------------------
会不会因为你最后没有退出?
movl $1, %eax
movl $0, %ebx
int $0x80
  相关解决方案