[컴퓨터시스템구조] 14일차 - Representation of symbolic program in memory



만든 날짜:2018-10-30 오후 12:48

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

1pass : 로케이션
2pass : 번역







ORG 100
이 프로그램은 100번지 부터 시작한다.
 (수도명령어, 코드화할 필요없다.)
100
LDA SUB
뒤에 I가 없으므로 다이렉트, LDA는 2 (OPCODE) SUB는 주소
(SUB에 있는 내용을 AC에 넣어라)
101
CMA
(AC를 1의 보수 취해라)(16진수에서 안되니까 2진수로 바꿔서 함)
0000 0000 0001 0110
102
INC0000 0000 0001 0111
103
ADD MIN
  0000 0000 0001 0111
+0000 0000 0101 0011
=0000 0000 0110 1010
= 006A
104
STA DIFAC에 있는 내용을 DIF에 넣어라
105
HLT컴퓨터를 중단시킨다.
106MIN,DEC 83
107SUB,DEC -23
108DIF,HEX 0


END
우리가 어셈블 해줌.(바이너리로) ->(핵사로)
기말고사 1번




ORG 100
이 프로그램은 100번지 부터 시작한다.
 (수도명령어, 코드화할 필요없다.)
100
2107뒤에 I가 없으므로 다이렉트, LDA는 2 (OPCODE) SUB는 주소
101
7200
102
7020
103
1106
104
3108
105
7001
106MIN,0053
107SUB,FFE90000 0000 0001 0111 -> 1111 1111 1110 1001 -> FFE9
108DIF,0000 최종엔 006A가 들어가게된다.


ENDSUDO










1 번째 패스 : 로케이션을 카운트





수도 명령
ORG 오리진이 어딘지, END, DEC, HEX 등.



베이직 컴터에 저런 명령어가 들어가있고. 다 수행 후엔 AC PC IR엔 어떤게 들어깅ㅆ는지?


Location
Instructuin
AC
PC
IR

010
7800
0000
011
7800

011
1016
C1A5
012
1016

012
4014
C1A5
014
4014

013
7001
8184
014
7001

014
0017
8184
015
0017

015
4013
8184
013
4013
여기 수행후
파란색으로 이동
016
C1A5




017
93C6





문제 6.1인데 한글 책에 오타있음.C1A5



  • Example:
    The following program is a list of instructions in hexadecimal code. What are the content of AC and the memory word at address 103 when the computer halts?



LocationInstruction

AC
1005103BSA 103
돌아올 주소를 저장하고 뛰어라
(원래 수행하려던 101번지)
101번지를 103에 저장. 
그리고 104번지로 이동(pc<-104)

1017200CMA
FFFE (16진수)
★CMA는 2의보수가아니고
1의 보수다!!
그리고 0001 일때
2진수가 아니라 16진수!
그래서 1110이 아니라
FFFE 임!
1027001HLT

103000000000101을 저장 
1047800CLA
0000
1057020INC
0001
106C103BUN 103 I무조건뛰어라. 




  • Compiler
    • (ex) C program
      • Step 1 :   main()
      • Step 2 : symbolic assembly program (may be skipped)
      • Step 3 : binary code program
    • (ex) Fortran
      •    DIMENSION A(100)
           INTEGER SUM,A
           SUM=0
           DO 3 J=1,100
        3 SUM=SUM+A(J)
            integer sum, A[100],J;
            for (J=0, sum=0; J<100; J++)
            sum=sum+A[J];
이걸 짜면 아래 와 같다.


for(int i=-100; i<0 ; ++i)

8번줄의 ISZ는 단지 1을 증가시시키기 위해서 사용된 것이다.
LineLocation (HEX)Instruction (HEX)


1
ORG 100


2100210B


3101310C


4102210D


5103310E


61047800


7105 (LOP,)910C (Indirect)


8106610C


9107610E


101084105


11109310F


1210A7001


13111 (ADS,) 10B0150 (16)


14112 (PTR,) 10C0000 (16)


15113 (NBR,) 10D-100 (10) = FF9C


16114 (CTR,) 10E0000 (16)


17115 (SUM,) 10F0000 (16)


18
ORG 150


19~150
75 (10) = 004B

이런 데이터가
100개 있다.


.




.




.




~118 (100개)
1B3 (1B4-1)
(150+63)(16진수)
23 (10) = 0017


119
END








로케이션 개수 세기 1B3 이 어떻게 나왔냐?
1개면 150인데. 2개면 151 즉. n개 면 150+n-1
[컴퓨터시스템구조] 14일차 - Representation of symbolic program in memory [컴퓨터시스템구조] 14일차 - Representation of symbolic program in memory Reviewed by Lifer on 12/18/2018 Rating: 5

댓글 없음:

Powered by Blogger.