상품

BCD 감산 명령에서 감산 결과가 음수가 되는 경우의 회로는 어떻게 하면 좋을까요?

등록일
2025. 12. 17.

BCD 감산 명령에서 감산 결과가 음수가 되는 경우의 회로는 어떻게 하면 좋을까요?



BCD 감산 명령 실행 결과가 음수일 때, 감산 결과는 10진 보완(*1)으로 출력되며 CY 플래그가 '1'이 됩니다. 따라서 그림 1과 같이, <CY 없음 BCD 감산(-B) 명령> 직후에 <캐리(CY) 플래그>의 '1/0 상태'를 판정하여 다음 처리를 수행합니다.

가. 캐리(CY) 플래그가 "0"(감산 결과가 "양수")인 경우
<CY 없음 BCD 감산(-B) 명령> 실행 결과(D202)가 그대로 감산 결과의 절대값이 됩니다. 이때 부호 비트(2.00)는 "0"(=양수)이 됩니다.

가, 캐리(CY) 플래그가 "1"(감산 결과가 "음수")인 경우
<CY 없는 BCD 감산(–B) 명령> 실행 결과(D202: 10진 보완수)를 0에서 빼서 진수(real number)로 변환하여 D202에 다시 저장합니다. 이때 부호 비트(2.00)는 "1"(=음수)이 됩니다.



■ 래더 회로와 워치 윈도우
(1) 9999 - 6666 = 3333의 경우
 그림 1


 <프로그램: CS/CJ 시리즈>


그림 2 


[동작 설명]
첫 번째 <-B 명령> 실행 결과, 9999(D200) - 6666(D201) = 3333(D202)가 얻어지며, 캐리(CY) 플래그가 '0'이므로 두 번째 <-B 명령>은 실행되지 않고 3333이 그대로 감산 결과의 절대값이 됩니다.이때 부호 비트(2.00)는 "0"(양수)입니다.

        

(2) 6666 - 9999 = -3333의 경우

그림 3



그림 4 



[동작 설명]
첫 번째 <-B 명령> 실행 결과, 6666(D200) - 9999(D201) = 6667(D202/3333의 10진 보수)가 얻어지고, 캐리(CY) 플래그가 "1"이 되므로 두 번째 <-B 명령>이 실행되어 보수 6667이 실수 3333으로 변환되어 D202에 저장됩니다.이때 부호 비트(2.00)는 "1"(음수)이 됩니다.