본문 바로가기

컴퓨터구조

[컴구학개론] 시즌1 2회 : Addressing for Wide Immediates and Addresses 1). Wide Immediate Operands 많은 비트가 필요한 즉치값을 이용해서, 주소 지정해서 저장, 로드하려면? 12비트 밖에 못쓰면, 주소 지정, 엄청난 라인을 건너뛰는 브랜치는 어떻게 하자는 건데? => 새로운 인스트럭션 타잎이 필요해 2). 32비트 상수를 로드하고, 저장하고 해보자 미션 : 즉치값 더하기로, 다음의 64비트 즉치 값을 비어있는 레지스터 16번에 로드해봐 어떻게 할 거 같나요? 어차피 생각 못해내니까 바로 답으로 이야기 할게요. 1). 13번째 비트 ~ 32번째 비트 값을 별도의 인스트럭션으로 로드하기 step1. lui x19,976 (976이 => 저 위 숫자의 13th ~ 32nd 비트를 10진법으로 바꾼 수에요 ^^) 2). 나머지는 I-type으로 더하기 step.. 더보기
[컴구학개론] 시즌1 1화 : [2-8] 함수 호출과 메모리 관리 Supporting Procedures in Computer Hardware 1. 레지스터 사용 관례 참고 : [내 공부용] 글로벌 포인터의 경우 DRAM에서 static data의 주소를 가리킵니다. 언제나 접근 가능한 변수들의 위치를 포인터가 잘 가리키고 있어야합니다. 글러벌 변수들이 저장되는 곳이죠. 8,9번과 18-27번에 해당하는 saved register의 경우에는, 다른 프로시져 호출이 끝난 후에도 그대로 이어서 사용해야 되기 때문에, 반드시 "복원해 주어야 할" 로컬 변수들이 저장됩니다. 이것의 경우 호출한 프로시져에서 리턴 시에 해당 레지스터로 램으로 스필한 데이터를 복원해줍니다. 그렇지 않은 변수들은 temporaries에 저장됩니다. 2. 중첩 함수 호출 스택의 경우에는 높은 메모리 주소에서 낮으 메모리 주소로, 즉, 하방으로 자라납니다. (Dynamic da.. 더보기