アセンブラを勉強しよう
■ このスレッドは過去ログ倉庫に格納されています
00011 ◆LrnSVKDHBg
2007/03/03(土) 19:00:320153デフォルトの名無しさん
2007/10/22(月) 20:09:06ここで回答されてるよ
http://m.oshiete1.goo.ne.jp/search/eturan3.php3?qid=3431805&cid=709&keyword=&start=9
0154デフォルトの名無しさん
2007/10/22(月) 20:54:38同じ大学なんじゃね
アセンブラ… (゜□゜) ↑アッー!↓
http://pc11.2ch.net/test/read.cgi/tech/1148402614/614
0155デフォルトの名無しさん
2007/10/22(月) 21:57:360156デフォルトの名無しさん
2007/10/23(火) 11:17:190157デフォルトの名無しさん
2007/10/23(火) 20:00:110158デフォルトの名無しさん
2007/10/27(土) 00:44:25お前、ベジータか?
0159デフォルトの名無しさん
2007/11/22(木) 16:00:270160デフォルトの名無しさん
2007/11/24(土) 04:23:05と
lea ebx,[eax]
って、ebxにロードされる値は同一ですか?
0161デフォルトの名無しさん
2007/11/24(土) 09:32:57もちろん同じになることもある
0162デフォルトの名無しさん
2007/11/24(土) 09:48:060163デフォルトの名無しさん
2007/11/24(土) 10:03:25ttp://userdisk.webry.biglobe.ne.jp/002/078/73/N000/000/000/117897859702816119025.jpg
0164デフォルトの名無しさん
2007/11/24(土) 12:04:160165デフォルトの名無しさん
2007/11/30(金) 17:37:23LEA EBX,DWORD PTR [EBX+00000000]
というのを見かけるんだけど、イマイチようわからん・・・なんじゃこりゃ?
0166デフォルトの名無しさん
2007/11/30(金) 17:55:170167デフォルトの名無しさん
2007/11/30(金) 18:04:180168デフォルトの名無しさん
2007/11/30(金) 18:18:20おい
0169デフォルトの名無しさん
2007/11/30(金) 18:20:53それじゃMOV文じゃね?
>>167
う〜ん、
AND EBX,-04
で良い様な気もしたんでね・・・。
ひょっとしてフラグかフラグなのか?
0170デフォルトの名無しさん
2007/11/30(金) 18:29:300171デフォルトの名無しさん
2007/11/30(金) 18:31:29レスくれた人ありがとう。
先に進める事にします。
0172デフォルトの名無しさん
2007/11/30(金) 22:04:53コンパイラがNOPを挿入することがある
0173デフォルトの名無しさん
2007/12/01(土) 02:37:380174デフォルトの名無しさん
2007/12/02(日) 16:50:59INT 03
で埋まってたな。
テキストだと フ になるんだけど、並んでとなんかこう気持ち悪い。
0175デフォルトの名無しさん
2007/12/02(日) 17:03:440176デフォルトの名無しさん
2007/12/02(日) 17:08:310177デフォルトの名無しさん
2007/12/02(日) 17:53:420178デフォルトの名無しさん
2007/12/02(日) 19:36:35ガリでもくってろフフフ(ry
って、やめんかw
0179デフォルトの名無しさん
2007/12/07(金) 12:56:580180デフォルトの名無しさん
2007/12/07(金) 22:14:240181デフォルトの名無しさん
2007/12/10(月) 12:29:50で
ロ-キック
0182デフォルトの名無しさん
2007/12/12(水) 15:04:330183デフォルトの名無しさん
2007/12/12(水) 15:33:42という課題が出されているんだがサッパリ解らない
誰か助けてくれ
0184デフォルトの名無しさん
2007/12/12(水) 15:39:00つーか、何のアセンブラの話なんだか。
0185デフォルトの名無しさん
2007/12/12(水) 15:41:46>データの個数NはN番地に格納されている
これおかしいだろw
1. データの個数の取得
2. X番地からn個目のデータを読み出す
3. 絶対値を求める
4. そのままY番地からn個目に書き出す
5. N個終わるまで2,3,4を繰り返す
ここまで分解すればあとは1つ1つやっつけるだけだ。
0186デフォルトの名無しさん
2007/12/12(水) 15:41:28COMETII/CASLIIだ
0187デフォルトの名無しさん
2007/12/12(水) 15:43:41なんで>184の2行目しか読まないかねぇ……
0188デフォルトの名無しさん
2007/12/12(水) 15:44:04COMETII/CASLIIだ
0189デフォルトの名無しさん
2007/12/12(水) 15:45:31>>185
とりあえず試行錯誤してみる
>>187
すまん、何を言っているのかすら解らなかったんだ
0190デフォルトの名無しさん
2007/12/12(水) 15:47:10LAD GR1,0
LOOP LD GR2,X,GR1
ST GR2,Y,GR1
LAD GR1,1,GR1
CPA GR1,N
JMI LOOP
RET
N DC 5
Y DS 5
X DC 3
DC 5
DC 8
DC 9
DC 7
END
ここまで書いたが、絶対値の求め方ってなんだっけ?
0191デフォルトの名無しさん
2007/12/12(水) 15:50:26> 個数NはN番地に格納されている
って、私の住所は私の住んでいる所ですって言ってるようなものだ
0192デフォルトの名無しさん
2007/12/12(水) 15:58:24なるほど、でも問題文そのままなんだよなぁ・・
0193デフォルトの名無しさん
2007/12/12(水) 16:06:48これのやり方がわからない
0194デフォルトの名無しさん
2007/12/12(水) 16:12:37「データの個数はN番地に格納されている」とかなら文句はたぶん出ない
0195デフォルトの名無しさん
2007/12/12(水) 16:15:26負の数だったら0から引けばOK。アセンブラによっては符号反転のニモニックがあるかも知らん。
CASL知らんからCで書いておく。
signed foo;
if (foo < 0) foo = 0 - foo;
or
if (foo < 0) foo = -foo;
0196デフォルトの名無しさん
2007/12/12(水) 16:20:48>190に正だったらそのまま格納
負だったら0からその数を引けばいいんだな
0197デフォルトの名無しさん
2007/12/12(水) 16:23:18CASLには符号反転命令はないから正負を判断して負なら0からその値を引く
1.正なら3へジャンプ
2.0から値を引く
3.
みたいな感じでいいんじゃまいか?
0198デフォルトの名無しさん
2007/12/12(水) 16:29:25TEST START
LAD GR1,0
LOOP LAD GR3,0
LD GR2,X,GR1
CPA GR3,GR2
JMI MAINA
JPL HUTU
MAINA SUBA GR3,GR2
LAD GR2,GR3
HUTU ST GR2,Y,GR1
LAD GR1,1,GR1
CPA GR1,N
JMI LOOP
RET
N DC 5
Y DS 5
X DC 3
DC -5
DC 8
DC -9
DC 7
END
としてみたんだがエラーが発生してしまう・・・
0199デフォルトの名無しさん
2007/12/12(水) 16:43:20LAD GR2,GR3
じゃなくて
LD GR2,GR3
じゃないかな?
あと、零の場合は0から引いても0なので
CPA GR3,GR2
JMI MAINA
JPL HUTU
MAINA SUBA GR3,GR2
LD GR2,GR3
HUTU ST GR2,Y,GR1
は
CPA GR3,GR2
JPL HUTU
SUBA GR3,GR2
LD GR2,GR3
HUTU ST GR2,Y,GR1
でもいいかも
アセンブルとか動作チェックとかして確かめていないが
0200199
2007/12/12(水) 16:58:06CPA GR3,GR2
でなく
CPA GR2,GR3
かな
0201デフォルトの名無しさん
2007/12/12(水) 17:10:20LAD GR1,0
LOOP LAD GR3,0
LD GR2,X,GR1
CPA GR2,GR3
JPL HUTU
SUBA GR3,GR2
LD GR2,GR3
HUTU ST GR2,Y,GR1
CPA GR1,N
JMI LOOP
RET
N DC 5
Y DS 5
X DC 3
DC -5
DC 8
DC -9
DC 7
END
アセンブルではうまく言ったんだけど
無限ループしてしまった
0202デフォルトの名無しさん
2007/12/12(水) 17:17:05LAD GR1,0
LOOP LAD GR3,0
LD GR2,X,GR1
CPA GR2,GR3
JPL HUTU
SUBA GR3,GR2
LD GR2,GR3
HUTU ST GR2,Y,GR1
LAD GR1,1,GR1
CPA GR1,N
JMI LOOP
RET
N DC 5
Y DS 5
X DC 3
DC -5
DC 8
DC -9
DC 7
END
これで提出してみました
合格してるといいなぁ
0203デフォルトの名無しさん
2007/12/12(水) 17:19:54HUTUの次の行の
LAD GR1,1,GR1
が抜けてる気がする
0204デフォルトの名無しさん
2007/12/12(水) 17:27:11正負の判断で分岐させたくなければ
LAD GR1,0
LOOP LD GR2,X,GR1
LD GR3,GR2
SRA GR3,BWM1
ADDA GR2,GR3
XOR GR2,GR3
ST GR2,Y,GR1
LAD GR1,1,GR1
CPA GR1,N
JMI LOOP
...
BWM1 DC 15
みたいなのも
CASLIIのGR*って16ビット幅だったよね?
0205デフォルトの名無しさん
2007/12/12(水) 17:32:02お前らのおかげだ!ありがとう!
>>202
あ、うん直前で気づいていれておいた
>>203
すまないが見たことの無い単語が出てきて解らない
16ビットなのは合ってるよ
さて、最後の課題だ
「メモリのDATA番地以降にN個の符号付整数が格納されている. 指標レジスタを用いて,これらの中の正の整数の合計を求め,結果 をSUM番地に格納するプログラムを作成せよ.データの個数NはN番地 に格納されているものとする.」
もう早速意味の解らない
data番地とか指標レジスタって日本語?
0206デフォルトの名無しさん
2007/12/12(水) 17:46:15指標レジスタを用いて、これらの中の正の整数の合計を求め、結果 をSUM番地に格納するプログラムを作成せよ。
データの個数nはN番地 に格納されているものとする。」
とすると
こんな感じのメモリマップがあるって事か
SUM番地 [ ... ]
N番地 [ n ]
DATA+0番地 [ ... ]
DATA+1番地 [ ... ]
DATA+2番地 [ ... ]
...
DATA+(n-1)番地 [ ... ]
指標レジスタってのは while ループをレジスタで再現しるってだけジャマイカ?
x86とSHしか知らないから違うかもしれないけど。
0207デフォルトの名無しさん
2007/12/12(水) 17:46:42xが正なら(x+(0))と(0)の排他的論理和をとる
0と-1はxを右に15ビット算術シフトすれば出てくる
DATA番地も指標レジスタも日本語だw
DATA番地はN個の符号付整数が格納されているブロックの先頭の番地のラベルじゃないかな
指標レジスタはCASLIIの仕様書にちゃんと載ってるぞ
0208デフォルトの名無しさん
2007/12/12(水) 17:53:46排他的論理和ってのを使えばいいのかな?
0209デフォルトの名無しさん
2007/12/12(水) 17:55:10XORだよな?
っというかもうやっぱり問題文の日本語がわからない
なにをさせたいのかさっぱり
0210デフォルトの名無しさん
2007/12/12(水) 17:58:310211デフォルトの名無しさん
2007/12/12(水) 18:01:12いや、素直に正か負で分岐して負の場合だけ0から引くとかにしておいた方がいいと思う
自分で書いててアレだが素直で見やすくて何をやっているかすぐに分かるコードの方が好きだ
ちなみに
LD GR3,GR2
SRA GR3,BWM1
で15ビット右にシフトした値をGR3に入れて
ADDA GR2,GR3
で元の値GR2に0か-1を足して
XOR GR2,GR3
で排他的論理和をとってGR2に入れている
0212デフォルトの名無しさん
2007/12/12(水) 18:04:31「メモリのDATA番地以降にN個の符号付整数が格納されている. 指標レジスタを用いて,これらの中の正の整数の合計を求め,結果 をSUM番地に格納するプログラムを作成せよ.データの個数NはN番地 に格納されているものとする.」
ではなくその前の課題についてだったのか
0213デフォルトの名無しさん
2007/12/12(水) 18:12:32とかで既に指標レジスタとしてのGRレジスタの使い方をしているんじゃないか?
指標レジスタを用いてっていうのは、DATA番地以降にある整数に上のような方法でアクセスするってことじゃないか?
あとは
LDA GR3,0
LOOP GR2にデータを一つ入れる
CPA GR2,GR3 ; GR2と0を比較
JMI MAINA ; 負ならジャンプする
SUM番地にGR2を加算
MAINA ...
...
JMI LOOP
みたく正の場合だけ加算処理をする
>>212
すまん、混乱させてしまった
0214デフォルトの名無しさん
2007/12/12(水) 18:12:30最後の問題はクリアしてなくても帰れるみたいだ
今日はお前ら本当にありがとう
0215デフォルトの名無しさん
2007/12/12(水) 18:16:11CASLはメモリをディスティネーションにする加算命令はなかったかも
途中の和を入れるためのレジスタを用意してループ中ではそれに加算して
最後にSUMにSTする形をとったほうがいいか
0216デフォルトの名無しさん
2007/12/12(水) 22:46:440217デフォルトの名無しさん
2007/12/12(水) 22:58:04何を(どういうことを)勉強したいの?
0218デフォルトの名無しさん
2007/12/12(水) 23:34:200219デフォルトの名無しさん
2007/12/12(水) 23:43:07まだなさげ?
0220デフォルトの名無しさん
2007/12/13(木) 00:59:12ビットサイズだけじゃアセンブラが特定できん。
0221デフォルトの名無しさん
2007/12/13(木) 01:04:570222デフォルトの名無しさん
2007/12/13(木) 01:07:455から大してかわってない。
0223デフォルトの名無しさん
2007/12/13(木) 01:31:01前何かで参考になった
0224デフォルトの名無しさん
2007/12/13(木) 05:36:470225デフォルトの名無しさん
2007/12/13(木) 15:03:35既存のライブラリでやるなら何もASMでやる必要は無いんじゃね?
0226デフォルトの名無しさん
2007/12/13(木) 16:44:57アセンブラMACROSしか知らないなぁ。公開されたものは。
使ったことないけど。
これね。
ttp://www.vector.co.jp/soft/dos/prog/se001158.html
0227デフォルトの名無しさん
2007/12/13(木) 23:14:23もし、一連の質問の同一人物なら、
質問に答えてもらったら・・・後はわかるな?
0228226
2007/12/14(金) 10:43:12別にいいんじゃないか2チャソだし
ひろゆこ曰
ttp://www.asks.jp/users/hiro/20193.html
A :20xx/mm/dd hh:mm:ss
HDDの残り容量の調べ方を教えれ
>A B :20xx/mm/dd hh:mm:ss
df
こういう空間を良しと考えていたみたいだし
(個人的にはこのひろゆこのエントリにはいろいろツッコミたい点は覆いが)
0229デフォルトの名無しさん
2007/12/19(水) 14:22:19前にも増して日本語なのか理解できないので助けて欲しい
【問題4-4-1】以下のリストは,シフト演算命令を使った乗算プログラムであり,5×164を求めている.リストの [ ] 部分を埋めて完成せよ.(ヒント)164を2のべき数の和に直す.
ラベル欄 命令コード オペランド欄
PGM7 START
LD GR1,DATA
SLA GR1,2
ST GR1,KOTAE
LD GR1,DATA
[ ] ;(GR1)×32
ADDA GR1,KOTAE
[ ] ;(GR1) -> KOTAE
[ ] ;GR1 <- (DATA)
[ ] ;(GR1)×128
[ ] ;GR1<-(GR1)+(KOTAE)
ST GR1,KOTAE
RET
DATA DC 5
KOTAE DS 1
END
ご助力頼む!
0230デフォルトの名無しさん
2007/12/19(水) 15:07:35LD GR1,DATA
SLA GR1,2
ST GR1,KOTAE
LD GR1,DATA
SLA GR1,5 ;(GR1)×32
ADDA GR1,KOTAE
ST GR1,KOTAE ;(GR1) -> KOTAE
LD GR1,DATA ;GR1 <- (DATA)
SLA GR1,7 ;(GR1)×128
ADDA GR1,KOTAE ;GR1<-(GR1)+(KOTAE)
ST GR1,KOTAE
RET
DATA DC 5
KOTAE DS 1
END
とりあえず自分でやってみた
どうだろうか
0231デフォルトの名無しさん
2007/12/19(水) 15:11:17だが次の課題がもっと意味不明すぎる
誰か助けてくれ
【問題4-4-2】
(a)アドレスDATAの第15ビットから第8ビットまでの8ビットを取出し,残りを0とした情報をアドレスOPに格納し,
同じく第7ビットから第4ビットまでの4ビットを取出し,残りを0とした情報をアドレスGRに格納し,
さらに第3ビットから最後までの4ビットを取出し,残りを0とした情報をアドレスXRに格納するプログラムを以下のリストの [ ]を埋めて完成せよ.
ラベル欄 命令コード欄 オペランド欄
MASK START
LD GR0,DATA
[ ]
ST GR0,OP
L1 LD GR1,DATA
[ ]
ST GR1,GR
LD GR2,DATA
[ ]
ST GR2,XR
RET
DATA DC #3012
MASK1 DC #FF00
MASK2 DC [ ]
MASK3 DC [ ]
OP DS 1
GR DS 1
XR DS 1
END
0232デフォルトの名無しさん
2007/12/19(水) 15:21:17LD GR0,DATA
[ ]
ST GR0,OP
L1 LD GR1,DATA
[ ]
ST GR1,GR
LD GR2,DATA
[ ]
ST GR2,XR
RET
DATA DC #3012
MASK1 DC #FF00
MASK2 DC #00F0
MASK3 DC #000F
OP DS 1
GR DS 1
XR DS 1
END
ここまで自分で入れてみた
0233デフォルトの名無しさん
2007/12/19(水) 17:19:130234デフォルトの名無しさん
2007/12/20(木) 00:20:590235デフォルトの名無しさん
2007/12/20(木) 00:34:28スレ違い。寧ろ鼬害かも。
0236デフォルトの名無しさん
2007/12/20(木) 00:52:16日本語でおk
0237デフォルトの名無しさん
2007/12/20(木) 01:00:310238デフォルトの名無しさん
2007/12/20(木) 07:35:31http://pc11.2ch.net/test/read.cgi/tech/1168399966/l50
0239デフォルトの名無しさん
2007/12/20(木) 16:38:17名古屋駅近辺でお話しましょう
0240デフォルトの名無しさん
2007/12/23(日) 15:23:17pmaxubかpcmpgtb
後者の使い方がよくわからないorz
0241デフォルトの名無しさん
2007/12/23(日) 15:48:230242デフォルトの名無しさん
2007/12/23(日) 22:42:5032bitレジスタにSSEレジスタの内容を書込む場合は、
どうしたら良いのでしょうか?
movapsを使って転送しようとしたところで落ちます。
movaps xmm0, [esi]
// 〜処理〜
movaps [ecx], xmm0 <-- ここで落ちる.
0243デフォルトの名無しさん
2007/12/23(日) 22:50:12自己レス、ごめんなさいループ条件を間違えていただけでした。
0244デフォルトの名無しさん
2007/12/27(木) 00:15:180245デフォルトの名無しさん
2007/12/27(木) 00:20:22http://www.google.co.jp/
0246デフォルトの名無しさん
2007/12/27(木) 03:29:120247デフォルトの名無しさん
2007/12/27(木) 09:47:320248デフォルトの名無しさん
2007/12/27(木) 10:24:20具体的な違いは石に依存するので種類を明記しない質問にはこれ以上答えようがない。
0249デフォルトの名無しさん
2007/12/27(木) 13:11:10逆だったり
0250デフォルトの名無しさん
2007/12/27(木) 14:28:29and $0xfffffff0,%esp
って記述が必ずあるんだが、これはなんのためにやってるの?
0251デフォルトの名無しさん
2007/12/27(木) 14:42:11ローカル変数をメモリ上でアライメントするため、
だと思われる。
0252デフォルトの名無しさん
2007/12/29(土) 14:50:54アライメント?
wikiでみたら、データを特定のサイズに調節することって書いてあるんだが
意味がわからない
int型だと2バイトcharだと1バイト見たいなのが関係してんの?
■ このスレッドは過去ログ倉庫に格納されています