[180928] 8080 uP Flag Register
[180928] 8080 uP Flag Register
프로세서에서 수행하는 명령(이하 Instruction)에 영향을 받는 flag register
주로 Instruction (operation)의 값의 상태 특성을 표현한다.
ex) 짝수, 0이다, 음수다 등
자주 듣게 되는데 들을 때마다 까먹고 다시 찾아보게 된다..
학부에서 가장 많이 보게되는 flag는 0~7번에 속하는 flag인데, 다음과 같다.
S |
Z |
0 |
AC |
0 |
P |
1 |
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 ) 비트이다.