이 글은 www.youtube.com/watch?v=pbl4bp5g0yo&list=PLc8fQ-m7b1hD4jqccMlfQpWgDVdalXFbH&index=30&t=1s 보고 공부한 글입니다.
입출력 프로그래밍
인풋, 아웃풋 레지스터가 있고 인풋이 되는지 아웃풋이 되는지 FGI, FGO 플레그를 쓴다.
FGI가 1이 될 때까지 BUN CIF, INP를 계속 돈다.
Flag = 1인 뜻은 키보드로부터 버퍼에 데이터가 들어온다는 의미
STA CHR – AC에 있는 값을 CHR라는 메모리 번지에 저장한다.
출력
2개 문자의 패킹
8bit ASCII -> 16bit UniCode로 바꾸는 게 매우 유용하다.
SH4서브루틴 – 왼쪽으로 4비트 미는 서브루틴
SKI, BUN, FST INP - 로 캐릭터를 받는다.
BSA SH4 – 왼쪽으로 4비트를 민다.
SCD – 새로운 값을 받는다.
왼쪽으로 민 값에 오른쪽에 붙어서 출력된다.
버퍼에 문자 저장
LDA ADS – ADS에 시작 주소를 load 한다.
STA PTR – PTR 변수에 넣는다.
IN2 - 2개의 문자를 패킹하는 프로그램
ISZ PTR – 포인터를 증가
두 워드의 비교
결과가 0인 경우 두 워드는 동일
데이터 감산을 통한 비교(빼본다)
WD1을 가져와서 2 의보 수로 만든다.
WD2와 더한다.
0이면 EQL로 가고
같지 않으면 UEQ으로 간다.
프로그램 인터럽트
104 번지를 실행하기 전에 인터럽터 서비스 루틴으로 간다.
0번지에 104 주소가 들어간다.
200번지부터 밴 끝까지 인터럽트 서비스 루틴을 수행한다.
인터럽트 서비스 루틴은 마지막에 ION이 꼭 on을 해야 한다.
1. 레지스터들의 내용을 저장
M [xx] <- REGs
IEN <- 0 (by IOFF)
2. FGi/FGo Flag들의 값 체크
3. 인터럽트 서비스 루틴 수행
4. 레지스터 내용 원상 복구
REGS <= M[xx]
5. 인터럽터 기능 ON
IEN <= 1 (by ION)
6. 원래 프로그램으로 복귀
'Computer Science > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터 구조] 마이크로프로그램 예 (0) | 2021.01.29 |
---|---|
[컴퓨터 구조] 마이크로 프로그램 (0) | 2021.01.28 |
[컴퓨터 구조] 어셈블리어 예제 (0) | 2021.01.26 |
[컴퓨터 구조] 어셈블리 언어 (0) | 2021.01.25 |
[컴퓨터 구조] 기본 컴퓨터 프로그래밍 (0) | 2021.01.24 |