· 톺아보기

오래되버린 미래(?) 전산이야기...(함수 인자 전달...)

jetowl · · 수정

조회 1,580 · 공감 1 · 댓글 7


32비트 시절까지도

다른 함수 호출전에

전달할 인자들 

거의 전부

메모리에 주루루 적어놓고

다음 함수가 시작될때 그걸 다시 메모리로부터 읽어왔다라면,



이젠 바로 CPU 내부 고속 저장공간(레지스터)으로 

대부분의 인자가 바로 넘어간다는군요? 이렇게 컴파일러는 최적화 기회를 더 많이 갖게 되는...오호~!


아그런데, 

cpu 레지스터 이름들은 봐도 봐도 정이 안갑니다.ㅋㅋㅋ


amd64.png


오호라, 하면서 읽게되서요.


이렇게 바뀐지 꽤 오래 된거군요.

32비트 시절 이야기에서 업데이트가 없었네요.ㅜㅜ

댓글 7

  1. dirtybit · · 공감 1
    실로 오랜만에 레지스터 얘기를 보네요... 요즘은 볼 일이 없어서리;;
    요즘도 저런거 만지시는 분들이 꽤 되실듯 한데, 진짜 대단하신 분들인거 같아요 ㅎㅎㅎ

    제 기억이 맞다면 x86이 저모양이 된게, 초기 8086에서 레지스터 개수가 몇개 안되서 어쩔 수 없었다는 것으로 어렴풋이 기억이 나긴 합니다 -_-)ㅋ
    (나중 CPU는 레지스터 개수가 좀 늘어나긴 했는데, 그래도 하위호환성 등을 위해서.... ㅠㅠ)
  2. jetowl ·
    @dirtybit님 그렇군요,쿠쿠..CPU도 공간이 없던(?) 시절이죠....ㅎ
  3. 코르바 · · 공감 1
    32비트 시절에도 fastcall 쓰면 파라미터 두 개는 레지스터로 넘겼죠 ㅎㅎ
  4. jetowl · · 공감 1
    @코르바님 fast!!! 군요.ㅎ 최적화의 비급이 될만했겠는데요.ㅎ
  5. ckhoon · · 공감 1
    이런 정보 게시물 좋아요. 마이크로프로세서 메뉴얼 보고 어셈블리 사용하던 옛날 임베디드 프로그램에서는 메모리관리나 속도가 중요했지만, 요즘은 하드웨어도 빠르고 메모리도 커서 저런 것 덜 신경 쓰고 짜도 돼서 옛날 프로그래머들이 더 기술적 배경 지식이 많았죠. 마치 DOS시절 사용자와 윈도우 사용자 처럼요. 요즘 세상에 알아도 크게 도움 되지는 않지만 후배들과 라떼 얘기하기 좋죠. (꼰대 소리 듣기도 좋고)
  6. jetowl ·
    @ckhoon님 최적화 괴수분들이 정말 많으셨죠. CPU부터<->어셈<->C 수직계열화 하신분들...특히 게임업계에 많으셨던 것 같습니다.ㄷㄷ C++은 무겁다.느리다 하던 시절이 있다고 라떼하고 싶네요....ㅎㅎ
  7. ckhoon · · 공감 1
    @제트올빼미님 맞습니다. 옛날 괴수분들 결과물 보면 정말 존경심이 절로 났었죠. 선배들이 짠 코드 해석도 못하는데 돌아가는 것 보면 신기하기도 하고..난 언제 저렇게 되나.. 요즘은 프로그램을 짜도 워낙 API, DLL, AI 같은것 들이 잘 돼 있어서 이게 솔직히 내가 짠 건지 남이 짠 건지 구분이 안되죠.

모두의공원 최근 글

모두의공원 목록 더 보기