Ubuntu 10.10 64-bit.GNU as.
.section .data
value1:
.float 1.25 , 124.79 , 200.0 , -312.5
.section .text
.globl _start
_start:
nop
cvtps2dq value1 , %xmm0
cvttps2dq value1 , %xmm1
movl $1 , %eax
movl $0 , %ebx
int $0x80
Запуск программы приводит к ошибке сегментации:
~/scratch $ as --64 test.s -o test.o && ld test.o -o test -dynamic-linker /lib64/ld-linux-x86-64.so.2 -lc
~/scratch $ ./test
Segmentation fault
~/scratch $
Забавно, если я скомпилирую программу только с одной из этих двух строк (любой):
cvtps2dq value1 , %xmm0
cvttps2dq value1 , %xmm1
работает нормально.
Есть какие-нибудь предложения?
Кстати, этот пример основан на одном из книги Ричарда Блума "Язык профессиональной сборки",Примеры написаны для 32-битного Linux, и мне пришлось соответственно преобразовать его.Так что, возможно, это 32/64 битная вещь.: -)
Спасибо!
Ред