[컴퓨터시스템구조] 15일차 - Symbolic Program to add 100 Numbers

[컴퓨터시스템구조] 15일차 - Symbolic Program to add 100 Numbers



만든 날짜:2018-11-02 오전 9:04


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

배열 합 어샘블을해봤다

중요한 트릭은 몇 번 돌릴 것인가.

for(i=0;i<100;i++){

}

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

}

int count=0;
for(int i=-100;i<0;++i){
    System.out.println(++count);
}
1~100 출력

ORG 100
CLE
CLA
STA CTR
LDA WRD
SZA
BUN ROT
BUN STP
ROT,
CIL
SZE
BUN AGN
BUN ROT
AGN,
CLE
ISZ CTR
SZA
BUN ROT
STP,
HLT
CTR,
HEX 0
WRD,
HEX 62C1
END

라벨,  명령어 // 코멘트
라벨 : 3개이하의 영문자숫자, 첫번쨰는 문자, 없어도뎀 (콤마, 를 사용해서 분리한다)
명령어 : 메모리참조, 레지스터참조, 입출력명령, 수도명령어 (ex 메모리참조의 경우 MRI명령 + 기호주소 + (I 간접) )
Location



ORG 100

100CLE7400
101CLA7800
102STA CTR3110
103LDA WRD2111
104SZA7004
105BUN ROT4107
106BUN STP410F
107(ROT)CIL7040 처음에 E가 0이니까 AC맨끝에 0 이들어감, 그리고 AC 첫번째 것이 E에 들어가서 E를검사하게되는데
108SZE7002 이때 검사하는 E가 만약에
109BUN AGN410B 1이라면 AGN을 실행하여 카운트를함
10ABUN ROT4107 0이라면 다시 ROT를 반복함
10B(AGN)CLE7400 AGN: E를 0으로 클리어해줌(검사한 부분은 0을 채워주기 위해서, 끝에를 0으로 채워나가기 위해서)
10CISZ CTR6110 CTR를 1증가시킴(0이면 스킵인데, 증가시킬명령이 없어서 이걸 쓰는듯)
10DSZA7004 AC가 0이라면 HLT하기위해 스킵
10EBUN ROT4107 AC가 아직 0이아니면 검사할 것이 남았다느 것이므로 ROT로 분기
10F(STP)HLT7001
110(CTR)HEX 00000 1의 개수가 저장될 곳
111(WRD)HEX 62C162C1 검사를 하게될 숫자
112END

113


AGN,STP,CTR,WRD는 기호주소.
기호주소는 두번스캔시 첫번째 스캔에서 기호주소를 나타내는 표를 얻어오면 더 간단히 이진화를 할 수 있다.
부전째 스캔에서 주소-기호 테이블을 참조.
(기말고사 3번) 
6 2 C 1
0110 0010 1100 0001
CIL
=
1100 0101 1000 0010
C582
E=0

ROT
CIL
E=0
1000 1011 0000 0100
E=1
8B04

E=0
count+=1 -> m[110] = 1

계속 반복



복습:2018-11-24
[컴퓨터시스템구조] 15일차 - Symbolic Program to add 100 Numbers [컴퓨터시스템구조] 15일차 - Symbolic Program to add 100 Numbers Reviewed by Lifer on 12/18/2018 Rating: 5

댓글 없음:

Powered by Blogger.