어셈블리어 간단한 계산 명령어와 연습문제
leaq 연습문제
rbx가 p 이고, rdx 가 q를 저장하고 있다고 가정하에 답을 적는 문제 였는데
leaq가 x(rbx) 면 x+rax가 되므로 연산하는 것을 차근차근 따라가다보면 풀만 했던 문제이다.
단항 연산자
주소의 개념에 대해 조금더 깊숙히 알 수있게 되는 파트인 것 같다.
(rax)는 *rax로 보면 되므로 rax value가 가르키는 value 값을 찾으면 된다.
유의 할 점은 저 ()부분이고 나머지는 쉽게 풀 수 있었다.
스택 프레임의 대략적인 플로우
rbp로 값을 할당 해놓고 rsp로 이동을 한다 여기서 중요한건 스택메모리 구조는 주소의 값이 높은 곳에서 낮은 곳으로 쌓이는 것이다.
즉, 주소와 스택의 쌓이는 데이터 높이와는 반 비례 관계인 것이다.
대략적인 프로시저 흐름
return되는 rax값이 이전 call 했던 부분의 value로 전환되어서 들어온다고 생각하면서 프로시저 파트를 보았다.
쉽지는 않지만 천천히 읽으면 읽을만 하기에 나머지 파트도 끝내봐야 겠다.
'정글' 카테고리의 다른 글
TIL(12일차) 플로이드 워샬 알고리즘 (0) | 2023.05.03 |
---|---|
TIL(11일차) 어셈블리어에서의 포인터, 다중배열 (0) | 2023.05.02 |
TIL(9일차) 기계어 인스트럭션 보기 (0) | 2023.04.30 |
TIL(8일차) 어셈블리어 (0) | 2023.04.28 |
TIL(7일차) CSAPP(Computer Systems) (0) | 2023.04.28 |