アセンブラの宿題質問スレ
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/10/18(水) 00:04:05アセンブラ好きのお兄さんに尋ねるスレ。
・必ずCPUの名前を書くこと!
・情報を小出しにしない。書ける情報は全て書いた方が得だよ。
0951デフォルトの名無しさん
2007/08/09(木) 14:49:551桁違うな。「あたりまえにできる」ことが判っていて1000行書くだけで\60マソぐらいがプロの相場。
「できるかどうかわからない」/「受け手のスキル次第でできるかもしれない」 のコストを加味
したら、\100〜\150ぐらいまでになりそうなもんだ。 宿題丸投げにしてはデカすぎる。
095288000 なら知ってるが。
2007/08/10(金) 00:29:24どこの CPU ? > 86000
>>951
妙に安いな > \100〜\150ぐらいまでになりそうなもんだ。
0953デフォルトの名無しさん
2007/08/10(金) 01:52:040954デフォルトの名無しさん
2007/08/10(金) 02:27:45完成しなかった時の責任はだれが取る?
バイト君が給料泥棒になる可能性はかなり高い
0955デフォルトの名無しさん
2007/08/10(金) 02:42:57たしかIntelのRISCだ >86000
Motorola の 88000と同時期くらいだったと思うけど。
0956955
2007/08/10(金) 02:52:54元の質問の86000は68kの間違い?
0957デフォルトの名無しさん
2007/08/10(金) 04:30:200958デフォルトの名無しさん
2007/08/10(金) 08:55:190959デフォルトの名無しさん
2007/08/10(金) 11:15:580960デフォルトの名無しさん
2007/09/05(水) 01:37:42そんな私が学校から頂いた宿題ですが、
int temp = 0;
for (int i=0; i<100; i++)
temp+=A[i]
なるC言語をMIPSになおせ。
素人ながらもここまでやってみました。
move $t1, $zero #temp=0
move $t0, $zero
addi $t0, $t0, 1
add $t3, $a0, $t0 # アレイA[i]のアドレス=$t3
addi $t1, $t1, $t3
for: slt $t2, $t0, 100 #$t3 = (i<100)
beq $t2, 100, exit #if(i<100) go to exit
j exit
exit:
プログラムの間違いを修正、アドバイスをして頂ける方がいらっしゃいましたらよろしくお願いします。
0961デフォルトの名無しさん
2007/09/05(水) 17:56:48命令表を見ながらやれば悩む要素なんざどこにもない。
0962デフォルトの名無しさん
2007/09/05(水) 20:53:25t1<-0 temp=0;
t0<-0 i=0;
loop:
t0>=100ならexitへ if (i>=100) hoto exit;
t2<-t0*4
t1<-t1+A(t2) temp+=A[i];
t0<-t0+1 i++;
loopへジャンプ goto loop;
exit:
これをアセンブラにする
0963デフォルトの名無しさん
2007/09/05(水) 21:31:490964デフォルトの名無しさん
2007/09/05(水) 23:04:110965デフォルトの名無しさん
2007/09/06(木) 03:56:44素人ながらにナイスファイト。
一度Cコードを何らかのソフトでコンパイルして出てきたAssenblyを閲覧するというのも手だよ。
0966デフォルトの名無しさん
2007/09/06(木) 05:54:50int A[100];
void main(void) {
register int temp = 0;
static int i;
for (i=0; i<100; i++)
temp+=A[i] ;
}
0967デフォルトの名無しさん
2007/09/06(木) 06:02:09DSEG
A_: DS 200
Z2: DS 2・・・これが i
CSEG
%2 LXI B,0・・・これがtemp
%5 LXI H,0
SHLD Z2
__2: LHLD Z2
LXI D,100
CALL CMPHD##
JNC __3
%6 LHLD Z2
DAD H
LXI D,A_
DAD D
MOV A,M
INX H
MOV H,M
MOV L,A
DAD B
MOV C,L
MOV B,H
%5 LHLD Z2
INX H
SHLD Z2
JMP __2
__3:
RET
0968デフォルトの名無しさん
2007/09/06(木) 14:07:000969デフォルトの名無しさん
2007/09/06(木) 14:49:360970デフォルトの名無しさん
2007/09/06(木) 21:07:540971デフォルトの名無しさん
2007/09/06(木) 21:46:35ebpは保存しておきたいから。
0972デフォルトの名無しさん
2007/09/14(金) 03:38:500973デフォルトの名無しさん
2007/09/14(金) 12:29:120974デフォルトの名無しさん
2007/09/15(土) 11:58:250975デフォルトの名無しさん
2007/09/21(金) 05:12:360976デフォルトの名無しさん
2007/09/26(水) 14:37:23誰か助けて下さい。
0977デフォルトの名無しさん
2007/09/28(金) 16:51:100978デフォルトの名無しさん
2007/09/28(金) 18:55:530979デフォルトの名無しさん
2007/09/28(金) 21:29:220980デフォルトの名無しさん
2007/09/28(金) 21:37:020981デフォルトの名無しさん
2007/09/28(金) 23:47:38かなづちで粉砕→水100ccを加え冷凍庫へ
0982デフォルトの名無しさん
2007/10/01(月) 18:10:44出来ました!ありがとうございました!
0983デフォルトの名無しさん
2007/10/02(火) 05:33:39string to an integer. Your program should expect register $a0 to hold the
address of a null-terminated string containing some combination of the
digits 0 through 9. Your program should compute the integer value equivalent
to this string of digits, then place the number in register $v0. Your
program need not handle negative numbers and need not be concerned
about values larger than 231 − 1.
If a nondigit character appears anywhere in the string, your program
should stop with the value -1 in register $v0. For example, if register
$a0 points to a sequence of three bytes 5010, 5210, 010 (the null-terminated
ASCII string 24), then when the program stops, register $v0 should contain
the value 2410, (or 11000 in binary). (The subscript ten means base
10.)
0984デフォルトの名無しさん
2007/10/02(火) 09:49:180985デフォルトの名無しさん
2007/10/03(水) 02:53:03・stack pointer を +1 してからデータを積む
・データを積んでから stack pointer を +1 する
のどっちですか。
CPUごとに違う気もしますが、しってる範囲でいいので教えてください。
0986デフォルトの名無しさん
2007/10/03(水) 04:51:18>231 − 1
2^(31) − 1
>5010, 5210, 010
50(10),52(10),0(10) (10)=decimal
0987デフォルトの名無しさん
2007/10/03(水) 05:06:03pushはプリデクリメント、popはポストインクリメントが一般的。
Cっぽく書くとこう。
Push : *(--StackPointer) = Data;
Pop : Data = *(StackPointer++);
0988デフォルトの名無しさん
2007/10/03(水) 07:23:16だと思う。
もちろん、そういうアドレッシングモードが用意されていれば、だけど。
例えば8086は無理でも、その元となった8080(Z80)にはあったはず。
0990デフォルトの名無しさん
2007/10/03(水) 10:50:020991デフォルトの名無しさん
2007/10/03(水) 12:36:520992デフォルトの名無しさん
2007/10/03(水) 14:16:20アセンブリ言語好きのお兄さん・お姉さんに尋ねるスレ。
・必ずCPUの名前を書くこと!
・情報を小出しにしない。書ける情報は全て書いた方が得だよ。
前スレ
アセンブラの宿題質問スレ
http://pc11.2ch.net/test/read.cgi/tech/1161097445/
これで誰か新スレを!
0993デフォルトの名無しさん
2007/10/03(水) 14:30:02スタックポインタの演算とロード・ストアをアトミックにやる必要がないからじゃないの?
0994デフォルトの名無しさん
2007/10/06(土) 15:32:54http://pc11.2ch.net/test/read.cgi/tech/1172916032/l50
アセンブラ… Part 12
http://pc11.2ch.net/test/read.cgi/tech/1187079488/l50
0995デフォルトの名無しさん
2007/10/06(土) 15:58:150996デフォルトの名無しさん
2007/10/07(日) 05:20:080997デフォルトの名無しさん
2007/10/07(日) 05:23:020998デフォルトの名無しさん
2007/10/07(日) 05:23:390999デフォルトの名無しさん
2007/10/07(日) 05:26:281000小倉優子 ◆en0rG2J.f6
2007/10/07(日) 05:27:0210011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。