본문 바로가기
정글

TIL(10일차) 어셈블리어 간단한 계산 명령어와 연습문제

by 진득한진드기 2023. 5. 1.

어셈블리어 간단한 계산 명령어와 연습문제

 

leaq 연습문제 

rbx가 p 이고, rdx 가 q를 저장하고 있다고 가정하에 답을 적는 문제 였는데

 

leaq가  x(rbx) 면 x+rax가 되므로 연산하는 것을 차근차근 따라가다보면 풀만 했던 문제이다.

 

문제와 답

 

단항 연산자

 

주소의 개념에 대해 조금더 깊숙히 알 수있게 되는 파트인 것 같다.

 

(rax)는 *rax로 보면 되므로 rax value가 가르키는 value 값을 찾으면 된다.

 

유의 할 점은 저 ()부분이고 나머지는 쉽게 풀 수 있었다.


 

스택 프레임의 대략적인 플로우

 

rbp로 값을 할당 해놓고 rsp로 이동을 한다 여기서 중요한건 스택메모리 구조는 주소의 값이 높은 곳에서 낮은 곳으로 쌓이는 것이다.

 

즉, 주소와 스택의 쌓이는 데이터 높이와는 반 비례 관계인 것이다.


대략적인 프로시저 흐름

return되는 rax값이 이전 call 했던 부분의 value로 전환되어서 들어온다고 생각하면서 프로시저 파트를 보았다.

 

쉽지는 않지만 천천히 읽으면 읽을만 하기에 나머지 파트도 끝내봐야 겠다.