[컴퓨터시스템구조] 13일차 - Micro Operation
만든 날짜: | 2018-10-26 오전 9:06 |
본 게시글은 수업들은 내용을 정리한 내용이며, 방문자 열람목적이 아닌 백업/기록용 게시글 입니다. 때문에 오타 및 잘못된 정보가 표기되어 있을 수 있습니다.
하드웨어:
하드웨어:
소프트웨어:
프로그래밍언어:
머신레벨- 어셈블랭기지, 로보틱스
하이레벨- 어떤 하드웨어 써도 상관없다.
-
머신러닝 랭기지를 배운다.
01010101010
메모리에 이렇게 들어있다. (16비트씩 바이너리로)
아무리 프로그램을 덤프해도 봐도 무슨 코든지 전혀알 수 없다.
표기하기도 불편
실직적으로는 우린 옥타, 16진법 쓴다
여전히 우리는 무슨코든지 모른다.
심볼릭, 바이너리 코드 등 쓴다
뭐할려고? OP코드랑 어드레스를 나타내기 위해서
사람을 위해서 쓴다..
C나 자바는 쓸려면 컴파일.
머신러닝 랭기지는 어샘블 한다 라고 표현한다.
<포트란>
위 코드를 기계로 바꾸는 것이 컴파일러
우리는 요래벨이 아니고
요레벨.
심볼릭을 바이너리나 핵사로 바꾼다.
(기호 코드) -> 기호코드는 어셈블러가 번역한다.
위에서
1. LDA : AC에 데이터를 올려라 라는뜻 . 그런데 몇번째를? 004번지를. 0053이라는데이터를 AC에 올려라
기존에 나눠준거는 다 했기에 이제 안쓴다.
나눠준거. 6장 7장은 천천히 나갈테니까... 8장까지 하고싶어쓴데 7장까지만한다.
- Symbolic code - use symbols (letter, numerical or special characters for op-code, address part)
- Symbolic code à Binary code (translated by assembler)
LDA address
2는 다이렉트.
A는 인다이렉트
2 0010 (맨앞 0 다이렉트)
A 1010 (맨앞 1 인다이렉트)
LDA address
인다이렉트일 때는 I를 써준다.
어셈블 : 심볼을 핵사(바이너리, 기계어(머신러닝 랭기지) )로 바꿔준다.
Location |
Hexa code
(사실 바이너리코드로 들감)
| |||
000 |
(i가 없으므로 2를 가져온다)
2
어드레스는 004
2004
| |||
001 |
(i가 없으므로 1을 가져온다)
1
어드레스는 005
1005
| |||
002(STA) | 3006 | |||
003(HLT) | 7001 | |||
004 |
instruction에 숫자가 들어가있음.
0053(데이터라는 뜻이다.)
| |||
005 |
FFE9 (데이터다.)
(주의! 왼쪽 비트가 1이므로 음수를 나타낸다.)
| |||
006 | 0000 (데이터다.) | |||
기말고사 1번
(테이블 6.1을 보면서 쓰는거)(어셈블 해봐라)
LDA 004 : 첫 번째 데이터를 AC에 넣어라
AC<-0053
ADD 005 : AC에 더해라
005번지 FFE9
AC<-AC+FFE9
AC==003C
STA 006 : AC에있는 대용을 메모리(006)에 저장해라
003C를 6번지에 저장해라
M[006]<-AC
M[006]==003C
FFE9 는 (-23) 왜?
2의 보수하면 0017(16) 16진수니까 10진수로 바꿔주면 23인데 부호 -를 붙여야함!
Rules of the language - each line of a program consists of 3 fields
- Label: empty or symbolic address (없거나 주소를 나타냄)(Location : 사실은 없는데, 주소라벨을 이을 수 있다.)
- Instruction 명령어
- Memory-reference instruction 메모리레퍼
- Register-reference or I/O instruction 제지스터레퍼
- Pseudo instruction - not a machine instruction but rather an instruction giving (to the assembler) information about some phase of the translation수도 (가짜명령어) 기계명령어가 아니야. 왜썼냐면. 코드를 해석하는데 도움을 주는 역할
- Comments (may be empty) 코멘트 할 수
어셈블리 언어의 각 줄은 다음과 같이 필드라 불리는 세 개의 부분으로 구성된다.
- 라벨 필드 : 기호 주소를 나타내거나 빈카이 될 수도 있다. (라벨 필드의 주소는 콤마로 구분)
- 명령어 필드 : 기계 명령어나 수도 명령어를 기술 (메모리참조,레지스터참조,입출력, 수도명령어)
- 코멘트 필드 : 명령어에 대한 주석이나 해설을 하거나 불필요한 경우는 없어도된다.
1. 첫번째 문자는 무조건 letter이어야한다.
- ① MRI: MRI symbolic address I
- ② Non-MRI: no address part
- ex) CLA - non-MRI (메모리레퍼아님)ADD OPR - direct address MRI(OPR:오퍼랜드, 기호주소)(다이렉트 1)ADD PTR I - indirect address MRI (I가 있으면 인다이렉트 9)
- ③ Pseudo instruction:
- Give information about some phase of the translationADD PTR I - indirect address MRI (I가 있으니 인다이렉트)
오퍼랜드(기호주소)들은 반드시 라벨 필드에 나타나야한다.
- Table 6-7: Definition of Pseudo Instructions
- 수도:해석에 도움을 줌
- ORG N
- END
- DEC N
- HEX N
ORG : 명령어는 아니지만 메모리로케이션 이 몇번째 부터 시작한다..(0번지가아니라) 라는 것을 표현. (이 프로그램이 몇번지 부터 시작하는가)
(ORG는 기계 명령어가 아니고 단지 다음에 오는 명령어의 메모리 영역이 어디인가를 기술해준다.)
(ORG는 한 프로그램 내 여러번 사용될 수 있다.)
END : 인아웃표시. 심볼릭 프로그램의 끝을 나타낸다.
DEC N : 뒤에있는 수가 10진수다. (음수의 경우 부호화된 2의 보수표현으루 나타낸다.)
HEX N : 뒤에있는 수가 16진수다
FFE9는
23이 10111인데
0000 0000 0001 0111
2의 보수 취하면
1111 1111 1110 1001
FFE9
....
복습 : 2018-11-24
[컴퓨터시스템구조] 13일차 - Micro Operation
Reviewed by Lifer
on
12/17/2018
Rating:
댓글 없음: