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에서 뺀 후, 진수로 변환해 D202에 다시 격납합니다.
이 때, 부호 비트(2.00)는「1」(=음수)이 됩니다.
■ 래더 회로와 Watch Window
(1)9999-6666=3333의 경우
[동작 설명]
최초의<-B명령>실행 결과, 9999(D200)-6666(D201)=3333(D202)이 얻어지고, 캐리(CY) 플래그 「0」이기 때문에 2번째 <-B명령>은 실행되지 않고, 3333이 그대로 감산 결과의 절대값이 됩니다.
이 때의 부호 비트(2.00)는 「0」(정수)입니다.
(2)6666-9999=-3333의 경우
[동작 설명]
최초의 <-B명령>실행 결과, 6666(D200)-9999(D201)=6667(D202/3333의 10의 보수)가 얻어지고, 캐리(CY) 플래그가「1」이 되기 때문에 2번째 <-B명령>이 실행되어 보수 6667이 진수 3333로 변환되어 D202에 격납됩니다.
이 때의 부호 비트(2.00)는 「1」(음수)이 됩니다.