프로그래밍 기술/정보처리기사필기

[계산기 구조] 3사이클 마이크로 연산 명령

언제나휴일 2016. 4. 13. 17:59
반응형

3사이클 마이크로 연산 명령


이번에는 정보처리기사 필기 과목인 전자계산기 구조의 3사이클 마이크로 연산 명령을 살펴보아요.

AND
누산기(Accumulator) 메모리의 내용을 논리곱하여 결과를 누산기에 저장하는 연산 명령
AC  AC 
 M[AD]
현재 플래그 레지스터는 F=1, R=0  실행 사이클
MBR
에는 Fetch 사이클에서 읽어온 명령어가 있는 상태
MAR  MBR[AD]
메모리 버퍼 레지스터(MBR) 명령어의 주소를 메모리 주소 레지스터(MAR) 전송
MBR  M[MAR]
메모리에서 MAR 지정한 위치의 값을 MBR 전송
AC  AC 
 MBR 누산기의 값과 MBR 값을 AND 연산하여 누산기에 전송

ADD
누산기와 메모리의 내용을 더하여 결과를 누산기에 저장하는 연산 명령
 AC  AC + M[AD]
MAR  MBR[AD]
메모리 버퍼 레지스터(MBR) 명령어의 주소를 메모리 주소 레지스터(MAR) 전송
MBR  M[MAR]
메모리에서 MAR 지정한 위치의 값을 MBR 전송
AC  AC + MBR
누산기의 값과 MBR 값을 더하여 누산기에 전송

LDA
메모리의 내용을 누산기로 로딩하는 연산 명령
AC ←  M[AD]
MAR  MBR[AD]
메모리 버퍼 레지스터(MBR) 명령어의 주소를 메모리 주소 레지스터(MAR) 전송
MBR  M[MAR]
메모리에서 MAR 지정한 위치의 값을 MBR 전송
AC  0
누산기를 0으로 초기화
AC  AC + MBR
누산기의 값과 MBR 값을 더하여 누산기에 전송

STA
누산기의 값을 메모리에 저장하는 연산 명령
M[AD] ←  AC
MAR  MBR[AD]
메모리 버퍼 레지스터(MBR) 명령어의 주소를 메모리 주소 레지스터(MAR) 전송
MBR  AC
누산기의 값을 메모리 버퍼 레지스터에 전송
M[MAR] ← MBR
메모리 버퍼 레지스터의 값을 메모리 주소 레지스터에 있는 주소로 전송

BUN
PC(
프로그램 카운터) 특정 주소를 전송하는 연산 명령, 무조건 분기 연산 명령
PC  MBR[AD] 
메모리 버퍼 레지스터(MBR) 명령어의 주소를 프로그램 카운터에 전송

BSA
복귀 주소를 저장한 후에 프로그램을 호출하는 연산 명령
MAR  MBR[AD]
메모리 버퍼 레지스터(MBR) 명령어의 주소를 메모리 주소 레지스터(MAR) 전송
MBR  PC
프로그램 카운터의 값을 MBR 전송
PC  MBR[AD]
메모리 버퍼 레지스터의 명령어 주소를 프로그램 카운터에 전송
M[MAR] ← MBR
메모리 버퍼 레지스터의 값을 메모리 주소 레지스터의 주소에 전송
PC  PC+1
프로그램 카운터 값을 1 증가

ISZ
메모리 값을 1 증가한 후에 0이면 현재 명령을 SKIP하는 연산 명령
MAR  MBR[AD]
메모리 버퍼 레지스터(MBR) 명령어의 주소를 메모리 주소 레지스터(MAR) 전송
MBR  M[MAR]
메모리에서 MAR 지정한 위치의 값을 MBR 전송
MBR  MBR+1
메모리 버퍼 레지스터의 값을 1 증가
M[MAR] ← MBR
메모리 버퍼 레지스터의 값을 메모리 주소 레지스터의 주소에 전송
IF(MBR=0) THEN PC  ←  PC+1 MBR
값이 0이면 PC 값을 1 증가

너와 나의 연결고리 "공감"

반응형