2014-10-01 1 views
0

저는 최근에 x86-64 아키텍처를 기반으로 한 작은 커널을 작성했습니다. 일부 사용자 공간 코드를 돌볼 때 나는 사실상 rbp를 사용하지 않는다는 것을 깨달았습니다. 나는 다른 것들을 찾아 보았고 컴파일러가 요즘 더 똑똑해지고 있다는 것을 알았고 더 이상 rbp를 사용하지 않는다. (내가 틀릴 수도있어.)rbp/ebp (x86-64) 레지스터는 기존 방식으로 계속 사용됩니까?

기존의 rbp/epb 사용이 더 이상 필요하지 않거나 잘못된지 궁금합니다. 그런 종류의 사용이 필요하지 않은 경우 범용 레지스터처럼 사용할 수 있습니까? 당신이 (더 많은 메모리와 많은 계산을 필요로 배열 길이 기록)하여 스택 프레임에 가변 길이 배열이있는 경우

감사

답변

0

그것은를 필요한 경우에만 된다. 메타 데이터가 있기 때문에 더 이상 풀 필요가 없습니다.

전체 어셈블리 기능을 손으로 쓰는 사람은 여전히 ​​유용하지만 누가 그럴 수 있습니까? 어셈블리는 C (또는 무엇이든) 함수로 점프하기위한 접착제로만 사용해야합니다.