본문 바로가기

KNU_study/마이크로프로세서

마이크로프로세서 암기노트(중간고사)

728x90
반응형

 

 

1. Memory interface하기

 

시험에 나올 것 같음.

 

 

2. 명령어

 

-> 크기별로 1, 2, 3byte 명령어가 존재

-> 기능별로 산술 연산, 논리 연산, 데이터 전송 연산이 존재

 

<1byte 명령어>

 

MOV r1, r2 1byte 명령어  opcode fetch  r2 data를 r1에 복사해 
MOV r, M 1byte 명령어 opcode fetch + MEMR M 주소인 data를 A에 복사
MOV M, r 1byte 명령어 opcode fetch + MEMW A의 data를 M 주소에 복사해
LDAX rp 1byte 명령어 opcode fetch + MEMR rp 주소인 data를 A에 복사해
STAX rp 1byte 명령어 opcode fetch + MEMW  A의 data를 rp 주소에 복사해
ADD r 1byte 명령어 opcode fetch A data + r data를 A에 저장해
ADD M 1byte 명령어 opcode fetch + MEMR A data + M data를 A에 저장해
ADC r 1byte 명령어 opcode fetch A data + CY + r data를
A에 저장해
ADC M  1byte 명령어 opcode fetch + MEMR A data + CY + M data를 
A에 저장해
SUB r 1byte 명령어  opcode fetch A data - r data를 A에 저장해
SUB M 1byte 명령어 opcode fetch + MEMR A data - M data를 A에 저장해
SBB r 1byte 명령어 opcode fetch A data - r data - borrow를 
A에 저장해
SBB M 1byte 명령어 opcode fetch + MEMR A data - M data - borrow를
A에 저장해
INR r 1byte 명령어 opcode fetch r data + 1을 r에 저장해
INR M 1byte 명령어  o.f + MEMR + MEMW M data + 1을 M주소에 저장해
DCR r 1byte 명령어 opcode fetch r data - 1을 r에 저장해
DCR M 1byte 명령어 o.f + MEMR + MEMW M data - 1을 M주소에 저장해
INX rp 1byte 명령어 opcode fetch rp data + 1을 rp에 저장해
DCX rp 1byte 명령어 opcode fetch rp data - 1을 rp에 저장해
ANA r 1byte 명령어 opcode fetch A data와 r data를 bit AND
연산 후 A에 저장해
ANA M 1byte 명령어 opcode fetch + MEMR A data와 M data를 bit AND
연산 후 A에 저장해
ORA r 1byte 명령어 opcode fetch A data과 r data를 bit OR
연산 후 A에 저장해
ORA M 1byte 명령어  opcode fetch + MEMR A data와 M data를 bit OR
연산 후 A에 저장해
XRA r 1byte 명령어 opcode fetch A data와 r data를 bit XOR
연산 후 A에 저장해
XRA M  1byte 명령어 opcode fetch + MEMR A data와 M data를 bit XOR
연산 후 A에 저장해
CMP r 1byte 명령어 opcode fetch A data와 r data를 뺄셈하며
크기를 비교해
CMP M 1byte 명령어 opcode fetch + MEMR A data와 M data의 크기 비교
PUSH rp 1byte 명령어 o.f + MEMW + MEMW [SP - 1] 주소에 rp data 하나, 
[SP - 2] 주소에 rp data 하나 
push해, 뺄셈은 자동이야
POP rp 1byte 명령어 o.f + MEMR + MEMR [SP] 주소의 data를 rp로,
[SP + 1] 주소의 data를 rp로
pop해, 덧셈은 자동이야
RET 1byte 명령어 o.f + MEMR + MEMR CALL 실행 후 실행 전 주소의
다음 주소로 돌아가

 

<2byte 명령어>

 

MVI r, data 2byte 명령어 o.f + MEMR data를 r에 복사해
IN #port 2byte 명령어 o.f +MEMR + IOR #port의 data를 A에 복사해
OUT #port 2byte 명령어 o.f + MEMR + IOW A의 data를 #port로 내보내
ADI data 2byte 명령어 o.f + MEMR A data + data를 A에 저장해
ACI data 2byte 명령어 o.f + MEMR A data + CY + data를 
A에 저장해
SUI data 2byte 명령어 o.f + MEMR A data - data를 A에 저장해
SBI data 2byte 명령어 o.f + MEMR A data - data - borrow를
A에 저장해
ANI data 2byte 명령어 o.f + MEMR A data와 data를 bit AND
연산 후 A에 저장해
ORI data 2byte 명령어 o.f + MEMR A data와 data를 bit OR
연산 후 A에 저장해
XRI data 2byte 명령어 o.f + MEMR A data와 data를 bit XOR
연산 후 A에 저장해
CPI data 2byte 명령어 o.f + MEMR A data와 data 간 크기 비교

 

<3byte 명령어>

 

LDA xxxxH 3byte 명령어 o.f + MEMR + MEMR + MEMR xxxxH의 data를 A에 복사해
LXI rp, xxxxH 3byte 명령어 o.f + MEMR + MEMR xxxxH를 쪼개서 rp에 복사해
STA xxxxH 3byte 명령어 o.f + MEMR + MEMR + MEMW A의 data를 xxxxH에 복사해
JMP xxxxH 3byte 명령어 o.f + MEMR + MEMR xxxxH로 jump해서 명령 수행
CALL xxxxH 3byte 명령어 o.f + MEMR + MEMR +
MEMW + MEMW
 

 

 

** INX B, INR B, INR M 차이 !!

** INX에서는 B, D, H, SP 모두 가능 !!

** CMP와 같은 비교연산들은 A or reg의 값들이 변하지 않음 !! 내부 Flag의 CY, Z 값만 변함 !!

** 명령어에 X가 들어가 있으면 rp 관련 명령어 !!

** 명령어에 I가 들어가 있으면 대부분 data 관련 명령어 !!

 

 

3. 타이밍도

 

MOV와 관련된 타이밍도가 시험에 나왔음. 

23년 중간고사, 기말고사 족보를 원하신다면 댓글로 남겨주세요 !

(시험 끝나고 제가 직접 기록한 족보입니다)

 

728x90
반응형