Conversion from BCD 4digit and 8digit to decimal ASCII data : BCDDA(P), DBCDDA(P)
명령 | 사용 가능 영역 | 스텝수 | 플래그 | |||||||||||||||
M | X | Y | K | L | F | T | C | S | Z | D | @D | 정수 | 에러 | 제로 | 캐리 | |||
BCDDA(P) DBCDDA(P) | S | ㅇ | ㅇ | ㅇ | ㅇ | ㅇ | ㅇ | ㅇ | ㅇ | - | ㅇ | ㅇ | ㅇ | ㅇ | 3 | ㅇ | - | - |
D | ㅇ | - | ㅇ | ㅇ | ㅇ | - | ㅇ | ㅇ | - | ㅇ | ㅇ | ㅇ | - |
S | ASCII로 변환될 BCD 데이터 |
D | 변경된 데이터가 저장될 어드레스 중 선두 어드레스 |
에러(F110) | 영역이 @D로 간접 지정된 경우 영역 초과가 발생하면 SET |
BCDDA
S에 의해서 지정된 어드레스에 있는 BCD 4자리의 번호를 ASCII code로 변환하여 D가 지정된 어드레스로부터 시작하여 저장합니다.
예를 들어 , S에 있는 값이 9105라면 그 결과는 다음과 같이 D에 저장됩니다.
S의 BCD data의 범위는 0에서 9999입니다.
계산의 결과는 D에 저장되고, 유효한 자리 왼쪽의 모든 0은 20H로 저장됩니다.
D+2에 의해 지정된 어드레스에 저장될 데이터는 "0"이 됩니다.
DBCDDA
S에 의해 지정된 어드레스에 있는 BCD 8자리의 각각의 번호를 ASCII code로 변환하여 D로 지정된 어드레스에 저장합니다.
예를 들어, S에 있는 값이 01234056 이라면 그 결과는 D에 다음과 같이 저장 됩니다.
S의 BCD data 의 범위는 0 에서 99999999 입니다.
계산의 결과는 D에 저장되고 유효한 자리의 왼쪽에 있는 모든 0은 20H로 처리됩니다.
D+4에 의해 지정된 어드레스에 저장될 데이터는 0이 됩니다.
연산 Error
다음의 경우에는 에러가 발생하며, 에러 Flag가 ON이 되고, Error Code는 F0050에 저장됩니다.
BCDDA 명령 수행 시 데이터가 0에서 9999를 벗어날 경우
DBCDDA 명령 수행 시 데이터가 0에서 99999999를 벗어날 경우
프로그램 예
X0001이 ON 되었을 때 D0000의 BCD 4 digit를 decimal ASCII를 변화하여 Y0000에 출력하는 프로그램