6. 산술 및 논리 연산 명령 - 이상정

Download Report

Transcript 6. 산술 및 논리 연산 명령 - 이상정

산술 및 논리 연산 명령
순천향대학교 정보기술공학부
이상정
마이크로프로세서
산술연산 명령
 정수 데이터의 덧셈과 뺄셈 명령
 산술연산은 누산기에서만 가능
• INC 및 DEC 명령만은 레지스터 R0∼R7이나 내부
데이터 메모리에서도 수행
 정수의 곱셈과 나눗셈 명령 - 1가지씩뿐으로
사용이 다소 불편
 산술연산 명령 결과에 따라 상태 레지스터
PSW 영향
• INC 및 DEC 명령은 패리티 비트만 영향
순천향대학교 정보기술공학부
이상정
2
산술 및 논리 연산 명령
마이크로프로세서
산술연산 명령
순천향대학교 정보기술공학부
이상정
3
산술 및 논리 연산 명령
마이크로프로세서
산술연산 명령 예
 명령 예
• ADD A, #10H
• ADDC A, R2
• SUBB A, 30H
• INC A
• DEC @R0
• MUL AB
• DIV AB
순천향대학교 정보기술공학부
이상정
; A <- A + 10H
; A <- A + R2 + CY
; A <- A – M[30H] - CY
; A <- A + 1
; M[R0] <- M[R0] – 1
; (B) (A) <- A X B
; A <- 몫(A / B)
; B <- 나머지(A / B)
4
산술 및 논리 연산 명령
마이크로프로세서
DA 명령
 DA A 명령
• Decimal Adjust for Addition
• 10진수를 표현하는 BCD 수에 대한 2진수 덧셈 후
보정 명령
• 예
• 명령 수행 전 A에 5가 저장되어 있다고 가정
1) ADD A, #9
2) DA A
• 1) 수행 후 A: 0EH
• 2) 수행 후 A: 14H
순천향대학교 정보기술공학부
이상정
5
산술 및 논리 연산 명령
마이크로프로세서
산술연산 명령어 형식
주소지정방식에 따른 명령어 형식
순천향대학교 정보기술공학부
이상정
6
산술 및 논리 연산 명령
마이크로프로세서
1. 배정도 덧셈 예
CSEG
AT
8000H
MOV
MOV
MOV
MOV
MOV
MOV
MOV
ADD
MOV
MOV
ADDC
MOV
END
DPTR, #1234H
R4, DPH
R5, DPL
DPTR,#57F1H
R6, DPH
R7, DPL
A, R5
A, R7
R5, A
A, R4
A, R6
R4, A
순천향대학교 정보기술공학부
이상정
; RAM start address of OK-8051
; R4:R5 =1234H(R4:R5) + 57F1H(R6:R7)
7
산술 및 논리 연산 명령
마이크로프로세서
논리연산 명령
순천향대학교 정보기술공학부
이상정
8
산술 및 논리 연산 명령
마이크로프로세서
논리연산 명령 예
예 1
• ANL
• ANL
• ORL
• ORL
• XRL
A, 40H
A, R1
A, @R0
30H, #0FH
40H, A
예 2
• CRL A
• SWAP A
순천향대학교 정보기술공학부
; A <- A and M[40H]
; A <- A and R1
; A <- A or M[R0]
; M[30H] <- M[30h] or 0FH
; M[40H] <- M[40H]xor A
; A <- 0
; (a7 ~ a4) <-> (a3 ~ a0)
이상정
9
산술 및 논리 연산 명령
마이크로프로세서
로테이션 명령 예
예
• RL A
• RR A
• RLC A
• RRC A
순천향대학교 정보기술공학부
;
;
;
;
이상정
Rotate A
Rotate A
Rotate A
Rotate A
10
left by 1 bit
right by 1 bit
left by 1 bit through carry
right by 1 bit through carry
산술 및 논리 연산 명령
마이크로프로세서
부울 연산 명령
 비트 단위의 연산처리가 가능한 명령
순천향대학교 정보기술공학부
이상정
11
산술 및 논리 연산 명령
마이크로프로세서
부울 연산 명령
 비트 표시 가능 내부 메모리 영역
• 내부 하위 메모리 20H ~ 2FH 번지 영역(128 비트)
• 00H ~ 7FH 의 직접 번지로 비트 지정
• 20H.0 ~ 2FH.7 로도 표시
• 내부 상위 메모리 SFR 영역 중 A, B, PSW, P0, P1,
P2, P3, IP, IE, TCON, SCON 등 128 비트
 부울 연산에서는 캐리 플래그(CY)가 비트 누
산기로서의 역할을 하며 C로 표시된다.
순천향대학교 정보기술공학부
이상정
12
산술 및 논리 연산 명령
마이크로프로세서
부울 연산 명령 예
예
• ANL C, 15H
; CY <- CY and M[22H.5]
• ANL C, / 21H.3 ; Logical AND complement of bit
; CY <- CY and M[21H.3]’
• ORL C, PSW.5 ; CY <- CY or F0
• CLR C
; CY <- 0
• CPL C
; CY <- CY’
• CPL ACC.1
; ACC.1 <- ACC.1’
• SETB C ; CY <- 1
• SETB 2FH.7
; M[2FH.7] <- 1
순천향대학교 정보기술공학부
이상정
13
산술 및 논리 연산 명령
마이크로프로세서
부울 연산 명령 예
예
MOV A, #0CAH
MOV 22H, #0CAH
MOV C, 22H.7
RRC A
MOV 22H.7, C
순천향대학교 정보기술공학부
이상정
;
;
;
;
;
14
A <- 11001010B
CY = 1
A = E5H, CY = 0
M[22H] = 4AH
산술 및 논리 연산 명령
마이크로프로세서
2. 프로그램 예
 4 바이트의 BCD 덧셈을 수행하는 프로그램
• 오퍼랜드 1의 메모리 주소: 53H ~ 50H
• 오퍼랜드 2의 메모리 주소: 63H ~ 60H
• 결과값 메모리 주소: 53H ~ 50H
CSEG AT 8000H
MOV PSW, #10H
MOV R0, #60H
MOV R1, #50H
MOV R2, #04H
CLR C
순천향대학교 정보기술공학부
이상정
15
; 레지스터 뱅크 2
; 오퍼랜드 2의 최하위 주소
; 오퍼랜드 1의 최하위 주소
; BCD 바이트 수
; CY <- 0
산술 및 논리 연산 명령
마이크로프로세서
프로그램 예
ALOOP: MOV A, @R1
ADDC A, @R0
DA
A
MOV @R1, A
INC
R0
INC
R1
DJNZ R2, ALOOP
END
순천향대학교 정보기술공학부
이상정
16
; BCD 보정
; 결과 저장
; 오퍼랜드 2 주소 증가
; 오퍼랜드 1/결과 주소 증가
; R2--, if not zero jump
산술 및 논리 연산 명령
마이크로프로세서
프로그램 과제
 프로그램 1-2를 수행하라.
 메모리 9000H 부터 저장된 16개의 데이터를
읽어들이고 누적합을 구한 후 평균을 구하여
누적합은 60H, 몫은 61H, 나머지는 62H에 저
장하는 프로그램을 작성하라.
(단, 누적합이 8비트 수 범위내의 값이라 가정
한다.)
순천향대학교 정보기술공학부
이상정
17
산술 및 논리 연산 명령