어드레스에 데이터를 넣었는데 데이터의 수치가 이상하게 나옵니다.
어드레스 값이 이상할 경우 어드레스 중복이나 산술 명령 이용 시, 어드레스 값이 다르게 나오는 경우가 생길 수 있습니다.
Report Type 콤보박스에 [중복사용 내역 보기] 를 클릭합니다.
중복을 확인하실 디바이스 영역을 고릅니다.
중복을 확인 하신 후 중복이 되어있다면 다른 어드레스를 이용하시길 바랍니다.
점검사항 2 |
---|
2-1) 산술명령이나 기타 더블워드 연산 관련 명령어 사용시 어드레스가 중복이 되었는지 확인합니다.
명령어 (해당 명령어 자리) |
S1 (처리될 내용 1) |
S2 (처리될 내용 2) |
D (저장 영역) |
ㆍ워드 와 워드 연산 시 두 개의 워드로 저장되는 경우
(S1과 S2가 연산 시 → D,D+1)
= 16Bit Binary 사칙 연산 명령어 (DIV(P), MUL(P))
= BCD 4자리 사칙 연산 명령어 (BMUL(P),BDIV(P))
ㆍ두 개의 워드와 두 개의 워드 연산 시 두 개의 워드로 저장되는 경우
(S1, S1+1과 S2, S2+1가 연산 시 → D,D+1)
= 실수 사칙 연산 (EADD(EADDP),ESUB(ESUBP),EMUL(EMULP),EDIV(EDIVP))
= BCD 8자리 사칙연산
(DBADD(DBADDP), DBSUB(DBSUBP), DBMUL(DBMULP), DBDIV(DBDIVP))
=32Bit Binary 사칙 연산 (DADD(DADDP), DSUB(DSUBP), DWDIV(DWDIVP))
ㆍ두 개의 워드와 두 개의 워드 연산 시 네 개의 워드로 저장되는 경우
(S1, S1+1과 S2, S2+1가 연산시 → D, D+1, D+2, D+3)
=32Bit Binary 사칙 연산 (DDIV(P), DMUL(P))
2-2)산술명령이나 기타 더블워드 연산 관련 명령어 사용시 어드레스가 중복이 되었는지 확인합니다.
명령어 (해당 명령어 자리) | S1 (처리될 내용 1) | S2 (처리될 내용 2) | D (저장 영역) |
ㆍ워드 와 워드 연산 시 두 개의 워드로 저장되는 경우
(S1과 S2가 연산 시 → D,D+1)
= 16Bit Binary 사칙 연산 명령어 (DIV(P), MUL(P))
= BCD 4자리 사칙 연산 명령어 (BMUL(P),BDIV(P))
ㆍ두 개의 워드와 두 개의 워드 연산 시 두 개의 워드로 저장되는 경우
(S1, S1+1과 S2, S2+1가 연산 시 → D,D+1)
= 실수 사칙 연산 (EADD(EADDP),ESUB(ESUBP),EMUL(EMULP),EDIV(EDIVP))
= BCD 8자리 사칙연산
(DBADD(DBADDP), DBSUB(DBSUBP), DBMUL(DBMULP), DBDIV(DBDIVP))
=32Bit Binary 사칙 연산 (DADD(DADDP), DSUB(DSUBP), DWDIV(DWDIVP))
ㆍ두 개의 워드와 두 개의 워드 연산 시 네 개의 워드로 저장되는 경우
(S1, S1+1과 S2, S2+1가 연산시 → D, D+1, D+2, D+3)
=32Bit Binary 사칙 연산 (DDIV(P), DMUL(P))
(예 제)
1) DIV (DIVP)
ㆍ내부 접점 신호 M00이 ON 하였을 때 D0000의 데이터와 D0001의 데이터를 나눗셈하여 D0003에 몫, D0004에 나머지를 저장하는 프로그램
DDIV (DDIVP)
ㆍ 내부 접점 신호 접점 M01이 ON 하였을 때 D0000, D0001의 데이터와 D0002, D0003의 데이터를 나눗셈하여 D0004, D0005에 몫, D0006, D0007에 나머지를 저장하는 프로그램
3)MUL (DMUL)
ㆍ내부 접점 신호 M02이 ON 하였을 때 D0001의 데이터와 D0002의 데이터를 곱셈하여
D0020에 하위 워드 데이터, D0021에 상위 워드 데이터를 저장하는 프로그램
DMUL (DMULP)
ㆍ 내부 접점 신호 접점 M03이 ON 하였을 때 D0000, D0001의 데이터와 D0002, D0003의
데이터를 곱셈하여 D0004, D0005, D0006, D0007에 결과 데이터를 저장하는 프로그램
위의 자세한 내용은 CICON도움말 색인란에 해당 명령어를 확인하실 수 있습니다.