Conversion from decimal ASCII to BIN 16Bit and 32Bit data : DABIN(P), DDABIN(P)
명령 | 사용 가능 영역 | 스텝수 | 플래그 | |||||||||||||||
M | X | Y | K | L | F | T | C | S | Z | D | @D | 정수 | 에러 | 제로 | 캐리 | |||
DABIN(P) DDABIN(P) | S | ㅇ | ㅇ | ㅇ | ㅇ | ㅇ | ㅇ | ㅇ | ㅇ | - | ㅇ | ㅇ | ㅇ | ㅇ | 3 | ㅇ | - | - |
D | ㅇ | - | ㅇ | ㅇ | ㅇ | - | ㅇ | ㅇ | - | ㅇ | ㅇ | ㅇ | - |
S | BIN으로 변경될 ASCII data가 저장될 어드레스 중 선두 어드레스 |
D | 변경된 데이터가 저장될 어드레스 중 선두 어드레스 |
에러(F110) | 영역이 @D로 간접 지정된 경우 영역 초과가 발생하면 SET |
DABIN
S에 의해서 지정된 어드레스에 있는 decimal ASCII data를 D로 지정된 어드레스에 BIN 16-Bit data로 저장합니다.
예를 들어 S의 ASCII code가 –25018H이면, 그 연산 결과는 다음과 같은 결과로 D에 저장됩니다.
S 와 S+2에 지정된 ASCII data는 -32768 에서 32767 의 범위에 있습니다.
Data가 양수이면 부호는 20H(space), 음수이면 2DH(-)가 저장됩니다.
ASCII code의 범위는 30H 에서 39H 사이에서는 어떤 각각의 위치도 설정 될 수 없습니다.
ASCII code의 각각의 위치가 20H나 00H 라면 그것은 30H로 처리됩니다.
프로그램
Decimal 5자리 ASCII data 그리고 D0000 에서 D0002 까지의 설정된 sign 을 Bin 으로 바꾸어 D0020에 결과를 저장하는 프로그램
DDABIN
S에 의해서 지정된 어드레스에 있는 Decimal ASCII data를 D로 지정된 어드레스에 BIN 32bit data로 저장합니다.
예를 들어 S의 ASCII code가 -123454321 이면, 그 결과는 다음과 같은 결과로 D+1과 D에 저장됩니다.
S 와 S+5에 지정된 ASCII data는 -2147483648 에서 2147483647의 범위에 있습니다.
추가로 S+5의 상위 byte에 저장되는 data는 무시합니다.
변환된 data의 값이 양수 이면 부호는 20H(space)가 되고, 음수 이면 2DH(-)가 됩니다.
ASCII code의 범위는 30H 에서 39H 사이에서는 어떤 각각의 위치도 설정 될 수 없습니다.
ASCII code 각각의 위치가 20H나 00H 라면 그것은 30H로 처리됩니다.
연산 Error
다음의 경우에는 에러가 발생하며, 에러 Flag가 ON이 되고, Error code는 F0050에 저장됩니다.
S 에서 S+5 의 ASCII code가 30H로부터 39H와 20H 또는 00H 가 아닐 경우 에러 발생
S 에서 S+5 의 ASCII data가 범위를 벗어났을 경우
프로그램 예
Decimal 10자리 ASCII data 그리고 D0000~D0005 까지 설정된 sign 을 BIN으로 바꾸어 D0020 과 D0021에 결과를 저장하는 프로그램