2012-12-17 4 views
0

간단한 질문. 이게 많은주의를 끌지는 모르겠지만 AT & T (gAS) 문법의 x86-64 어셈블리에서 3 또는 4 개의 매개 변수 연산을 수행하려면 어떻게해야합니까? 그것은 인수가있는 모든 86 프로그래머 사용 가스에 알려진 예를 들어, 전환 :AT & T 구문에서 3 또는 4 매개 변수 x86 어셈블리

xor eax, ebx ; Intel (xASM) 
xorl %ebx, %eax ; AT&T (gAS) 

하지만 내가 얼마나 말 :

blendpd xmm0, xmm1, 5 

I는 무엇을 의미, 방법의 지침이 쓴? 나는 %xmm0과 같은 (여전히 매개 변수에 접두어가 붙을 것입니다), 명령의 끝에는 어떤 식으로 접미사를 추가합니까 (l : movl : 32 비트)?

답변

4

상기 & T에 해당 피연산자의 순서가 역전되는 경우가 될 것입니다 : 당신이 확실하지 않은 경우

blendpd $5, %xmm1, %xmm0 

당신은 항상 다음 & AT로 분해 인텔 문법과 T.

+0

를 컴파일 할 수 있습니다 어떻게 것 AT & T에 대한 재앙? –

+0

더하기, 지침의 접미사는 어디에 있습니까? –

+1

크기는 대상에서 추론 할 수 있으므로 접미사는 필요하지 않습니다. 'objdump -Dslx BINARY'로 AT & T 문법으로 분해 할 수 있습니다. 또는'gcc -S' (어떤 컴파일러를 쓰는지 모르겠다)로 어셈블리 단계를 살펴보십시오. –

관련 문제