instruction cycle과 machine cycle의 차이점이 궁금하다면 여기를 클릭
어셈블러 명령어의 간단한 요약이 궁금하다면 여기를 클릭
** r : 내부 register
** rp : register pair, 내부 register의 쌍
1. MOV r1, r2
1byte 명령어, opcode fetch read machine cycle
내부의 register끼리 서로 값을 바꿔라.
-> r2를 r1으로 copy해라 (r2 : source, r1 : destination)
2. MVI r, 8bits
2byte 명령어, opcode fetch read + MEMR machine cycle
8bits(데이터)의 값을 r에 넣어라.
3. IN #port
2byte 명령어, opcode fetch read + MEMR + IOR machine cycle
#port로부터 data를 가져와서 A에 옮겨 담아라.
-> 공간을 많이 사용하지 않기 때문에 input, output 포트에는 번지수를 8bit만 할당한다.
-> 2000H 수행, 2001H : MEMR -> 01H 임시저장 -> IOR -> 01H가 디코더를 거쳐 IOR 명령 받고 IN된다.
4. OUT #port
2byte 명령어, opcode fetch read + MEMR + IOW machine cycle
-> 2000H 수행, 2001H : MEMR -> 02H 임시저장 -> 02H를 data bus에 싣는다 -> IOW
5. LXI rp, 16bits
3byte 명령어, opcode fetch read + MEMR + MEMR machine cycle
인접한 16bits의 값을 불러와라. 이거 다시 찾아보자 !~!!!!
-> stack point(sp)에 명령할 수 있는 유일한 명령어
-> 주의 !!! 2050H라면, 맨 아래 공간에 50H가 아닌, 20H를 넣어야 하며, 불러올 땐 2050H로 불러오기
6. LDA 16bits
3byte 명령어, opcode fetch read + MEMR + MEMR + MEMR machine cycle
16bits(해당 주소)의 data를 A로 가져와라. address bus의 data를 A로 !
-> 16bits를 address bus에 실어야 함 + 거기의 data를 읽어야 함 = 총 3번의 MEMR
7. STA 16bits
3byte 명령어, opcode fetch read + MEMR + MEMR + MEMW machine cycle
A에 있는 data를 16bits(해당 주소)에 저장해라. A의 data를 address bus로 !
-> 마찬가지로 write 명령어를 쓰기 전에, 해당 data를 address bus에 실은 후에 control bus 하기
8. LDAX rp
1byte 명령어, opcode fetch read + MEMR machine cycle
rp의 data(16bits, 해당 주소)의 data를 A에 저장해라. rp, 주소의 data를 A로 !
-> rp로는 B, D 사용 가능. H, SP 사용 불가능.
H를 사용할 경우, A가 아닌 r로도 load가 가능하다는 장점이 있다. 그래서 따로 정의해서 쓴다.
9. STAX rp
1byte 명령어, opcode fetch read + MEMW machine cycle
A에 있는 data를 rp의 data(16bits, 해당 주소)에 저장해라. A의 data를 rp, 주소로!
-> rp로는 B, D 사용 가능. H, SP 사용 불가능.
+) MOV r, M
1byte 명령어, opcode fetch read + MEMR machine cycle
M(16bits, 해당 주소)의 data를 r에 넣어라.
-> M이란? HL이 가리키고 있는, 외부 메모리에 있는 data의 값
+) MOV M, r
1byte 명령어, opcode fetch read + MEMW machine cycle
r의 data를 M(16bits, 해당 주소)에 넣어라.
** 다음 글에서는 덧셈, 뺄셈, AND, OR, XOR 등의 명령어를 공부해보자 !!
** IOR, IOW는 IN, OUT 명령어에만 있다. -> 따라서 앵간하면 OP, MEMR, MEMW만 쓸 듯 !
'KNU_study > 마이크로프로세서' 카테고리의 다른 글
마이크로프로세서(14) 타이밍도 (1) | 2023.04.21 |
---|---|
마이크로프로세서(13) 어셈블러 명령어2 (0) | 2023.04.21 |
마이크로프로세서(11) I/O interface (0) | 2023.04.21 |
마이크로프로세서(10) 38 decoder (0) | 2023.04.21 |
마이크로프로세서(9) partial decoding, absolute decoding (0) | 2023.04.21 |