[컴퓨터시스템구조] 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 | |||
100 | CLE | 7400 | |
101 | CLA | 7800 | |
102 | STA CTR | 3110 | |
103 | LDA WRD | 2111 | |
104 | SZA | 7004 | |
105 | BUN ROT | 4107 | |
106 | BUN STP | 410F | |
107(ROT) | CIL | 7040 | 처음에 E가 0이니까 AC맨끝에 0 이들어감, 그리고 AC 첫번째 것이 E에 들어가서 E를검사하게되는데 |
108 | SZE | 7002 | 이때 검사하는 E가 만약에 |
109 | BUN AGN | 410B | 1이라면 AGN을 실행하여 카운트를함 |
10A | BUN ROT | 4107 | 0이라면 다시 ROT를 반복함 |
10B(AGN) | CLE | 7400 | AGN: E를 0으로 클리어해줌(검사한 부분은 0을 채워주기 위해서, 끝에를 0으로 채워나가기 위해서) |
10C | ISZ CTR | 6110 | CTR를 1증가시킴(0이면 스킵인데, 증가시킬명령이 없어서 이걸 쓰는듯) |
10D | SZA | 7004 | AC가 0이라면 HLT하기위해 스킵 |
10E | BUN ROT | 4107 | AC가 아직 0이아니면 검사할 것이 남았다느 것이므로 ROT로 분기 |
10F(STP) | HLT | 7001 | |
110(CTR) | HEX 0 | 0000 | 1의 개수가 저장될 곳 |
111(WRD) | HEX 62C1 | 62C1 | 검사를 하게될 숫자 |
112 | END | ||
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
Reviewed by Lifer
on
12/18/2018
Rating:
댓글 없음: