4bit μP의 구조와 동작
본 자료는 5페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
해당 자료는 5페이지 까지만 미리보기를 제공합니다.
5페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

4bit μP의 구조와 동작에 대한 보고서 자료입니다.

목차

1 개요

2 4bit μP의 구조와 동작

3 명령어 세트와 기능

4 연산수행 제어 프로그램

본문내용

; 키가 눌러졌는가를 확인
JMP FTN1 ; 안 눌러졌으면 눌러질 때까지 기다림
FTN2:
MOV INR,TMP
MOV TMP,RR; 눌러진 키 값을 R레지스터에 저장
OUTB ; 눌러진 키를 키세그먼트에 출력
FTN3:
MOV KEY,AH
LOAD 1111
MOV TMP,BR
SUB
JZ FTN3 ; 손을 키패드에서 뗄 때까지 기다림
MOV RR,AH ; 눌러진 키가 함수키인지 확인
LOAD 1010
MOV TMP,BR
SUB
JGE FTN4 ; 1010보다 크거나 같으면 함수 키
JMP BACK ; 다시 숫자 키가 눌러졌으면 BACK 으로
FTN4: ; 함수키 중에서 ‘=’ 가 눌러졌으면 처음으로
MOV RR,AH
LOAD 1111
MOV TMP,BR
SUB
JZ BACK; 눌러진 키가 ‘=’이면 BACK 으로
******* 세번째로 다시 숫자를 받아들이는 부분 *******
NUM2-1: ; 두번째 숫자를 받아들이는 루틴
MOV KEY,AH ; 키패드가 눌러졌는지 확인
LOAD 1111
MOV TMP,BR
SUB
JZ NUM2-2 ; 눌러졌으면 다음 루틴으로
JMP NUM2-1 ; 안눌려졌으면 눌릴 때 까지
NUM2-2:
MOV INR,TMP ; 눌러진 키값을
MOV TMP,DR ; D레지스터에 저장해두고
OUTB ; 키세그먼트에 출력
NUM2-3: ; 키패드에서 손을 뗐는지 확인
MOV KEY,AH
LOAD 1111
MOV TMP,BR
SUB
JZ NUM2-3 ; 계속 누르고 있으면 뗄때까지 기다린다
MOV DR,AH ; 눌러진 키가 숫자인지 확인
LOAD 1010
MOV TMP,BR
SUB
JGE BACK ; 함수키가 눌러졌면 BACK 으로
; 그렇지 않으면 연산 수행
******* 연산의 종류를 구분하는 부분 *******
MOV RR,AH
LOAD 1010
MOV TMP,BR
SUB
JZ PADD ; 덧셈키가 눌러졌으면 ADD 루틴으로
MOV RR,AH
LOAD 1011
MOV TMP,BR
SUB
JZ PSUB ; 뺄셈키가 눌러졌으면 SUB 루틴으로
MOV RR,AH
LOAD 1100
MOV TMP,BR
SUB
JZ PAND ; AND 키가 눌러졌으면 AND 루틴으로
MOV RR,AH
LOAD 1101
MOV TMP,BR
SUB
JZ PDIV ; 나눗셈 키가 눌러졌으면 DIV 루틴으로
MOV RR,AH
LOAD 1110
MOV TMP,BR
SUB
JZ PMUL ; 곱셈 키가 눌러졌으면 MUL 루틴으로
JMP BACK ; 그외이면 BACK 으로
******* 각 연산을 실행하는 부분 *******
PADD
MOV CR,AH
MOV DR,BR
ADD ; ADD 연산내에 SHR 1회 포함
SHR
SHR
SHR
JMP END ; 결과를 나타내는 루틴으로
PAND:
MOV CR,AH
MOV DR,BR
AND
PSAH ; AH 의 값을 AL 로 이동시킴
CLR ; AH 의 값을 0으로 만든다
JMP END
PDIV: ; 나눗셈의 결과는 몫과 나머지가 나오므로
MOV CR,AH ; 다른 연산의 결과와 다르게 나타나니까
MOV DR,BR
PSAH
CLR
DIV
LOAD 1010 ; 다른 연산일때의 출력과 구분하기위해
MOV TMP,DR ; D레지스터에 1010을 저장해 둔다
JMP END
PMUL:
MOV CR,AH
MOV DR,BR
PSAH
CLR
MUL
JMP END
PSUB:
MOV CR,AH
MOV DR,BR
SUB
JGE POSITIV ; 뺄셈의 결과가 양수이면 그대로 출력
MOV DR,AH ; 음수이면 감수와 피감수를 바꾸어서 뺀다
MOV CR,BR
SUB
LOAD 1111 ; DREG에 1111을 저장
MOV TMP,DR
JMP END
POSITV:
PSAH
CLR
JMP END
******* 결과를 세그먼트에 출력하는 부분 *******
END:
MOV AH,CR ; ACC의 상위 비트값을 C레지스터에 저장
END2: ; 키가 눌러지는지 확인
MOV KEY,AH
LOAD 1111
MOV TMP,BR
SUB
JZ CONTR1 ; 키가 눌러지면 다음 루틴으로
JMP END2 ; 안 눌러졌으면 눌러질때 까지 기다림
CONTR1:
MOV INR,RR ; 눌러진 키 값을 RREG에 저장
CONTR2: ; 키패드에서 손을 뗐는지 확인
MOV KEY,AH
LOAD 1111
MOV TMP,BR
SUB
JZ CONTR2 ; 누른 키를 뗄까지 기다림
MOV RR,AH ; 눌러진 키가 ‘=’인지 확인
LOAD 1111
SUB
JZ ENTER ; ‘=’이면 다음루틴으로
JMP END2 ; ‘=’이 아니면 ‘=’이 눌러질때까지 기다림
******* 출력될 결과가 어떤 연산의 결과인지 조사 *******
ENTER:
MOV DR,BR ; D레지스터의 값이 무엇인지 알아본다
LOAD 1111
MOV TMP,AH
SUB
JZ NEGATV ; D가 1111이면 뺄셈결과가 음수인경우
LOAD 1010
MOV TMP,AH
SUB
JZ DIVEND ; D가 1010이면 나눗셈인 경우
******* 결과 출력 *******
RESULT:
MOV CR,AH ; C(연산결과의 AH)를 다시 AH로 옮김
OUTA ; 결과를 세그먼트에 출력
JMP BACK
NEGATV:
LOAD 1011
OUTB ; 마이너스표시(-)를 키세그먼트에 출력
MOV CR,AH
PSAH
CLR
OUTA ; 연산결과 출력
JMP START; 키세그먼트에‘-’가계속표시되어야하므로
; BACK으로 가지않고 처음으로간다
DIVEND: ; 나눗셈결과를 출력하는 루틴
SHL ; AH에는 나머지가 AL에는 몫이 들어있다
SHL
SHL
SHL
MOV AH,DR ; AL의 값(몫)을 D레지스터에 저장
MOV DR,TMP
OUTB ; 몫을 키세그먼트에 출력
MOV CR,AH ; CR에 들어있던 원래의 AH값(나머지)을
; 다시 AH로 넣어준다
PSAH
CLR
OUTA ; 나머지를 결과를 나타내는 세그먼트에 출력
JMP START ; 키세그먼트를 0으로 두지 않고 처음으로
******* 키세그먼트에 0을 출력하고 처음으로 가는 루틴 *******
BACK;
LOAD 0000
OUTB
JMP START

키워드

  • 가격무료
  • 페이지수16페이지
  • 등록일2005.03.22
  • 저작시기2005.03
  • 파일형식한글(hwp)
  • 자료번호#289136
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니