하드웨어 일반 자료실
출처 : http://control.cntc.ac.kr/cpu/ezboard/ezboard.cgi?db=qa_8051_2000&action=read&page=31&num=760&dbf=200208160002&depth=0
하지만, 8051에서는 덧셈을 수행한 후에만 10진 보정이 됩니다. 다른 어느 경우에도 이 명령은 유효하지 않습니다. 거듭 강조하지만 8051은 특히 연산 기능에 관한한 아주 거지같은 마이크로프로세서입니다...
질문은 DA 명령어 질문입니다.
DA A
이렇게 프로그래밍시에
책을 보니 만약 19와 18을 더하면
16진수로는 31이죠
10진수로는 37이구요
책의 내용은 16진수를 BCD코드 형태로 A로 축력 한다던데
이 BCD 코드가 37이라면 00110111 이렇게
4비트씩 끊어서 출력 되는 건가요
아니면 00100101 이렇게 출력 되는건가요?
제 생각엔 전자쪽 인거 같구요
그리고 DA명령어는 곱셈MUL 명령어 다음에
도 사용할수 있을지 궁금합니다.
책에는 뺄셈 연산은 사용할수 없다라고 씌여져 있네요
답변 부탁드립니다.
=====================================================================
한인수 님께
하지만, 8051에서는 덧셈을 수행한 후에만 10진 보정이 됩니다. 다른 어느 경우에도 이 명령은 유효하지 않습니다. 거듭 강조하지만 8051은 특히 연산 기능에 관한한 아주 거지같은 마이크로프로세서입니다...
번호 | 제목 |
---|---|
3 | 8051 어셈명령이 정리된 홈페이지 |
» | DA 명령어 [1] |
1 | 8051-subb 명령 |
Next:감소 명령Up:10진수화 명령Previous:10진수화 명령
DAA
Decimal Adjust Accumulator설명 : Packed BCD 표현으로 어큐뮬레이터의 값을 조정한다. 두 개의 BCD 수를 더한 후의 부분은 보조 캐리 플래그가 1이거나 Acc의 하위 니블(0 3비트)이 9보다 크면 Acc에 6을 더해준다. 캐리 플래그가 세트이거나 상위 니블(4 7비트)이 9보다 큰 값이면 Acc에 60H를 더해 주고, Acc의 캐리 플래크는 최종적으로 조정된 값을 갖게 된다.
플래그 변화 : C, P
예제:
결과값