Presentation is loading. Please wait.

Presentation is loading. Please wait.

어셈블리 문법 보강 4월 10일.

Similar presentations


Presentation on theme: "어셈블리 문법 보강 4월 10일."— Presentation transcript:

1 어셈블리 문법 보강 4월 10일

2 MASM 어셈블리 OPCODE OPRAND1, OPRAND2 JMP명령 숫자 지정 오퍼레이션 방향 주의
교재의 9장 참조 각 명령어와 관계된 플래그들 이해 ex) 명령어 JA  현재 C=0 and Z=0 일 때 Jump수행 숫자 지정 MOV AX, 0x (MOV AX, 300H) MOV AX, 0x1A3F (MOV AX, 1A3FH) MOV AX, 0xFFFF (MOV AX, 0FFFFH)

3 MASM 어셈블리 입출력 포트 설정 RAM의 100H에서 프로그램 시작 어셈블 시 사라지는 것들 (Directives)
8255 레지스터 설정 (이전 수업시간에 배웠음) TEST.ASM 참고 RAM의 100H에서 프로그램 시작 ORG 100H 어셈블 시 사라지는 것들 (Directives) 지시자들 code segment assume cs:code code ends end 각종 라벨들 START, SH_LOOP, …

4 어셈블리 주의사항 <일반적인 코드 설정> <8086 보드를 위한 설정> CODE SEGMENT
ASSUME CS:CODE,DS:DATA   ORG 100H //  코드 작성 CODE ENDS DATA SEGMENT ORG 10000H //  데이터 작성 DATA ENDS    END CODE SEGMENT     ASSUME CS:CODE,DS:DATA   ORG 100H //  코드 작성 // 데이터 작성  CODE ENDS END 하나의 세그먼트 안에 코드와 데이터를 모두 설정하세요.

5 어셈블리 기초 MASM 명령어 MOV AX(레지스터), 데이터값 XOR AX(레지스터), 데이터값
레지스터에 값을 저장해야 할 경우 XOR AX(레지스터), 데이터값 MOV AX, F0F0H XOR AX, FFFFH  AX : 0F0FH CMP AX(레지스터), 데이터값 레지스터 값과 데이터값의 비교가 필요할 경우 JMP <라벨이름> 현재 실행라인에서 라벨위치로이동 Ex) LOOP: XOR AX, FFFFH MOV AH, 00H START: MOV AX, FFFFH JMP LOOP

6 어셈블리 기초 MASM 명령어 JE <라벨이름> JNE <라벨이름>
CMP 명령결과, 레지스터 값과 비교 데이터값이 같을 경우 JMP Ex) MOV AX, F0H CMP AX, FFH JE LOOP JNE <라벨이름> CMP 명령결과, 레지스터 값과 비교 데이터값이 다를 경우 JMP Ex) MOV AX, FFH JNE LOOP OUT <입출력 포트 주소>, <레지스터> 레지스터 값을 출력포트로 Write할 경우 출력되는 값이 1이면 해당 LED는 OFF, 0이면 ON IN <레지스터>, <입출력 포트 주소> 입력포트로부터 데이터값을 레지스터로 Read할 경우 입력되는 값이 1이면 해당 스위치는 OFF, 0이면 ON

7

8 어셈블리 기초 MASM 명령어 루프문 레지스터 C의 While문 역할, 어떤 조건을 만족할때까지 명령을 실행해야할 경우
Ex) MOV AX, FFH LOOP: SHL AX, 1 CMP AX, 0 JNE LOOP OUT PORT_B, AX 레지스터 AX, BX, CX, DX는 16비트 레지스터 AH, BH, CH, DH는 상위 8비트 레지스터 AL, BL, CL, DL은 하위 8비트 레지스터 Ex) MOV AX, B(0FF00H) MOV AH, B MOV AL, B AX  B(00FFH)


Download ppt "어셈블리 문법 보강 4월 10일."

Similar presentations


Ads by Google