리눅스 커널 (또는 시스템?) 호출을 사용하지 않고이 어셈블리 코드를 UNIX 호환 코드로 변경하고 싶습니다. (INT의 $ 0x80을)이 Linux 어셈블리 코드를 호환되는 UNIX 어셈블리 코드로 변경하는 방법은 무엇입니까?
이 코드는
#cpuid.s Sample program to extract the processor Vendor ID
.section .data
output:
.ascii “The processor Vendor ID is ‘xxxxxxxxxxxx’\n”
.section .text
.globl _start
_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
감사 & T의 구문을 작성, 인텔 32 비트 펜티엄 플랫폼입니다,
어셈블리에 관해 이야기 할 때마다 CPU 아키텍처를 지정해야합니다. 명시 적으로. x86 일지라도. –
고마워, 나는 인텔 펜티엄 플랫폼 –
을 추가 했는가? 어느 유닉스인가? 왜 그들은 모두 호환 시스템 호출 규칙을 가지고 있다고 가정합니까? 또는 조립업자, 그 문제에 관해서? – wnoise