1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 |
const int max = 100;
void main()
{
int i, j, k;
int rem, prime;
i = 2;
while (i <= max)
{
prime = 1;
k = i / 2;
j = 2;
while ( j <= k)
{
rem = i % j;
if( rem == 0)
prime = 0;
++j;
}
if( prime == 1)
write(i);
++i;
}
} |
Crocus |
sym 1 1 1
main proc 6 2 1
sym 2 1 1 @ max
sym 2 2 1 @ i
sym 2 3 1 @ j
sym 2 4 1 @ k
sym 2 5 1 @ rem
sym 2 6 1 @ prime
ldc 2 @ 2
str 2 2 @ i = 2
while1 nop
lod 2 2 @ i
lod 2 1 @ max
le @ j <= max?
fjp endwhile1 @ if false
ldc 1 @ 1
str 2 6 @ prime = 1
lod 2 2 @ i
ldc 2 @ 2
div @ i / 2
str 2 4 @ k = i / 2
ldc 2 @ 2
str 2 3 @ j = 2
while2 nop
lod 2 3 @ j
lod 2 4 @ k
le @ j <= k ?
fjp while11 @ goto while11 continue
lod 2 2 @ i
lod 2 3 @ j
mod @ i % j
str 2 5 @ rem = i % j
lod 2 5 @ rem
ldc 0 @ 0
eq @ rem == 0 ?
fjp while21 @ if false
ldc 0 @ 0
str 2 6 @ prime = 0
while21 nop
lod 2 3 @ j
inc @ ++j
str 2 3
ujp while2 @ goto while2
while11 nop
lod 2 6 @ prime
ldc 1 @ 1
eq @ prime == 1 ?
fjp while12 @ goto while12
ldp @ call procedure
lod 2 2 @ i
call write @ print i
while12 nop
lod 2 2 @ i
inc @ ++i
str 2 2 @ i = i+1
ujp while1 @ goto while1
endwhile1 nop
ret
end
bgn 1
ldc 100
str 1 1
ldp
lod 1 1 @ call max
call main
end
'Applied > Assembly' 카테고리의 다른 글
[Mips Code] Step을 이용한 register의 변화 관찰 (0) | 2016.06.27 |
---|---|
[Ucode] 예제 프로그램 - 함수 호출(2) (한글 주석 포함) (0) | 2016.06.02 |
[Ucode] 예제 프로그램 - 함수 호출 (0) | 2016.05.29 |
[Mips Code]stack기반 지역변수 설정 및 함수 콜 (0) | 2016.03.12 |
[Mips Code]factorial 만들기 (재귀형식, jar 명령어) (0) | 2016.03.09 |