상품
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"(음수)이 됩니다.