1 / 14

8051 마이크로컨트롤러 제 3 장 . 명령어 집합

8051 마이크로컨트롤러 제 3 장 . 명령어 집합. 어셈블리 프로그래밍. 어셈블리어 문장 형식 - Label Field : 레이블 / 심볼 표현 레이블 - START : MOV A, #0FFH ;”START” 는 주소 심볼 - PAR EQU 500 ;”PAR” 는 심볼

monte
Download Presentation

8051 마이크로컨트롤러 제 3 장 . 명령어 집합

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블리 프로그래밍 • 어셈블리어 문장 형식 - Label Field : 레이블 / 심볼 표현 레이블 - START: MOV A, #0FFH;”START”는 주소 심볼 - PAR EQU 500;”PAR”는 심볼 - Operator Field : Mnemonic(ADD, MOV, DIV, INC etc.), 어셈블러 지시어 (ORG, EQU, DS, END etc.) - Operand Field : 여러 개의 오퍼랜드때는 콤마(,)로 분리 - Comment Field : 세미콜론(;)으로 시작 -1-청강문화산업대학 이동통신과

  2. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블리 프로그래밍 • 숫자 표기 진수 첨자 사용 예 10진수 없다, D, d MOV A, #149 16진수 H, h MOV A, #95H 2진수 B, b MOV A, #10010101B 8진수 Q, q, O, o MOV A, #225Q * 16진수는 레이블과 구별하기 위하여 처음에 숫자가 명시 (즉, “A5H”가 아니고 “0A5H”) * 마이너스(-)인 경우는 숫자 앞에 마이너스 부호(-) 붙임 -2-청강문화산업대학 이동통신과

  3. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블리 프로그래밍 • ASCII 문자 표기 CJNE A, #’Q’, AGAIN SUBB A, #’Q’ ;ASCII 코드를 2진수로 변환 MOV DPTR, #’AB’ MOV DPTR, #4142H ;위와 같음 * 주의 1. Label은 반드시 첫 번째 행부터 시작 2. Label은 반드시 콜론(:) 표기, Symbol은 스페이스로 분리 3. Operator와 Operand는 스페이스로 분리 -3-청강문화산업대학 이동통신과

  4. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블리 프로그래밍 • 산술 연산자 + …… 덧셈, - …… 뺄셈, * …… 곱셈, / …… 나눗셈, MOD …… 나머지(나눗셈 후) (Ex) MOV A, #10 + 10H = MOV A, #1AH MOV A, #25 MOD 7 = MOV A, #4 -4-청강문화산업대학 이동통신과

  5. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블리 프로그래밍 • 논리 연산자 OR …… 논리적 합, AND …… 논리적 곱, XOR …… 논리적 배타적 합, NOT …… 논리적 부정 (Ex) 1. MOV A, #’9’ AND 0FH = MOV A, #9 2. THREE EQU 3 MINUS_THREE EQU -3 #(NOT THREE) + 1 = #MINUS_THREE = #11111101B -5-청강문화산업대학 이동통신과

  6. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블리 프로그래밍 • 특별 연산자 SHR …… 오른쪽으로 이동, SHL …… 왼쪽으로 이동, HIGH …… 상위 바이트, LOW …… 하위 바이트, ( ) …… 연산순위 우선 (Ex) 1. MOV A, #HIGH 1234H = MOV A, #12H 2. VALUE EQU -500 MOV TH1, #HIGH VALUE = #HIGH(-500) = #0FEH MOV TL1, #LOW VALUE = #LOW(-500) = #0CH -6-청강문화산업대학 이동통신과

  7. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블리 프로그래밍 • 비교 연산자 EQ 같음, NE 같지 않음,LT < 보다 작다, LE보다 작거나 같다, GT > 보다 크다, GE보다 크거나 같다 (두 오퍼랜드 사이에 사용, 결과는 참(00H)이나 거짓(FFH)) • 연산자 우선순위 ( ) | HIGH LOW | * / MOD SHL SHR | + - | EQ NE LT LE GT GE =  <  >  | NOT | AND | OR XOR -7-청강문화산업대학 이동통신과

  8. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블러 지시어 • 어셈블러 지시어(directive) - 어셈블러가 어셈블할 때 필요한 정보를 제공 (마이크로프로세서에 의해서 실행가능한 어셈블리 언어가 아님) - 어셈블러 지시어  어셈블리 상태 제어: ORG, END, USING  세그먼트 선택: RSEG, CSEG, DSEG, XSEG, ISEG, BSEG  메모리 공간 초기화 및 예약: DS, DB, DW, DBIT  심볼 정의: SEGMENT, EQU, SET, DATA, XDATA, BIT, CODE  프로그램 링크: PUBLIC, EXTERN -8-청강문화산업대학 이동통신과

  9. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블러 지시어 • 어셈블리 상태 제어 - ORG . 위치 카운터 지정 . “Ex” : ORG 8000H - END . 소스 프로그램 끝 - USING . 레지스터 뱅크 선택 . “Ex” : USING 3  레지스터 뱅크 3 선택 -9-청강문화산업대학 이동통신과

  10. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블러 지시어 • 세그먼트 선택 지시어 기 능 사용 “예” RSEG <segment_name>상대 세그먼트 시작 RSEG CODE CSEG AT <address>코드 세그먼트 시작 CSEG AT 1000H DSEG AT <address>직접번지 가능한 Data DSEG AT 80H Memory 세그먼트 시작 XSEG AT <address>외부 D.M. 세그먼트 시작 XSEG AT 8000H ISEG AT <address>간접 D.M. 세그먼트 시작 ISEG AT 90H BSEG AT <address>비트 D.M. 세그먼트 시작 BSEG AT 20H -10-청강문화산업대학 이동통신과

  11. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블러 지시어 • 메모리 공간 초기화 및 예약 지시어 기 능 사용 “예” [label:] DS expression바이트 단위 메모리 예약 DSEG AT 30H LENGTH EQU 40 BUFFER: DS LENGTH [label:] DB expression바이트 단위 초기값 설정 TABLE: DB 0(, 1, 4) [label:] DW expression워드 단위 초기값 설정 ZERO: DW 1234H [label:] DBIT express.비트 단위 메모리 예약 BSEG PRFLAG: DBIT 1 -11-청강문화산업대학 이동통신과

  12. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블러 지시어 • 심볼 정의 지시어 기 능 사용 “예” [label] EQU <수식>값 할당(재정의 불가능) LENGTH EQU 40 [label] SET <수식>값 할당(재정의 가능) LENGTH SET 40 [label] BIT <수식>비트 주소 할당 X BIT 20H [label] DATA <수식>직접 데이터 주소 할당 RES DATA 40H [label] XDATA <수식>외부 데이터 주소 할당 BUF IDATA 8000H [label] IDATA <수식>간접 데이터 주소 할당 PLC IDATA 80H [label] CODE <수식>프로그램 주소 할당 START CODE 00H -12-청강문화산업대학 이동통신과

  13. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블러 지시어 • 심볼 정의 - SEGMENT . symbol <SEGMENT> {segment_type, 재배치 가능한 형}  CODE : 코드 메모리 공간 DATA : 직접 주소 지정(00H~7FH) 내부 데이터 메모리 공간 XDATA : 외부 데이터 메모리 공간 IDATA : 간접 주소 지정(00H~FFH) 내부 데이터 메모리 공간 BIT : 비트 주소 지정(20H~2FH) 내부 데이터 메모리 공간 . “Ex” : EPROM SEGMENT CODE -13-청강문화산업대학 이동통신과

  14. 8051 마이크로컨트롤러 제3장. 명령어 집합 어셈블러 지시어 • 프로그램 링크 - 분리되어 있는 모듈(파일)을 연결 지시어 기 능 PUBLIC symbol, symbol, …심볼을 퍼블릭 선언 EXTERN segment_type(symbol, symbol, … )심볼이 다른 모듈에 정의 MAIN.SRC MESSAGE.SRC EXTERN CODE(HELLO, GOOD_BYE) PUBLIC HELLO, GOOD_BYE . . . . . . . . . . CALL HELLO HELLO: (begin subroutine) . . . . . . . . . . CALL GOOD_BYE RET . . . . . GOOD_BYE: (begin subroutine) END . . . . . -14-청강문화산업대학 이동통신과

More Related