2014-10-04 4 views
1

바라건대 내가 바라는 바는 의미가 있습니다. 일부 어셈블리 코드에서 gdb 디버거를 실행하고 있습니다. 나는 그 라인을 가로 질러 왔습니다.매우 간단한 어셈블리 레지스터 비교

cmp %eax, (%ebx) 

이제 두 개의 레지스터를 비교할 때 차이가 있습니까? 내가 가지고있는 책은 이것을 설명하는 훌륭한 일을하지 않는다.

+1

어떤 책을 사용하고 있습니까? –

+5

새 책을 구입하십시오. –

답변

3

괄호가있는 값은 레지스터 %ebx이 가리키는 메모리 주소의 값을 의미합니다. 괄호가없는 것은 레지스터 자체의 값을 의미합니다.

+0

고마워요! 바로 그 지점으로. – user2789945

2

특정 명령어 세트 용 어셈블러는 다양한 구문을 사용하며 다양한 구문으로 제공됩니다. 당신은 어셈블러를 우리에게 말하지 않았기 때문에 우리는 추측해야합니다.

내 생각

(<reg>) 

수단이다 "번째 피연산자 메모리에 대한 포인터 레지스터를 사용한다." 아마도 x86 명령어 세트에 해당하는 다른 변형이있을 것입니다 (다시 말하면 여러분에게 알려주지 않았습니다). 오프셋 및 기본 오프셋 오프셋을 허용합니다. x86에 대한 매우 일반적인 주소 지정 모드이기 때문입니다.

+0

죄송합니다. 지정 했어야합니다. x86입니다. 시의 적절하고 간결한 응답에 감사드립니다! – user2789945

관련 문제