머신마다 다를 것 같으니 아마 아키텍쳐 별로 ISA 매뉴얼 같은 걸 읽어보셔야 할 것 같은데요. 일반적으로는 64비트 레지스터의 일부를 사용(예컨대 하위 16비트)하고 인스트럭션들도 operand register의 하위 일부만 사용하도록 설계할 수도 있을 것 같고요. 아니면 타겟으로 하는 응용 프로그램에 따라서 (예컨대 16비트를 무지 많이 사용하는 프로그램들을 돌릴 계획으로 만드는 임베디드 프로세서 같은 거라면) 16비트 레지스터를 따로 넣고 그에 대해 연산하는 명령어도 따로 추가할 수 있겠죠.
만약 하드웨어 설계자가 생각하기에 어차피 대부분 연산은 32비트 이상이라고 봐서 따로 16 비트나 8비트를 연산할 인스트럭션을 안 주는 경우라면, 컴파일러나 어셈블러가 64나 32비트 연산을 이용해서 8비트 연산을 구현해야 할 거고요.
머신마다
머신마다 다를 것 같으니 아마 아키텍쳐 별로 ISA 매뉴얼 같은 걸 읽어보셔야 할 것 같은데요. 일반적으로는 64비트 레지스터의 일부를 사용(예컨대 하위 16비트)하고 인스트럭션들도 operand register의 하위 일부만 사용하도록 설계할 수도 있을 것 같고요. 아니면 타겟으로 하는 응용 프로그램에 따라서 (예컨대 16비트를 무지 많이 사용하는 프로그램들을 돌릴 계획으로 만드는 임베디드 프로세서 같은 거라면) 16비트 레지스터를 따로 넣고 그에 대해 연산하는 명령어도 따로 추가할 수 있겠죠.
만약 하드웨어 설계자가 생각하기에 어차피 대부분 연산은 32비트 이상이라고 봐서 따로 16 비트나 8비트를 연산할 인스트럭션을 안 주는 경우라면, 컴파일러나 어셈블러가 64나 32비트 연산을 이용해서 8비트 연산을 구현해야 할 거고요.
댓글 달기