어셈블리어 (assembly) -2- (명령어 예제, 조건문 ,반복문 예제)
2편에서는 어셈블리어를 해석? 하는 걸 중점으로 포스팅 하려고 합니다. - mov 명령어 예제 코드를 짤 때 흔히 사용하는 swap함수를 예로 들어 보겠습니다. 함수에서 받아오는 인자 *x, *y같은 경우는 보통 레지스터 rdi나 rsi에 있습니다. long t0 = *x는 어셈블리어로 mov ($rdi), $rax로 표현되어 있습니다. 즉 $rdi(x가 저장된 레지스터)를 $rax에 복사하는 것인데 괄호가 있는 이유는 포인터로 메모리를 참조하기 때문에 ($rdi)로 표현합니다. 마찬가지로 long t0 = *y도 move ($rsi), $rdx로 표현 됩니다. 그다음 swap부분인 *x = t1은 $rdx레지스터에 저장되어 있는 값 (value = *y)를 x의 주소인 ($rdi)에 mov합니다. 마찬..