三浦/日誌/2009-03-15
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[三浦/日誌]]
-再帰呼び出しのアセンブラ(一応)完成。~
[[個人作業>三浦/第14回ASICデザインコンテスト/アセンブラ]]のところにも書きましたが同じものをここにも。
--再帰呼び出し
ソースコード:
a=foo(5);
halt;
int foo(int arg) {
if(arg < 1) return arg;
return arg + foo(arg-1);
}
アセンブラ;
setahh $0 0
setahl $0 0
setalh $0 0
setall $0 0
setdhh $0 0
setdhl $0 0
setdlh $0 0
setdll $0 0
setdhh $0 1
setdhl $0 1
setdlh $0 1
setdll $127 1
ldi 5
jal foo
st 1($0)
hlt
jal L000
foo:
dsub $1 2
ast $1 0
st 1($1)
ldi 1
ld 1($1)
com 1
blt L001
ld 1($1)
jmp fooexit
L001:
ld 1($1)
dsub $1 1
st 0($1)
ld 2($1)
ldi 1
sub 1
jal foo
ld 0($1)
dadd $1 1
add 1
jmp fooexit
fooexit:
ald $1 0
dadd $1 2
jmp 0($1)
L000:
--ループもなんとか。
ソースコード:
for(i=0;i<10;i++){
a=a+1;
}
アセンブラ:
ldi 0
st 9($0)
L000:
ldi 10
ld 9($0)
com 1
blt L001
ld 1($0)
ldi 1
add 1
st 1($0)
ld 9($0)
ldi 1
add 1
st 9($0)
jal L000
L001:
ソースコード:
while(a>0){
a=a-1;
}
アセンブラ:
L000:
ld 1($0)
ldi 0
com 1
blt L001
ld 1($0)
ldi 1
sub 1
st 1($0)
jal L000
L001:
----
- 配列ができないことが発覚。ここにきてこれは致命的過ぎる。 -- [[三浦]] &new{2009-03-16 (月) 00:10:46};
#comment
終了行:
[[三浦/日誌]]
-再帰呼び出しのアセンブラ(一応)完成。~
[[個人作業>三浦/第14回ASICデザインコンテスト/アセンブラ]]のところにも書きましたが同じものをここにも。
--再帰呼び出し
ソースコード:
a=foo(5);
halt;
int foo(int arg) {
if(arg < 1) return arg;
return arg + foo(arg-1);
}
アセンブラ;
setahh $0 0
setahl $0 0
setalh $0 0
setall $0 0
setdhh $0 0
setdhl $0 0
setdlh $0 0
setdll $0 0
setdhh $0 1
setdhl $0 1
setdlh $0 1
setdll $127 1
ldi 5
jal foo
st 1($0)
hlt
jal L000
foo:
dsub $1 2
ast $1 0
st 1($1)
ldi 1
ld 1($1)
com 1
blt L001
ld 1($1)
jmp fooexit
L001:
ld 1($1)
dsub $1 1
st 0($1)
ld 2($1)
ldi 1
sub 1
jal foo
ld 0($1)
dadd $1 1
add 1
jmp fooexit
fooexit:
ald $1 0
dadd $1 2
jmp 0($1)
L000:
--ループもなんとか。
ソースコード:
for(i=0;i<10;i++){
a=a+1;
}
アセンブラ:
ldi 0
st 9($0)
L000:
ldi 10
ld 9($0)
com 1
blt L001
ld 1($0)
ldi 1
add 1
st 1($0)
ld 9($0)
ldi 1
add 1
st 9($0)
jal L000
L001:
ソースコード:
while(a>0){
a=a-1;
}
アセンブラ:
L000:
ld 1($0)
ldi 0
com 1
blt L001
ld 1($0)
ldi 1
sub 1
st 1($0)
jal L000
L001:
----
- 配列ができないことが発覚。ここにきてこれは致命的過ぎる。 -- [[三浦]] &new{2009-03-16 (月) 00:10:46};
#comment
ページ名: