YZ ZONE

[ 컴퓨터구조 ] 3.3 논리 연산 본문

IT/컴퓨터구조

[ 컴퓨터구조 ] 3.3 논리 연산

러블리YZ 2023. 2. 6. 11:29

 하드웨어의 구성
 입력 비트들은 모든 논리 게이트들을 통과
 선택 신호들에 의하여 멀티플렉서의 네 입력들 중의 하나를 출력

 N-비트 데이터들을 위한 논리 연산장치

 기본 논리 모듈들을 병렬로 접속 

[] 4-비트 논리 연산장치

 AND 연산
두 데이터 단어들의 대응되는 비트들 간에 AND 연산을 수행

A  = 1 0 1 1 0 1 0 1

B  = 0 0 1 1 1 0 1 1

------------------------

         0 0 1 1 0 0 0 1 (연산 결과)

 OR 연산

 두 데이터 단어들의 대응되는 비트들 간에 OR 연산 수행

A = 1 0 0 1 0 1 0 1

B = 0 0 1 1 1 0 1 1

-----------------------

      1 0 1 1 1 1 1 1  (연산결과)

 

 XOR 연산
 두 데이터 단어들의 대응되는 비트들 간에 exclusive-OR 연산을 수행

A = 1 0 0 1 0 1 0 1

B = 0 0 1 1 1 0 1 1

------------------------

       1 0 1 0 1 1 1 0 (연산 결과) 

 

 NOT 연산

 데이터 단어의 모든 비트들을 반전(invert)

A = 1 0 0 1 0 1 0 1 (연산전)

-------------------------------

       0 1 1 0 1 0 1 0 (연산 결과)

 

 선택적-세트(selective-set) 연산

 B 레지스터의 비트들 중에서 1로 세트 된 비트들과 같은 위치에 있는 A 레지스터의 비트들을 1로 세트 <OR 연산 이용>

A = 1 0 0 1 0 0 1 0 (연산 전)

B = 0 0 0 0 1 1 1 1

--------------------------

A = 1 0 0 1 1 1 1 1 (연산 결과)

 

 

 선택적-보수(selective-complement) 연산

B 레지스터의 비트들 중에서 1로 세트 된 비트들에 대응되는 A 레지스터 의 비트들을 보수로 변환 <XOR 연산 이용>

A  = 1 0 0 1 0 1 0 1 (연산 전)

B  = 0 0 0 0 1 1 1 1

--------------------------

A = 1 0 0 1 1 0 1 0 (연산 결과)

 

 마스크(mask) 연산
 B 레지스터의 비트들 중에서 값이 0인 비트들과 같은 위치에 있는 A

레지스터의 비트들을 0으로 바꾸는(clear하는) 연산 <AND 연산 이용> 

 용도 : 단어 내의 원하는 비트들을 선택적으로 clear하는 데 사용

A = 11010101 (연산전)

B = 00001111

----------------------------
A = 00000101 (
연산결과)

 

 삽입(insert) 연산

새로운 비트 값들을 데이터 단어내의 특정 위치에 삽입

방법 : 1. 삽입할 비트 위치들에 대하여 마스크(AND) 연산 수행 

             2 .새로이 삽입할 비트들과 OR 연산을 수행

[]

A = 10010101

B = 00001111  마스크(AND연산

-------------------

A = 0 0 0 0 0 1 0 1 첫 단계 결과

B = 11100000  삽입(OR연산

-------------------

A = 11100101   최종(삽입)결과

 

 비교(compare) 연산
A B 레지스터의 내용을 비교XOR 연산

만약 대응되는 비트들의 값이 같으면, A 레지스터의 해당 비트를 ‘0’으로 세트

만약 서로 다르면, A 레지스터의 해당 비트를 ‘1’로 세트 

모든 비트들이 같으면(A = 00000000), Z 플래그를 1로 세트

[]

A = 11010101

B = 1 001 01 10

-------------------

A = 01000011 (연산결과)