[컴퓨터시스템구조] 13일차 - Micro Operation

[컴퓨터시스템구조] 13일차 - Micro Operation

만든 날짜:2018-10-26 오전 9:06
본 게시글은 수업들은 내용을 정리한 내용이며, 방문자 열람목적이 아닌 백업/기록용 게시글 입니다. 때문에 오타 및 잘못된 정보가 표기되어 있을 수 있습니다.

하드웨어:

소프트웨어:

프로그래밍언어:
머신레벨- 어셈블랭기지, 로보틱스
하이레벨- 어떤 하드웨어 써도 상관없다.

-

머신러닝 랭기지를 배운다.

01010101010
메모리에 이렇게 들어있다. (16비트씩 바이너리로)
아무리 프로그램을 덤프해도 봐도 무슨 코든지 전혀알 수 없다.
표기하기도 불편
실직적으로는 우린 옥타, 16진법 쓴다
여전히 우리는 무슨코든지 모른다.


심볼릭, 바이너리 코드 등 쓴다
뭐할려고? OP코드랑 어드레스를 나타내기 위해서
사람을 위해서 쓴다..

C나 자바는 쓸려면 컴파일.

머신러닝 랭기지는 어샘블 한다 라고 표현한다.


<포트란>

위 코드를 기계로 바꾸는 것이 컴파일러

우리는 요래벨이 아니고
요레벨.
심볼릭을 바이너리나 핵사로 바꾼다.
(기호 코드) -> 기호코드는 어셈블러가 번역한다.

위에서
1. LDA : AC에 데이터를 올려라 라는뜻  . 그런데 몇번째를? 004번지를. 0053이라는데이터를 AC에 올려라


기존에 나눠준거는 다 했기에 이제 안쓴다.
나눠준거. 6장 7장은 천천히 나갈테니까... 8장까지 하고싶어쓴데 7장까지만한다.


  1. 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 명령어
    1. Memory-reference instruction 메모리레퍼
    2. Register-reference or I/O instruction 제지스터레퍼
    3. 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. 라벨 필드 : 기호 주소를 나타내거나 빈카이 될 수도 있다. (라벨 필드의 주소는 콤마로 구분)
  2. 명령어 필드 : 기계 명령어나 수도 명령어를 기술 (메모리참조,레지스터참조,입출력, 수도명령어)
  3. 코멘트 필드 : 명령어에 대한 주석이나 해설을 하거나 불필요한 경우는 없어도된다.




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 translation
              ADD 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 [컴퓨터시스템구조] 13일차 - Micro Operation Reviewed by Lifer on 12/17/2018 Rating: 5

댓글 없음:

Powered by Blogger.