2017-11-18 19 views
-2

functin 추가?GNU 64 비트 어셈블리

예를 들어 rbx = 3이고 rax = 6 인 경우 add % rbx, % rax 뒤에 % rax 및 % rbx의 값은 무엇입니까?

GNU x64 어셈블러 구문을 제발!

+1

나는 [AT & T tag wiki] (https://stackoverflow.com/tags/att/info)를 AT & T 문법에 대한 정보와 좋은 표준 복제본에 대한 링크로 업데이트했다. –

답변

1

x86 어셈블리는 인텔 구문과 AT & T 구문 (주로 GNU 도구에서 주로 사용됨)의 두 가지 주요 "맛"을 제공합니다.

스 니펫은 AT & T 구문 (레지스터 이름 앞에 % 접두사가 붙음)입니다. AT &에서 T 구문 피연산자 순서 (즉, C에 rax += rbx가 될 것이다) 때문에

add %rbx, %rax 

는 "RAX하는 RBX 추가"란 일반적 소스, 목적지이다.

은 인텔 문법의 반대, 그래서 당신이 있다면 인텔 문법의 일부 조각,
add rbx, rax 

같은

(는 "RBX하는 RAX을 추가"의미 ( %의 부재 통지를)보고 즉 rbx += rax).

AT & T와 Intel 구문의 차이 here의 좋은 목록을 찾을 수 있습니다.

+0

기술적으로'%'프리픽스를 플레이버와 별도로 바꿀 수 있습니다. – Jester

+3

@Jester : ... 그러나 그렇게하고 누구든지 그런 코드를 온라인에 게시하면 일반적으로 범죄자로 간주됩니다. –