카테고리 없음

[180928] 8080 uP Flag Register

나민오 2018. 9. 28. 22:48
반응형

[180928] 8080 uP Flag Register


프로세서에서 수행하는 명령(이하 Instruction)에 영향을 받는 flag register


주로 Instruction (operation)의 값의 상태 특성을 표현한다.

ex) 짝수, 0이다, 음수다 등


자주 듣게 되는데 들을 때마다 까먹고 다시 찾아보게 된다..


학부에서 가장 많이 보게되는 flag는 0~7번에 속하는 flag인데, 다음과 같다.



AC 

CY 


간단한 instruction의 결과에 대한 Flag 값을 보며 각 Flag가 어떤 의미를 갖는지 보자.



연산의 결과값은 나왔으니까, Flag를 살펴보자.

순서상으로는 가장 오른쪽의 CY부터다.

하나씩 살펴보자.


CY

Carry flag라고 부르는 이 bit는 instruction의 결과값이 연산의 최대 bit 범위를 초과할 때 1로 세팅된다.

무슨소리인가하면..

8bit 레지스터에서 ( 8bit 연산에서 ) 결과값이 레지스터가 표현할 수 있는 범위 ( 0 ~ 255 ) 를 벗어났을 때 세팅된다.

이거는 내가 표현할 수 가 없어...

혹은

MSB ( most significant bit, 가장 왼쪽 비트 ) 에서 carry ( 이 경우, 1이 8비트 밖으로 넘어감 ) 가 발생하는 경우

같은 소리다

일 때 1로 세팅되는 플래그

위에 instruction의 결과는 

1000 0100 = -124

이므로 표현 가능하다. 


CY = 0


P

parity flag 라고 한다. 

instruction의 결과가 짝수일 때 1로 세팅된다. 그렇지 않으면 ( 홀수이면 ) 0이다.

위에 instruction의 결과는 

1000 0100 = -124

짝수다.

P = 1



AC

Auxiliary flag 라고 한다. Carry flag의 반이라고 생각하면 된다.

8비트 레지스터 연산에서 3bit -> 4bit로 carry가 발생하면 1로 세팅된다.

위에 instruction의 결과는 

1000 0100 = -124

carry가 없다

AC = 0


Z

zero flag라고 한다.

결과값이 0일 때, 1로 세팅된다.

위에 instruction의 결과는 

1000 0100 = -124

결과가 0이 아니다.

Z = 0


S

Sign flag라고 한다.

결과값이 음수인 경우 세팅된다.

위에 instruction의 결과는 

1000 0100 = -124

결과가 음수다.

S = 0



최초에 Flag라고 적은 8개의 비트 중에서 1,0 등으로 적혀있는 곳은 예약된 ( Reserved ) 비트이다.


반응형