저는 리눅스 64 비트에서 GCC와 어셈블리 기능을 연결하고 있습니다. 내가 사용하는 라이브러리는 math.h의 TAN입니다. 나는 그것을 연결한다.C 함수의 TAN은 64 비트 GCC에서 그 값을 어디에서 반환합니까?
gcc -s prog.o -o prog -lm
프로그램은 작동하지만 반환 값은 0.0000000 (3.4 라디안)입니다. 내 어셈블리 코드에서 extrn을 사용합니다.
extrn tan
extrn printf
xmm0을 사용하여 인수를 라디안 단위로 TAN 함수에 전달합니다. 이제 어느 레지스터가 TAN에서 값을 반환하는 데 사용되는지 확실하지 않습니다. xmm0, st0 또는 RAX입니까? 나는 이것에 관해보기 흉한 참조를 찾을 수 없다.
그것은'xmm0'입니다. 참고 자료는 [x86-64 abi documentation] (http://www.x86-64.org/documentation_folder/abi.pdf)입니다. 왜 찾을 수 없는지 확실하지 않습니다. – Jester
그런 다음 xmm0을 입력하십시오. TBH, 나는 AT & T를 읽을 수 없다. 그것은 AT & T에서 쓰여진 중요한 참고 자료를보기 위해 내 마음을 아프게합니다. LOL. 감사. – royalfinest
& t에서 배우는 데는 약 5 분이 걸립니다. 어쨌든'xmm0'가 값을 반환하는 데 쓰이는 부분에 대해서는 그렇게 많이 필요하지 않습니다. – Jester