YZ ZONE

[ 컴퓨터구조 ] 3.4 시프트 연산 본문

IT/컴퓨터구조

[ 컴퓨터구조 ] 3.4 시프트 연산

러블리YZ 2023. 2. 6. 22:22

시프트 연산

 논리적 시프트 (logical shift)

레지스터 내의 데이터 비트들을 왼쪽 혹은 오른쪽으로 한 칸씩 이동

 좌측 시프트(left shift)
모든 비트들을 좌측으로 한 칸씩 이동
최하위 비트(A1)로는 ‘0’이 들어오고, 최상위 비트(A4)는 버림

 우측 시프트(right shift)
모든 비트들이 우측으로 한 칸씩 이동
최상위 비트(A4)로 ‘0’이 들어오고, 최하위 비트(A0)는 버림

 

시프트 레지스터(shift register)

▣ 시프트 기능을 가진 레지스터의 내부 회로

순환 레지스터(circular register)

▣ 순환 레지스터

 회전(rotate)이라고도 부르며, 최상위 혹은 최하위에 있는 비트를 버 리지 않고 반대편 끝에 있는 비트 위치로 이동

 순환 좌측-시프트(circular shift-left)
최상위 비트인 A4가 최하위 비트 위치인 A1으로 이동

 순환 우측-시프트(circular shift-right) 

A4 →A3,A3 →A2,A2 →A1,A1 A4

직렬 데이터 전송(serial data transfer)

 직렬 데이터 전송

 시프트 연산을 데이터 비트 수만큼 연속적으로 수행함으로써 두 레지 스터들 사이에 한 개의 선을 통하여 전체 데이터를 이동하는 동작

산술적 시프트(arithmetic shift)

 산술적 시프트

 (number)를 나타내는 데이터에 대한 시프트

 방법: 시프트 과정에서 부호 비트는 그대로 유지시키고, 수의 크기를 나타내는 비트들만 시프트

 산술적 좌측-시프트(arithmetic shift-left) 

A4 (불변), A3 ← A2, A2 ← A1, A1 ← 0

 산술적 우측-시프트(arithmetic shift-right) 

A4 (불변), A4 → A3, A3 → A2, A2 → A1

C플래그를 포함한 시프트 연산

 C플래그를 포함한 시프트 연산
 C 플래그를 포함한 좌측-시프트(SHLC : shift left with carry)
 C 플래그를 포함한 우측-시프트(SHRC : shift right with carry)

 RLC(rotate left with carry)

 C 플래그를 포함하는 좌측 순환 시프트(회전) 연산

 RRC(rotate right with carry)

 C 플래그를 포함하는 우측 순환 시프트(회전) 연산