1 名前:デフォルトの名無しさん [2006/05/24(水) 01:43:34 ] アセンブラ全般に関するスレッドです。 【前スレ】 アセンブラ… ヽ(゚∀゚)ノフォーウ! pc8.2ch.net/test/read.cgi/tech/1132761638/ 過去ログは>>2 辺り
263 名前:デフォルトの名無しさん [2006/07/04(火) 00:19:44 ] YASM
264 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 02:21:01 ] >>263 休むな。
265 名前:デフォルトの名無しさん [2006/07/04(火) 03:16:08 ] NASMを使っているけど、コンパイルするまでの手間がだるい。 中間ファイル作成→ALinkでコンパイル この手間を無くしたい。 MASMって使用者が多いと思うけど、上記項目を一括して出来るの? 出来るなら乗り換えようかな。
266 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 03:48:31 ] >>265 batファイルを作ればいいような。
267 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 07:18:52 ] 近頃の若いもんはmakeもしらんのか
268 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 08:39:59 ] 統合環境に組み入れられるだろ。 つーか make でいいよな?
269 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 09:39:11 ] DOSの頃はMASMやTASMを愛用してたけど、 Win環境に移ってからこっちインラインアセンブラしか書かなくなったなぁ。
270 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 11:41:38 ] makeはいちいちMakefileを書くのが面倒だろう なのでbat ・・・フルアセンブリ・1ファイル完結の話だよな? そうじゃないなら俺もMakefile書くが
271 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 17:40:39 ] アセでそんなにでかいプロジェクトなんてやらないし どうせ全ビルドでも一瞬で終わるんだ 数行書くごとに全ビルドでもまったく苦にならんw
272 名前:デフォルトの名無しさん mailto:sage [2006/07/04(火) 19:57:12 ] nasm.exe(-f win32)で作成したobjはld.exeでもリンクできるなぁ‥‥ めどいならgccでリンク。 それはそうと、nasmのセクション宣言で共有属性をつけることは出来ない? とりあえずFMOで共有メモリを実現している。 gasなら .section .sdata,"rws" って書けば共有属性が付くけど。
273 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 00:06:20 ] SHのプロジェクト預かったのだがコンパイラ先生が生成したアセンがまったくわからんのです。シミュレータぶんまわしてもそこがわからんorz タヂケkt SuperH RISC engine C/C++ Compiler (V.8.00.05) EX). Address ML Assembler 00007E66 D23D MOV.L @(H'00F4:8,PC),R2 以下考察 Inst Dest Displacement b1101 0010 0011 1101 h d 2 3 d 構文のDisplacemnetは下位2bit分(1/4としている)を省略し記述になっているようだ Destinationは簡単にR2を2としているだけ MOV.L @(disp,PC),Rnの解説(仕様書抜粋) ディスプレースメントは8bitまで(H'1-FF) LONG WORD 拡張×4 最大:b1111111100:0x1020 WORD 拡張×2 最大:b0111111110:0x 510 としている よってDisplacementはH'03D0 PCは下位2bitをマスクする H'00007E66 & H'FFFFFFFC よってH'7E64 R2 = PC + Displacement = H'8234となる? しかし実際は シムではR2 = H'00003774 ドボヂテ(TロT)
274 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 01:32:32 ] >>273 Displacementは、普通±を考慮すると思うのだが。 8bitのDisplacementだと、bit7が1だと「−」になるとか…。 SHは触ったことが無いので間違っていたらゴメン。
275 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 02:33:04 ] @は即値じゃなくて、間接アドレッシングじゃないのか?
276 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 02:49:31 ] 考察ってのはどういうことなの?ちゃんとマニュアルに命令形式が載ってるでしょ。 >b1111111100:0x1020 >b0111111110:0x 510 ってのもおかしいし。 R2=Read_Long( (0x00007E66 & 0xFFFFFFFC) + (0x3D<<2) ) = Read_Long( 0x7E64+0xF4 ) = Read_Long(0x7F58) アドレス0x7F58にあるLong値がR2に入る。 ttp://japan.renesas.com/ から「SuperH RISC engine ファミリ」>「ドキュメント」で 日本語のソフトウェアマニュアルにたどり着けるから、それ読むといいよ。
277 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 04:11:21 ] 誰もドキュンの意見は聞いてません 帰れ
278 名前:デフォルトの名無しさん [2006/07/06(木) 11:37:38 ] add, sub, and, or, lw, sw, beq, bne, j, addi, andi, ori, sll, srl, sra これだけの命令で16or32ビット同士の数字の掛け算のプログラムを作れますか?
279 名前:278 [2006/07/06(木) 11:59:57 ] /* multiplication.c: Unsigned 16-bit x 16-bit */ main(){ int x = 0x0000c9ae; int y = 0x0000f6e5; int z = mul(x, y); printf("%08x * %08x = %08x\n", x, y, z); } int mul(int x, int y){ int a, b, c; int i; // counter a = x; b = y; c = 0; // production for(i = 0; i < 16; i++){ // for 16 bits if((b & 1) == 1){ // LSB of b is 1 c += a; // c = c + a } a = a << 1; // shift a 1-bit left b = b >> 1; // shift b 1-bit right } return(c); // return production } ちなみにC言語で書くとこうなるらしいです
280 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 12:19:20 ] ふと思ったが、何でもできる最小限の命令セットってどのくらいだろう。 メモリのリードライト、条件ジャンプ、あと加算? そういやBrainFuckが何でもできるんだったな。
281 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 12:33:54 ] チューリングマシンとか、RAM とかの話になると思うけど、 多分 定数 1 加算 0 判定 間接参照 程度で大丈夫じゃないかな?
282 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 12:45:22 ] 分岐はいるだろう
283 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 13:17:01 ] PCに加算できれば分岐は要らない
284 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 13:20:26 ] レジスタから指定したアドレスの内容を減算し、 結果をレジスタとアドレスにストアする。 これでどんなプログラムでも書けるらしい。 実用的にはPCやレジスタにもアドレスを付け、 1番地と2番地に書くと3番地に加算結果、4番地に減算結果、etc というハードにすると、MOVE命令だけでOK 1命令CPUのすごいところは、命令デコーダが不要なことだ!
285 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 14:33:41 ] >>284 その分コーディングで効率を上げないと無駄が増える
286 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 15:47:42 ] >>278 シフト命令の他に回転命令が無いと面倒臭くなるな。
287 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 17:53:21 ] 出来る出来ないは別にして最低限無いと人間が記述する時に不便or不都合が生じる、 という最低限な命令セットの話で。
288 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 18:00:35 ] RISC系CPUの初期モデルの命令セットでも見れば? まあ、x86とかでもアセンブラレベルでの命令の種類はそう多くはないんだが。
289 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 19:28:36 ] 俺なら真っ先にHALTとNOPとブレークポイント例外を入れるね。
290 名前:デフォルトの名無しさん [2006/07/06(木) 19:52:24 ] >>289 「最低限」必要か?
291 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 19:59:05 ] >>290 HALTが無いとチューリングマシンとして成り立たないのでは?
292 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 21:39:12 ] もろもろどうもです >>273 LONG WORD 拡張×4 最大:b1111111100:1020 WORD 拡張×2 最大:b0111111110: 510 正しくは上記10進です。うっかりしてました。 マニュアル確認しました。 MOV.L @(H'00F4:8,PC),R2 PC:0x00007E66 R2=Read_Long( (0x00007E66 & 0xFFFFFFFC) + (0xF4<<2) ) = Read_Long( 0x7E64+0x3D0 ) = Read_Long(0x8234) マニュアルの形式に沿って計算したが、シミュレータではR2=0x00003774と出力している。 そのあとには"JSR @R2"として関数を呼び出している。シミュレータでの動作は問題ないので手計算が間違っている!間違いはどこなんですかね?
293 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 22:19:23 ] >>291 それが世の中HALTが無いCPUもあったりするんですよ。
294 名前:デフォルトの名無しさん mailto:sage [2006/07/06(木) 22:23:11 ] >>292 ちゃんとマニュアル読んでるのか? H'8234番地の中身確認してみれ。
295 名前:291 mailto:sage [2006/07/06(木) 23:54:15 ] >>291 ええと、少し調べたところ、チューリングマシンはHALTが無くてもいいそうな。 無限ループに陥ったと確定した時点で「停止」扱いでOKらしい。 すまん。
296 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 00:44:09 ] >>294 0x8234に目的の値が確保されてるってこと?アドレスから値を持ち込むにはMOV.L @R2,Rnが必要じゃないの? マニュアル(RJJJ09B0228-0700,Rev7.00 P6-59)には計算通りに導けるが、MOV.L @(H'00F4:8,PC),R2 PC:0x00007E66のシミュレーション結果がR2 = 0x00003774となるのかがどうにも
297 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 01:39:00 ] そーゆーもまいらにBrainF*ck
298 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 11:46:21 ] 6502の命令セットはシンプルで若干不足気味に まとまった命令セットだったと思う。
299 名前:デフォルトの名無しさん mailto:sage [2006/07/07(金) 23:13:39 ] アセンブラ全般といいつつx86系ばかりだね UNIXベンダのプロセッサのアセンブリプログラムは無いポ?
300 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 01:01:24 ] 300ゲットしておきますか。
301 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 09:41:58 ] すごくPPCをやりたいんですけど… わかりません。
302 名前:デフォルトの名無しさん [2006/07/09(日) 10:23:20 ] >>301 黒箱かiMac買えば?
303 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 10:33:43 ] >>302 Macならある。
304 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 11:26:31 ] >>303 ヒマだから反応しておく。何がわからないんだ。 命令そのものか、又は命令の使い方か?
305 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 12:12:57 ] >>304 どっちも。
306 名前:デフォルトの名無しさん mailto:sage [2006/07/09(日) 13:09:30 ] >>305 「玄箱」と「PowerPC」でぐぐればPowerPCの解説HPが見つかるかもしれない。 Macでぐぐってもアセンブラを解説したHPは出て来ない気がする。 しかし、PowerPCのアセンブラも知らないで、何を作るつもりなのか? その辺を明確にしておかないと、上達は有り得ないと思う。
307 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 23:28:11 ] >>306 激励したつもりだったんだけど…orz
308 名前:デフォルトの名無しさん mailto:sage [2006/07/10(月) 23:30:47 ] >>307 の訂正 >>306 では無くて>>305 です。 連続書込み、スマソ
309 名前:デフォルトの名無しさん mailto:sage [2006/07/13(木) 19:48:19 ] アセンブラで逝く!逝く!逝っちゃうの!
310 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 12:18:13 ] みさくら語でおk
311 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 14:10:51 ] i386にバイト反転付き整数ロード/ストア命令ってある?
312 名前:デフォルトの名無しさん mailto:sage [2006/07/15(土) 14:34:18 ] ない
313 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 02:03:02 ] 26時間観ながら保守。
314 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 02:04:17 ] う〜、誤爆した。
315 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 08:21:59 ] スリムでドボンとか言う奴はどこいったんだ
316 名前:デフォルトの名無しさん mailto:sage [2006/07/16(日) 09:17:49 ] 糞コテは呼ばんでええよ
317 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 12:35:35 ] インラインアセンブラはスレ違いかもしれないけど質問。 Xeonで動かそうと思って double func(double *sx, double *cx, double *sy, double *cy, int xe, int ye) { double sum = 0; for (int ix = 0; ix < xe; ix++) { double sx1 = sx[ix]; double cx1 = cx[ix]; for (int iy = 0; iy < ye; iy++) { double sy1 = sy[iy]; double cy1 = cy[iy]; sum += (cx1 * cy1 - sx1 * sy1) + (cx1 * sy1 + sx1 * cy1); } } return sum; } こげな関数のループ内部を asm volatile( " movsd %1, %%xmm0; movhpd %3, %%xmm0; movapd %%xmm0, %%xmm2 movsd %2, %%xmm1; movhpd %4, %%xmm1; movapd %%xmm1, %%xmm3 mulpd %%xmm1, %%xmm0; movhlps %%xmm0, %%xmm1; subsd %%xmm1, %%xmm0 mulpd %%xmm3, %%xmm2; movhlps %%xmm2, %%xmm3; addsd %%xmm3, %%xmm2 addsd %0, %%xmm0; addsd %%xmm0, %%xmm2; movsd %%xmm2, %0" : "=g" (sum) : "g" (cx[ix]), "g" (cy[iy]), "g" (sx[ix]), "g" (sy[iy]) : "%xmm0", "%xmm1", "%xmm2", "%xmm3" ); こう書いてみたんだが、もっと効率上げられないもんかな。 ループ部はiccの各種最適化に頼りたいから残しておきたいんだが。
318 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 20:40:02 ] >>317 素直に2要素ずつやったらいいんでないの。 > ループ部はiccの各種最適化に頼りたいから とはどういうこと? この処理なら関数全部をインラインアセンブラで 書くのが、速度も出るし手っ取り早いと思うが。
319 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 20:41:32 ] >>318 みたいな原始人まだいたんだ(^o^)
320 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 20:53:01 ] だいたい、Cなんて中身の何も無いループ回すだけでちんたら遅すぎ。 ポインタなんか使ったら余計な演算入りまくりで遅いし。まあ、最近のCPUは掛け算が早くなったから大分良くなったが。
321 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 20:57:07 ] >>317 コンパイラがサポートしてるならintrinsics関数で書く。
322 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 21:21:13 ] C言語レベルで最適化する余地があると思うが ヒント for(int iy = 0; iy < ye; iy++){ sumA+=cx1*(cy1+sy1); sumB+=sx1*(cy1-sy1); } sum+=sumA+sumB;
323 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 22:12:57 ] >>322 まだ最適化できる。 ヒント for(int iy = 0; iy < ye; iy++){ sumA += cy1; sumB += sy1; } sum += cx1 * (sumA+sumB); sum += sx1 * (sumA-sumB);
324 名前:323 mailto:sage [2006/07/17(月) 22:19:41 ] >>323 あ、自分で書いといて今気づいた。 この書き方だとループも外に括りだせるからO(n)で計算できる。 もとのコードだとO(n^2)だから圧倒的に性能が向上する。 というかアセンブラに手を出す前に論理レベルで最適化しろという典型例ですな。 まぁ、このスレで言うのは無粋だけどw
325 名前:デフォルトの名無しさん mailto:sage [2006/07/17(月) 22:30:29 ] うーん惜しいな。yだけじゃなくてxも最適化できる。 for(int iy = 0; iy < ye; iy++){ sumA += cy1; sumB += sy1; } for(int ix = 0; ix < xe; ix++){ sumC += cx1; sumD += sx1; } sum = sumC * (sumA+sumB) + sumD * (sumA-sumB); ま、こっちはオーダーレベルの最適化にならないがな。
326 名前:317 mailto:sage [2006/07/17(月) 23:01:47 ] ひーん、諦めかけてからレスがたくさんついてる〜 #あ、icc使用って書くの忘れてた。 そもそも、「コンパイラよりもアセンブラの方が絶対速い。ループ内部だけでもアセンブリ化しろ」と 主張する頭の固い人たちを納得させられればいいので、ループの最適化には手を出さずに済ませたいわけです。 で、「xmmレジスタは並列演算できるのだから絶対速い」というヒント(という名の指示)の元、 >317のようなコードを書いてみたわけですが。 処がこの程度のアセンブリ化ではC部分とのI/Fに時間を取られるようで効率が上がっていません。 実際元のソースをiccでコンパイルするとループをアンロールして4回分ずつ回すようです。 勿論SSE命令も使うし並列化オプションを指定すれば並列化してくれるし。 なので、このまま「保守性と開発工数を考えればコンパイラに任せたほうが無難」という報告をしてもいいのですが、 念のため(と技術的興味から)アセンブリ部分で無駄がないかを聞いてみたかったのです。 >>318 恐らく2回分ずつアンロールしたコードを書くと速そうですが、コンパイラも同じ程度のコードを出しそうです。 >>320 正直私には、gcc辺りのコードを書くのがやっと。iccに勝てるコードを書けるとは思いません。 #この場合、Cの単純な翻訳と言う意味で。 >>321 iccのマニュアルをさっと読んだ限りでは見た記憶がないのですが、調べてみます。 >>322-325 えーと、最終的なコードはもそっと複雑になるのでロジックレベルの最適化は>317で止めた次第です。 #後出しすんません。 ってことで、何かあれば引き続きお願いします。 #FPU命令とSSE命令って組み合わせるとどうなるのかなぁ。こればっかりはニモニック表にらめっこしてもわからん……
327 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 07:13:29 ] >恐らく2回分ずつアンロールしたコードを書くと速そうですが、コンパイラも同じ程度のコードを出しそうです。 インラインアセンブラの内部はコンパイラの最適化は効かない。 movsdやmovhlpsで1要素ずつ移動してるのが無駄だ。 >えーと、最終的なコードはもそっと複雑になるので それがどんなコードか書いてくれないとレスのしようがない。 >>324 のような最適化が最も重要なのに、それを検討する前から アセンブラの書き方を考えるのはちょっとおかしい。 >FPU命令とSSE命令って組み合わせるとどうなるのかなぁ。 それは面白いのでレスをしたいところだが、 どんな処理かわからんことには・・・。
328 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 07:27:13 ] >>327 >恐らく2回分ずつアンロールしたコードを書くと速そうですが、コンパイラも同じ程度のコードを出しそうです。 単純に、自前で書いてもコンパイラに任せても同じ程度のコードだと言っているだけだな。 アンロールしないと速度でないのは承知しているみたいだし。 >えーと、最終的なコードはもそっと複雑になるので 多少複雑になっても本筋は変わらんだろ。要はダメ出ししたいだけみたいだから。 >326はとっとと諦めてダメレポート書けばいいんでね。
329 名前:デフォルトの名無しさん mailto:sage [2006/07/18(火) 07:39:41 ] >>326 >iccに勝てるコードを書けるとは思いません。 結果は出てるんじゃんw アセンブラで速度を問題にする場合はある程度センスが要求されますので、あきらめた方が良いかとおもわれ
330 名前:デフォルトの名無しさん mailto:sage [2006/07/22(土) 18:26:54 ] Technical Assemblerの掲示板、もはや機能してないねぇ‥‥ 大量のスパムURLでログが流されまくり。
331 名前:デフォルトの名無しさん [2006/07/29(土) 20:09:22 ] 一週間ぶりにあげ
332 名前:デフォルトの名無しさん [2006/07/29(土) 21:02:14 ] 差を割った数をサマリーするのにサマリーの差を割ってる馬鹿ども
333 名前:デフォルトの名無しさん mailto:sage [2006/07/29(土) 23:47:36 ] だれか助けてくれ!! MIPSでクイックソートを作らないといかんのだが分からん・・・ 言語はMIPSベースの16ビットマイクロプロセッサ用 で、基本MIPSと同じです。 違う点、MULT DIV命令が無い 即値ロードはlhi $a,label で上位1バイト lliで下位1バイト読み出すものとする。 詳しくは、 ttp://72.14.207.104/search?q=cache:S58cP_y64_MJ:www.giga.it.okayama-u.ac.jp/~nobuya/jikken/02/p16.pdf+lli+lhi&hl=ja&ct=clnk&cd=3&lr=lang_ja ソートされる要素の数は0x4000番地に 要素は0x4000から以下2バイト刻みで入っているものとする。
334 名前:デフォルトの名無しさん mailto:sage [2006/07/29(土) 23:58:44 ] クイックソートの仕方は知ってるの?
335 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:09:36 ] >334 それは、Cでは書けるんですが、 アセンブラになるとちょっとお手上げ状態です。 あとレジスタが8個しか使えない制限つきだったりします・・・。
336 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:30:28 ] レジスタが使えないのなら、メモリを使えば良いじゃない! 文句があるならベルサイユへいらっしゃい!
337 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:45:21 ] あとメモリなんですが、0xFFFFまで使用可能なんですが、 データが1026個はソートできる仕様との事なので あんまり深いスタックは惚れません・・・
338 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:52:59 ] 最適化OFFにしてCで書いたのを逆アセンブラしたのを参考にするとかは?
339 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 00:58:05 ] Cでソース書いて スタックの使い方決めて レジスタを割り付けて 手動で1行ずつ変換
340 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 09:58:32 ] NASMで絶対間接far callを書きたいんだけどどう書いたらいいの?
341 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 15:43:04 ] masmで32bitだと call qword ptr mem だったかな? よく覚えてないけど。
342 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 20:36:46 ] >>340 call far [edx] call far [0xdeadbeaf] >>341 call fword ptr MEM
343 名前:デフォルトの名無しさん mailto:sage [2006/07/30(日) 23:43:52 ] >>342 のプログラムをコンパイルして実行したら不正な処理をしたとOSに怒られました! みなさんも気をつけてください!
344 名前:デフォルトの名無しさん mailto:sage [2006/07/31(月) 00:27:27 ] >>343 君もう来なくていいから
345 名前:デフォルトの名無しさん mailto:sage [2006/07/31(月) 12:43:27 ] 0xdeadbeef なら怒られないかも?
346 名前:デフォルトの名無しさん mailto:sage [2006/08/03(木) 18:42:07 ] C言語の x[n]=c1*delx という式をアセンブラに書き換えたらどうなるか必死に考えて mov eax,c1 mov ebx,delx mul ebx mov x[n],eax となるのではなかろうかと思うのですが、正しいですか。 これをVC++6.0でインラインアセンブラにしようとしたら、同じサイズのオペランドのが 必要とかでエラーでした。早くアセンブラを理解できるようになりたい。
347 名前:デフォルトの名無しさん mailto:sage [2006/08/03(木) 18:50:36 ] ebxをそんな用途に使う奴を始めてみた
348 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 00:52:54 ] >346 非常に基本的なことなんだが、まず x, n, c1, delx 全ての変数の型が不明。 仮に全てunsigned longだったとして、 mov eax,c1 mul delx で十分。 最後に x[n] という表記はナイ。
349 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 01:20:55 ] すっごい低レベルですが質問させてください。 「アセンブリの教科書」で勉強はじめたんだけど いきなりつまづいたの。P54のフラグレジスタの説明で mov al,7F inc al mov bl,0 sub bl,80 AX=0080 BX=0080 OV UP EI NG NZ NA PO CY ~~ ~~ 符号付き演算でAX=0080になるのはよく分かる。 (1000 0000)の1は符号ビットで 127+(-128)=-1にするため (1000 0000)は-128、(1111 1111)は-1と決められてる。 inc alで符号付き演算の桁上がりが生じたから オーバーフローフラグはOVとなる。 一方、符号無しの場合のsub bl,80では (0000 0000)-(1000 0000)=(1000 0000) つまり0-128=128の0は256扱いになってるから、 これってつまり(0000 0000)ではなしに桁上がりで (1 0000 0000)として扱われたってこと? 演算結果の桁上がりが生じてCYってのはそーいうこと? 一方が符号付きで他方が符号無しと判断されるのはなぜ?
350 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 01:21:57 ] CYの下線~~ずれた…
351 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 01:35:55 ] >>350 一般的に減算のあとのキャリーフラグは、ボローフラグの意味となる。 つまり、繰り上がりが生じたのではなく繰り下がりが生じたと言う意味。
352 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 01:47:10 ] >>351 あっ、なるほど。そのほうが意味的に納得です。 mov al,7F inc al が符号付きとして処理され mov bl,0 sub bl,80 が符号なしと処理された 扱いの違いの理由は何故でしょう? もしかしてalを使うと符号付きの演算扱いになるとか、でしょうか?
353 名前:デフォルトの名無しさん mailto:sage朝顔日記 [2006/08/04(金) 09:26:36 ] レジスタalとbを変えて試しても符号付、符号なしの結果の違いはないから これはincとsubの違いと見当をつけて先へ進むことにします。
354 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 10:43:51 ] あー、フォローするの忘れてた。 フラグリファレンスによると、x86系CPUではinc/decではCFは操作されない。 これは、8bitCPU時代からの伝統でキャリーをレジスタ(orメモリ)間で伝播させる用途で便利。 #最下位バイト同士をaddして、インデックスに使用するレジスタをインクリメントして2番目をadcして…… 尚、例えば68000の場合は対象がデータレジスタならフラグが影響を受けてアドレスレジスタでは影響を受けない。 この様に、フラグの振る舞いはCPUによって違うので、 実験から推測するのではなくリファレンスで調べておくことをお勧めする。
355 名前:デフォルトの名無しさん mailto:sage [2006/08/04(金) 11:41:10 ] >リファレンスで調べておくことをお勧めする。 了解です。ありがとう御座いました。
356 名前:デフォルトの名無しさん [2006/08/14(月) 23:13:45 ] Ollydbgってなんで公式サイトのファイルぶっこわれてるの?
357 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 23:50:21 ] >>356 今試したら問題なくDLできたよ 再DLでいけるかと www.ollydbg.de/
358 名前:デフォルトの名無しさん mailto:sage [2006/08/14(月) 23:58:37 ] >>356 OllyDbg日本語化パッチとOllyDbgQ&A hp.vector.co.jp/authors/VA028184/
359 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 11:08:26 ] acapulco.dyndns.org/doc/CodeAnalyst/simulation.htm
360 名前:デフォルトの名無しさん [2006/08/17(木) 12:41:45 ] 初歩的な質問なんですが mov WORD [100] 1 ってかくと ---------- 00000001 100番地 ---------- 00000000 101番地 ---------- ってメモリに書かれると思うのですが mov DWORD [100] 1 ってかくと ---------- 00000001 100番地 ---------- 00000000 101番地 ---------- 00000000 102番地 ---------- 00000000 103番地 ---------- の認識でいいでしょうか?
361 名前:デフォルトの名無しさん mailto:sage [2006/08/17(木) 14:10:12 ] CPUによって違う。 リトルエンディアンのCPU(インテルx86等)ならその認識でいいと思う。 あとアセンブラによって記法が異なるので、今度質問するときはCPUと 使用アセンブラを書いた方がいいかも。(その記法は初めて見た。)
362 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/18(金) 01:21:50 ] mov DWORD PTR [100],. 1 か
363 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 03:07:16 ] つーかレジスタ経由しないで転送できるん?
364 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/18(金) 03:21:09 ] たしかにx86じゃ無理だな。。。
365 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 03:29:53 ] 何このレベルの低いコテ
366 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 04:25:49 ] あれ、x86でmov mem,immて出来なかったっけ?
367 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 06:57:08 ] メモリ同士は不可だが、即値はできるだろ…
368 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 09:59:58 ] どのみちレジスタファイル上に展開してからストアするので団子もある意味正解。
369 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 10:15:48 ] 純CISC時代しか知らないのでそんな話されても理解できません。
370 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 18:53:57 ] ハードワイヤードロジック・・・ (;´Д`)ハァハァ
371 名前:デフォルトの名無しさん mailto:sage [2006/08/18(金) 23:59:19 ] エロいな。。。
372 名前:デフォルトの名無しさん [2006/08/19(土) 09:30:16 ] LINUXでMS-DOSのdebugみたいに 凡用レジスタ(ax,bx,cx...等)が表示するような ソフトってありますか?
373 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 09:34:23 ] >>372 「ぼんよう」って何? レジスタが何を表示するの? デバッグツールならgdbがあるけど。 #勿論汎用(はんよう)レジスタの値を表示することもできる。
374 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 10:35:57 ] 凡用レジスタ … 浮動小数点やSIMD演算など特別な機能はないが特に使い勝手が悪い訳でもない凡庸なレジスタ
375 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 11:24:52 ] 忘れられがちなreg15はeax/ax/alと姿を変える汎用レジスタより確かに凡庸かも知れん。
376 名前:デフォルトの名無しさん [2006/08/19(土) 12:49:54 ] >>373 おまえは誤字に反応しすぎだ。この変態や労が
377 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 13:25:57 ] (←なぜか変換できない)系の遊びにもいちいち突っ込んで回ってるんだろうな
378 名前:373 mailto:sage [2006/08/19(土) 13:33:39 ] >>377 いや、それらは99%放置。 いいじゃん、ちゃんと回答もしているんだから。
379 名前:デフォルトの名無しさん [2006/08/19(土) 14:24:16 ] リトルエンディアン しばしばビッグエンディアンより優れているとされる ビッグエンディアン しばしばリトルエンディアンより優れているとされる
380 名前:デフォルトの名無しさん [2006/08/19(土) 14:27:54 ] 小手先でなく真の実力が身につく本を紹介したまえ。 今時じゃない奴な。
381 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 14:39:16 ] つ『創るJava』
382 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 15:15:33 ] >>380 つ「IA-32 Intel(R) Architecture Optimization Reference Manual」
383 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/19(土) 15:32:49 ] 画像処理屋的には「アセンブラ画像処理プログラミング」あたりですかい あとは、先輩にとられて未だに返ってこないCQ出版社の2000円くらいの奴とか。 アレはイイ本だと思った。
384 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 15:43:03 ] アレ(x86アセンブラ入門)はいいよな。内容的には広く浅くだけど 自分でそれなりに調べたことのある人ならベストチョイス。安いし。
385 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 16:32:42 ] >>376 >>373 じゃないが,「凡用」は「はんよう」を変換しても絶対に出てこないので, 誤字以前の問題だと思うが.
386 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 18:03:22 ] >373 gdb使いにくいんですが 他に無いですか? OllyDbgきぼんぬ
387 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/19(土) 18:09:10 ] OllyDbgで汎用レジスタからマルチメディアレジスタまで見れるんじゃなかったっけ? ただ、SSE2以降の対応がされてなかったような。 Visual Studioのデバッガは結構強力だよ。
388 名前:デフォルトの名無しさん mailto:sage [2006/08/19(土) 18:13:36 ] 使ったことはないが、idbだっけ? インテルのデバッガはどうなんだろう。
389 名前:デフォルトの名無しさん [2006/08/20(日) 11:44:44 ] 団子ってアセンブリ言語はどれくらいできるの?
390 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/20(日) 12:56:24 ] 基本的にMM/XMMレジスタ周り。 SSE4がマイブームなのだがまだCore2Duoマシンが手元にないから困る。
391 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 13:20:14 ] >>390 Intel XeonのWoodcrestはどうよ? 30万円台からマシンが手に入るぜ
392 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/20(日) 13:25:18 ] 今の預金じゃ確実にローン計画だな
393 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 13:28:19 ] 詳しくはこちらへ www.apple.com/jp/
394 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 14:25:03 ] IntelのチューニングコンテストでWoodcrestを使わせてくれるよ。 #って、今言っても無意味か。
395 名前:デフォルトの名無しさん [2006/08/20(日) 14:51:32 ] >>392 仕事は何をしてるの?
396 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/20(日) 14:57:10 ] 画像系
397 名前:デフォルトの名無しさん [2006/08/20(日) 15:40:09 ] >>396 PGなの?
398 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 15:58:03 ] コテと遊ぶのはマ板でやってくれよ うざい
399 名前:デフォルトの名無しさん [2006/08/20(日) 16:30:07 ] >>396 仕事で使ってる言語は何?
400 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/20(日) 17:10:56 ] 主にBrainF*ck
401 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 17:36:11 ] woodcrestで簡単な速度調査くらいできるけどなんかリクある?
402 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 17:36:51 ] 90 eb fd の速度調査求む
403 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/20(日) 18:06:49 ] 整数演算でpand/pandn/por/pxorをandps/andnps/orps/xorpsに置き換えた場合のペナルティ って具体的に何クロックくらいなのか、とか。
404 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 18:09:08 ] 速度調査用Cソース求む。つーか、90 eb fdだけインラインアセンブラで並べて動かすの? #一体何のニモニックなんだろう。
405 名前:デフォルトの名無しさん mailto:sage [2006/08/20(日) 19:43:02 ] たぶん LABEL: nop jmp LABEL
406 名前:デフォルトの名無しさん [2006/08/24(木) 07:04:12 ] MessageBoxA出すもので1500バイトより小さいEXE作る方法あるかい?
407 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 07:38:00 ] あるお( ^ω^)
408 名前:デフォルトの名無しさん [2006/08/24(木) 07:45:56 ] MASMでできるかな( ^ω^)
409 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 08:05:05 ] >>406 セクション一個にすれば1024バイトにできると思うよ。 .textや.data兼ねるインポートセクション作ればいい。 それより小さいのは無理ぽ。
410 名前:デフォルトの名無しさん [2006/08/24(木) 08:12:09 ] 1024とかならバイナリエディタでないと無理かな? PEが分かれば簡単かな? MZの次のバイトは何なんですか?
411 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 08:53:48 ] で、答えたら、次のバイトは何ですかとなるわけだな!
412 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 09:00:33 ] 00400000 4D 5A 50 00 02 00 00 00 04 00 0F 00 FF FF 00 00 MZP........ 00400010 B8 00 00 00 00 00 00 00 40 00 1A 00 00 00 00 00 ク.......@...... 00400020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00400030 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 ............P... 00400040 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 2E 24 コ.エ.ヘ!クLヘ!.$ 超適当
413 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 09:28:55 ] とりあえずVC++でもリンカオプションいじれば1024バイトまでは達成できることを確認。
414 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 10:59:44 ] /NODEFAULTLIBと/ENTRYと/MERGEと/OPT:WIN98で512バイトは可能
415 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 11:33:14 ] ファイルのアラインメントサイズって512以下にできるんだっけ?
416 名前:デフォルトの名無しさん [2006/08/24(木) 13:56:04 ] _____ _ / \ | |/ _ノ ヽ、_ \ ・・・もしもしお母さん、僕だお、僕・・・そう、ヨシオだお・・・ | | o゚⌒ ⌒゚o \ ・・・事故起こしちゃって・・・相手を怪我させちゃったお・・・ | | (__人__) | | |/ _ノ ヽ、_ \ ・・・お金がいっぱい必要だけどお金持ってないお・・・ | | o゚⌒ ⌒゚o \ ・・・うん・・・うん・・・今から言う口座にすぐ振り込んで欲しいお・・・ | | (__人__) | | |/ _ノ ヽ、_ \ ・・・お母さん・・・迷惑かけてばかりでごめんなさい・・・ | | o゚⌒ ⌒゚o \ ・・・うん・・・ありがとう・・・がんばるお・・・じゃあね・・・ | | (__人__) | プチッ… _ / \ ツーツー…| |/ _ノ ヽ、_ \ ・・・ | | o゚⌒ ⌒゚o \ | | (__人__) | |_| ` ⌒´ / § ∂ __ _ /⌒ ⌒\ | |/( ●) (●)\ | |::::::⌒(__人__)⌒::::: \ | | |r┬-| | |_| `ー'´ / § ∂ ∽
417 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 14:14:01 ] バイナリエディタで作れる最小のPEは256バイトより若干小さくできるけど 不正なexeで認識する環境もある
418 名前:デフォルトの名無しさん [2006/08/24(木) 17:00:20 ] 256バイトより若干小さいそのEXEはPEフォーマットに従ったものですか? 普通のWindowsのEXE(Notepad.exeなど)はOEではなくOMFですか? >>412 00400000 4D 5A 50 ←これ何ですか( ^ω^)
419 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 17:22:18 ] ちなみに、4096byteより小さくしても、通常は意味がない。 というのは、ページサイズが4Kな上、 FAT32もNTFSも、普通はクラスタサイズが4K以上だから。 FAT16(FDDとか)を使うとか、ネット上での転送量を気にするとかなら わずかに意味があるかもしれないが それ以外は、ただの自己満足。
420 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 17:30:02 ] >>418 PEヘッダへのオフセットの最下位バイト。
421 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 17:46:25 ] >419 >ネット上での転送量 普通圧縮かけるから結局無意味。 てか、サイズを小さくする目的でアセンブラ使ってる人はもう居ないでしょ。 組み込み系ですら見かけない。
422 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 18:00:30 ] FDDはFAT12だった。 と、突っ込みが入る前に訂正しておこう。
423 名前:デフォルトの名無しさん mailto:sage [2006/08/24(木) 18:18:28 ] 288バイトでアッー! TVpQuzAAQABTU1BLU+sDAAAA/yUcAEAAHAAAAPAAAAAAAAAA4AAAABwAAAAAAADDg0GDYoFbgUkA AAAAQAAAAFBFAABMAQEAAAAAAAAAAAAAAAAA4AAPAQsBBQyAAAAAAAAAAAAAAAACAAAAAAAAAOAB AAAAAEAAEAAAABAAAAAEAAAAAAAAAAQAAAAAAAAA4AEAAGABAAAAAAAAAgAAAAAAEAAAEAAAAAAQ AAAQAAAAAAAAEAAAAAAAAAAAAAAAGAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c2Vy MzIuZGxsAAAAAAAAnQFNZXNzYWdlQm94QQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAE AAAA
424 名前:デフォルトの名無しさん [2006/08/25(金) 09:17:03 ] >>420 その素敵な日本語は飽きるほど見ました。 もーそこは分かりました( ^ω^) >>412 それは実行可能ですか?
425 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 09:30:59 ] DOS STUBとPEヘッダの間にリンカが埋めるデータの意味が未だにわからん クリアしても動作に支障はないし
426 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 10:16:29 ] 必ずRichって書いてあるよな >>423 アッー!
427 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 10:38:27 ] 前に1000バイトのテトリス(Win32アプリ)を見たな‥‥
428 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 16:20:52 ] >>427 これか? 昔は動いたけどXPSP2だと動かないっぽい・・・ TVpHZGkzMi5kbGwAQWRqdXN0V2luZG93UmVjdABDcmVhdGVXaW5kb3dFeEEAU2V0V2luZG93TG9u Z0EAQAAAAFBFAABMAQEAuzQRQACJ2DHJ6xmQaAAPAQsBU3RyZXRjaERJQml0cwBIAAAAsWyNPAuQ 6wwAAEAAABAAAAACAACxF6uDxyjrEAQAAAAAAAAAABAAAYQDAACrkOsCAgDrEAAAEAAAEAAAAAAQ AAAQAADi0OskAgAAAAAAAAAAAAAAXBEAADwAAAAAAAABABAAAIQBAAAAAgAAagBoAADIEI1zUOsE 4AAA4LEM86vGRgh4xkYM5Fb/UwhqAGgAAEAAagBqAItGDCtGBFCLRggrBlBqIGogaAAAyBBqAGgU A0AAagD/Uwxo1wFAAGr8UFD/UxiJQ1T/UxCNs+wEAABqAGoAagBW/1MchcB0Blb/UyDr7MONkywB AAAxwLDYMe2xC40sCIssqoXtdALi9IXJdROJxY08qo130LEM86WD7Qx98evZg+gMfdSNU2CLAkCD +AZ+AjHAiQLHQ2Tt////iwqLRIvkiUNoU1ZXg8NQjXMYMcAxybEEi1MUD74+RgH6jZST3AAAAAsC i3sQi3y7lDE64uNfXlvDYLs0EUAAi3QkKIP+AnUFagD/UyQx/4P+D3QVgf4AAQAAdQaLfCQs6wdh /yVIEUAAaKcBQAD/c2iNc2SLLv9UJASNU1yLi/wEAACJyCsCg+h/fgaJCjH/6z2D/yZ1JWCLS2CF yXQcjXtosQQPvgdQmTHbswn3+2vYkVhrwAwp2Kri6WGD/yV1Av8Og/8ndQL/BoP/KHUDgwYM/1Qk BIXAdBr/VCQEiWtkiwQkiUNo/1QkBIX/dQXowP7//4PECGggAMwAagBoAANAAI2DLAEAAFBqE2oK agFqAWjkAAAAanhqAGoA/3NU/xNhwhAARGVmV2luZG93UHJvY0EAR2V0TWVzc2FnZUEARGlzcGF0 Y2hNZXNzYWdlQQBQb3N0UXVpdE1lc3NhZ2UAKAAAAAwAAADs////AQAgAAMAAABFRElUAAEMDQAB Cwz/AAEN/wAMDf8AAf4A/wELAAH/DFgAAAAAAAAACgAAABsAAAArAAAAwgIAAF4DAADRAgAA3QIA AO4CAAAAAAAAR2V0REMAAAACAAAANBEAAFVzZXIzMi5kbGwAAHADAAA8EQAA
429 名前:デフォルトの名無しさん [2006/08/25(金) 17:07:20 ] >>409 セクションとはassumeのことですか? csとdsを同じにしたらEXEではなくなるんじゃないですか( ^ω^)
430 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 19:15:35 ] やっとできたー たぶんPEの最小サイズ? TVoAAFBFAABMAQEATWVzc2FnZUJveEEAqAAPAQsBdXNlcjMyLmRsbAAxwLkpAAAAUGjEAEAA6yYA AEAABAAAAAQAAAAKAAAAAAAAAAQAAAAAAAAA6QAAAMQAAADMzOtcAgAAAAAAEAAAAAEAAAAQAAAA AQAAAAAAAgAAAAAAAAAAAAAAqAAAABQAAACBQIFpgUCDqV+DqQqBvIHcgsLfgVvfKYLCgfQARAAA AAAAAAAAAAAAHgAAAEQAAABojABAAFDrHDIzM2J5dGUA6QAAAAAAAADpAAAAAAAAAAAAAAD/FUQA QADDzCA=
431 名前:デフォルトの名無しさん mailto:sage [2006/08/25(金) 20:02:15 ] 233が最小だと思ってたけどもう少し小さくできそうだ・・・
432 名前:デフォルトの名無しさん mailto:sage [2006/08/26(土) 01:29:13 ] >>406
433 名前:デフォルトの名無しさん mailto:sage [2006/08/28(月) 01:32:20 ] >>428 はXPSP2と2003SP1だと動かないねぇ‥‥ >>430 のは動くけど。
434 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 00:28:35 ] >>429 Win32のEXEはCS=DSが普通だし、 DOSのEXEもスモールモデルはCS=DS。 COMでもCS≠DSにすることは不可能ではないけどちと話がずれるな。
435 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 03:25:13 ] スモールモデルはCS≠DSだったと記憶してるが・・・
436 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 03:46:13 ] CS=DSはCOMだろ。
437 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 04:06:28 ] CS=DSはタイニーだな。
438 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 07:32:27 ] MASMでスタックサイズを指定するにはどうしたらよいですか? _MessageBoxA@16だけだからスタックは16バイトでよいですか?
439 名前:デフォルトの名無しさん mailto:sage [2006/08/29(火) 13:31:19 ] nasmとmasm32 があるけど使い方がわかりません。 hello worldと表示させる.asmはあるのですが このあとnasmやmasm32 を使って helloworld を表示する方法をおしえていただけませんか?
440 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 01:54:52 ] >>434 Win32だとCS=0x1b、DS=0x23だったような。ollydbgで確認。
441 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 10:08:45 ] >>440 わかっているくせに
442 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 19:27:08 ] >>441 キョン君のこと好きなんでしょ
443 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 20:12:51 ] でも象さんの方がもっと好きです
444 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 23:55:52 ] にら
445 名前:デフォルトの名無しさん mailto:sage [2006/08/30(水) 23:58:34 ] れば
446 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 00:01:32 ] かゆ…
447 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 00:06:38 ] うまい、うますぎる。
448 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 01:43:30 ] 風が語りかけます。
449 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 06:09:19 ] アッー!
450 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 11:47:38 ] 十万行アセンブラ
451 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 14:04:48 ] おえーおえー
452 名前:デフォルトの名無しさん [2006/08/31(木) 19:25:35 ] eax:edx の内容を mm0 に転送するにはどう書いたらいいんでしょうか?
453 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/08/31(木) 23:18:23 ] movd mm0, eax movd mm1, edx punpckldq mm0, mm1
454 名前:デフォルトの名無しさん [2006/09/01(金) 08:32:02 ] VC6 で アセンブラの pmovmskb 命令を使用するにはどうしたらいいんでしょうか?
455 名前:デフォルトの名無しさん [2006/09/01(金) 08:47:59 ] つ[VC2005 Express]
456 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 08:57:19 ] 2500バイト未満のMessageBoxのMZってどうやって作るんですか?
457 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 09:44:06 ] >>456 アセンブラでMessageBox呼び出しだけでどうやったら2499バイトを超える事ができるのかが逆に疑問だ
458 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 09:56:15 ] 表示するメッセージが2500バイト以上なんだろw
459 名前:デフォルトの名無しさん mailto:sage [2006/09/01(金) 10:38:37 ] それだ!
460 名前:デフォルトの名無しさん [2006/09/08(金) 11:39:40 ] gas/i386で pushl %ds こういう命令が書かれてたとき、 スタックポインタに加算される値は2?それとも4?
461 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 12:14:16 ] 4に決まってるだあ
462 名前:デフォルトの名無しさん mailto:sage [2006/09/08(金) 12:29:38 ] さんくすこ
463 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 19:19:17 ] 『独習アセンブラ』で、今日からやりだした超初心者なんですけど、 x86系Linuxのnasmで ”1”の文字 一文字表示しようと思うのですが、 $ nasm -f elf hajime.asm $ ld -s -o hajime hajime.o でアセンブルもリンクも問題なくできるのですけど、 $ ./hajime [Enter] $ セグメンテーション違反です って表示され叱られてしまいました! どなたかご教示願いないでしょうか。 ソースは以下のようになってます。nasmは、 nasm-0.98.39を使ってます。 global _start _start: mov eax, 31h ; 文字 "1" push eax ; スタックにバッファを設定 mov eax, 4 ; 出力(sys_wrigte) mov ebx, 1 ; ファイルハンドル(1=標準出力) mov edx, 1 ; 1文字出力することを指定 mov ecx, esp ; 書き込むバッファ int 0x80 ; 出力する pop eax
464 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 20:15:23 ] プログラムの終端でのエラーではないでしょうか。 最後にプログラム終了の命令を追加してみてください。 mov eax, 1 ; sys_exit mov ebx, 0 ; 終了ステータスコード int 0x80
465 名前:デフォルトの名無しさん [2006/09/20(水) 21:10:58 ] >>464 早速のご教示、ありがとうございます。 書かれている命令を追加してみましたが、結果は変わりませんでした。 『独習アセンブラ』に書かれている、次のサンプル「Hallo assembler」の方はキチンと表示 されるのに一番最初のサンプルコードがトラブってしまって、まいってます!
466 名前:( ^ω^)飛来ブーン [2006/09/20(水) 21:23:16 ] あげ
467 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 21:29:56 ] linux nasm>Google で最初に出るサイトのasm05.htmlに似たようなのがある push eaxの前にpusha、pop eaxの後にpopaを入れてみてはどう?
468 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 21:58:02 ] >>467 pusha、pop を入れてみましたが、結果は、まったく変わりません。 コードを書き足しているのにまったく変わらないというのも 何か、おもしろいですね。
469 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 22:08:54 ] pusha、popa は不要。 global _start _start: mov eax, 31h ; 文字 "1" push eax ; スタックにバッファを設定 mov eax, 4 ; 出力(sys_wrigte) mov ebx, 1 ; ファイルハンドル(1=標準出力) mov edx, 1 ; 1文字出力することを指定 mov ecx, esp ; 書き込むバッファ int 0x80 ; 出力する pop eax mov eax, 1 ; sys_exit mov ebx, 0 ; 終了ステータスコード int 0x80 で動作したよ。nasm-0.98 と nasm-0.98.38 で確認。
470 名前:463 mailto:sage [2006/09/20(水) 22:30:17 ] >>469 家では、やはり「 セグメンテーション違反です」が出てしまいます orz 先ほども書きましたが、次のサンプルコードの「Hello assembler」は順調に アセンブルもリンクも 実行もウマクいくんですけど … nasm-0.98.38 をgetして、コンパイルし直してみます。 みなさん、Thanks
471 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 22:54:40 ] int 0x80 を int 0x08 とタイプミスしてました、な〜んてことはないよね? いや、恥ずかしながら俺がそうだった。 見つけたときは全身脱力したよ。俺の1週間は何だったんだってね。
472 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 22:58:24 ] > 全身脱力 全身脱毛に見えた
473 名前:463 mailto:sage [2006/09/20(水) 23:28:07 ] >>471 私もint 0x08をサンプルの「Hello assembler」の方でやってしまいました。 これやると、「 セグメンテーション違反です」がモロ出るんですよね。 今、 nasm-0.98.38 をgetしてきましたが、今度は、nasmのコンパイルが通らない! 泥沼に嵌まりこんでしまいました。 orz
474 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 23:38:48 ] >>473 ttp://prdownloads.sourceforge.net/nasm/nasm-0.98.39-1.i386.rpm?download $ rpm -Uvh nasm-0.98.39-1.i386.rpm
475 名前:デフォルトの名無しさん mailto:sage [2006/09/20(水) 23:47:42 ] $ apt-get install nasm
476 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 02:47:09 ] >>473 nasmのコンパイルが通らないとは nasm自体のソースコードがコンパイルできないということですか? でしたら>>474 ,475などで解決できると思うのですが。 それともnasmのインストールは完了していて、サンプルコードがアセンブルできない ということですか?
477 名前:463 mailto:sage [2006/09/21(木) 06:40:38 ] >>476 おはようございます。 私の場合は、nasmをソースからコンパイルしてinstallしています。 nasm-0.98.39.tar.bz2を展開してコンパイルして使いだしていたのですが、 nasm-0.98.38を使ってる人>>469 でのアセンブリのソースコードが問題なく アセンブルが通るということなのでnasm-0.98.38.tar.bz2をゲットしてコンパイル したという訳なんです。
478 名前:463 mailto:sage [2006/09/21(木) 12:37:21 ] お騒がせいたしました。自己解決しました。 ソース↓ section .data ; セグメンテーション違反回避 global _start _start: mov eax, 31h ; 文字 "1" push eax ; スタックにバッファを設定 mov eax, 4 ; 出力(sys_wrigte) mov ebx, 1 ; ファイルハンドル(1=標準出力) mov edx, 1 ; 1文字出力することを指定 mov ecx, esp ; 書き込むバッフ int 0x80 ; システムコール,出力する mov eax, 0ah ; 0ah push eax ; mov eax, 4 ; は mov ebx, 1 ; 改 mov edx, 1 ; 行 mov ecx, esp ; 用 int 0x80 ; システムコール,改行する pop eax ; eaxの回収 mov eax, 1 ; sys_exit mov ebx, 0 ; 終了ステータスコード int 0x80 ; システムコール,終了する
479 名前:デフォルトの名無しさん mailto:sage [2006/09/21(木) 13:53:05 ] それは駄目。 .dataセクションにはグローバル変数等を配置することになっているので、 そこにコードを記述することはできない。 コードを配置するのは.textセクション。 スタックにバッファを置くために2回pushしているが、1回しかpopしていない。 それから改行を出力するために苦労した痕が見受けられるが、次のように すればプログラムを短縮できる。 mov eax, 0x0a31 push eax mov eax, 4 mov ebx, 1 mov edx, 2 mov ecx, esp int 0x80 pop eax
480 名前:デフォルトの名無しさん [2006/09/22(金) 02:03:54 ] フロッピーからデータの読みだしについてです。 シリンダ0番、セクタ2番のプログラムを0x8000に読みだして実行 したいのです。 最後のJMPで*を付けると実行出来ないのですが、理由を教えて下さい。 MOVW $0x800, %AX MOVW %AX, %ES MOVB $0x00, %CH MOVB $0x02, %CL MOVB $0x00, %DH MOVB $0x00, %DL MOVB $0x02, %AH MOVB $0x01, %AL INT $0x13 JMP *0x8000
481 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 03:38:12 ] 環境や前提条件をまず示してくれ。話はそれから。 おそらくブート時のロード処理だと見当はつくが。 或いは逆アセしてみて意図したコード(0x8000への絶対ジャンプ)に きちんと変換されたかを確認するとか。
482 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 07:27:25 ] *0x8000だと、0x8000番地にある16ビットの値をアドレスとして処理する。 0x8000番地に飛ばすならjmp $0x8000が正解だと思う‥‥
483 名前:482 mailto:sage [2006/09/22(金) 07:52:23 ] >>480 のコードをちょっと修正。文法からGASを使っていると仮定。 バッファのアドレスを指定するときはBXレジスタも設定しないと駄目かと。 セグメント指定しているなら、セグメント間ジャンプで飛ばした方が確実。 MOVW $0x800, %AX MOVW %AX, %ES MOVW $0, %BX ; ES:BX = 0x800:0x0 MOVB $0x00, %CH MOVB $0x02, %CL MOVB $0x00, %DH MOVB $0x00, %DL MOVB $0x02, %AH MOVB $0x01, %AL INT $0x13 LJMP $0x800,$0
484 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 12:32:15 ] >>481-483 サンクス。 >>481 すいません。 OS:FreeBSD6.1 アセンブラ:GCC その他:ld、objcopy エミュレータ:bochs 作っている物:ブートの最初の512byteのプログラム >>482 jmp $0x8000だとコンパイルエラーになります。 www.gnu.org/software/binutils/manual/gas-2.9.1/html_chapter/as_16.html の Absolute (as opposed to PC relative) call and jump operands must be prefixed with `*'. If no `*' is specified, as always chooses PC relative addressing for jump/call labels. を見て絶対アドレスでJMPする場合「*」が必要なのかなと思いました。
485 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 13:08:06 ] >>482 「*」を付けた際の動作は、御指摘の通りでした。 解決できました。 ありがとうございました。
486 名前:463 ◆RMO61H2xHE mailto:sage [2006/09/22(金) 20:27:49 ] >>479 ご教示、ありがとうございます。とても助かりました。 今度は、こんな問題で引っかかっています。 eHllo, World としたいのですけど Helelo, Worldとなってしまいます! section .data; データセクションの定義 messagedb'Hello, World', 0Ah lengthequ$ -message; 文字の長さ section .text global _start _start: movedx, length; 文字列の長 movecx, [message] ; 以下の3行でmsgとmsg+1の内容を入れ換える xchgecx, [message+1]; mov[message], ecx; movecx, message; 出力する文字の指定 movebx, 1; ファイルハンドル(1=標準出力) moveax, 4; 出力(sys_wrigte) int0x80; システムコール,出力する moveax, 1; sys_exit movebx, 0; 終了ステータスコード int0x80; システムコール,終了する
487 名前:デフォルトの名無しさん [2006/09/22(金) 21:03:09 ] GNU asについて質問です。 lss 20+4(%esp), %esp と、ESPとSSに1命令で値をつめてるコードがあったのですが、 この20+4()ってのはどういう意味なんでしょうか?
488 名前:デフォルトの名無しさん [2006/09/22(金) 21:11:12 ] MMX の質問です pand mm0, mm1 を実行し結果がゼロになっても、ゼロフラグが立たないようです。 ゼロかどうかをチェックするにはどうしたらいいんでしょうか?
489 名前:463 ◆RMO61H2xHE mailto:sage [2006/09/22(金) 21:13:04 ] スペースが無視されたみたいなので、もう一回送ります。 section .data ; データセクションの定義 message db ' Hello, World ', 0Ah length equ $ -message ; 文字の長さ section .text global _start _start: mov edx, length ; 文字列の長 mov ecx, [message] ; 以下の3行でmsgとmsg+1の内容を入れ換える xchg ecx, [message+1] ; mov [message], ecx ; mov ecx, message ; 出力する文字の指定 mov ebx, 1 ; ファイルハンドル(1=標準出力) mov eax, 4 ; 出力(sys_wrigte) int 0x80 ; システムコール,出力する mov eax, 1 ; sys_exit mov ebx, 0 ; 終了ステータスコード int 0x80 ; システムコール,終了する eHllo, World としたいのですけど Helelo, World と表示されます!
490 名前:487 mailto:sage [2006/09/22(金) 22:01:16 ] コンパイルされたものをobjdumpでのぞいたら、 lss 0x18(%esp),%esp こういう風に変換されてました。 よく調べもせずに質問してすみませんでした。
491 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 22:12:08 ] >>489 mov cl, [message+2] xchg cl, [message+3] mov [message+2], cl
492 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 22:56:07 ] なんか 春だな・・・
493 名前:463 ◆RMO61H2xHE mailto:sage [2006/09/22(金) 22:56:18 ] >>491 ありがとうございます。 eHllo, Worldとなりました。アセンブリって意外とレジスタの動きが分かりやすいん ですね。 本や、ネットで検索しながらやってるんですけど、Linuxのnasmで 初心者に分かりやすい解説は、殆んどないんで困ってました。
494 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 23:18:49 ] どっかにnasm本家のマニュアルの日本語訳があったはずだが。 あれで十分よ
495 名前:デフォルトの名無しさん mailto:sage [2006/09/22(金) 23:19:53 ] ってかmasmはMS公認で無料になったか。 イイジダイダナー
496 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/09/23(土) 05:38:45 ] >>488 MMX演算はフラグレジスタを更新しない。 いちど汎用レジスタに転送してから比較する必要がある。 0かどうかだけを判定するだけなら、たとえば packssdw mm0, mm0 movd eax mm0 test eax, eax
497 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 18:56:59 ] Z80ですけど DAAってハーフキャリーは0になるの?それとも変化するの?どっち?
498 名前:デフォルトの名無しさん mailto:sage [2006/09/23(土) 20:05:47 ] 変化する
499 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 21:57:47 ] Hello, Worldを10回表示して改行したいんですけど、 下記のソースを弄ってみましたが、よく分からないので教えて頂けないでしょうか。 section .data msg db 'Hello, World', 0ah len equ $ -msg section .text global _start _start: mov eax, 4 ; 出力 mov ebx, 1 ;(1=標準出力) mov ecx, msg ; mov edx, len ; 文字列出力 int 0x80 ; 出力 doit: dec ecx ; ecxをデクリメントする jecxz endquit ; ecxがゼロならジャンプ jmp doit ; doitへジャンプ endquit: mov eax, 1 ;(sys_exit) mov ebx, 0 ; 終了ステータスコード int 0x80 ; 終了
500 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 22:49:24 ] >>499 それじゃ一回だけ表示された後、しらばく後かすぐに終了するだろ。 int 0x80 ; 出力 doit: dec ecx ; ecxをデクリメントする jecxz endquit ; ecxがゼロならジャンプ jmp doit ; doitへジャンプ このdoit以下何もやっていないと同じだぜ? なぜecxをデクリメントして0になったら終了になるん?何目的だ? たぶんint0x80は文字列表示機能だと仮定するなら、 ediにでも0xaを入れておいて、 dec edi jnz _start ← ゼロじゃなけりゃジャンプっての にすればええ。
501 名前:499 mailto:sage [2006/09/26(火) 23:28:28 ] >>500 > それじゃ一回だけ表示された後、しらばく後かすぐに終了するだろ。 その通りなんです。弄っているうちに わけわからなくなってしまい、 1回だけ表示するプログラムに戻したものを書き込みました。 >499 の投稿は下記のDOSのプログラムをLinux上で jecxz を使って同じような動作を 再現できないか試行錯誤の最中だったんです。 ; DOS プログラム bits 16 org 0x100 mov ah, 9 ; 文字列出力指定 mov dx, msg ;出力する文字列 mov cx, 10 ; cxレジスタの値を10にする doit: int 21h dec cx ; cxを1だけ減らす jcxz endquit ; cxがゼロならendquitへ jmp doit ; doitへジャンプ endquit: mov ah, 4ch mov al,0 int 21h msg db "Hello, World", 0dh, 0ah,"$"
502 名前:デフォルトの名無しさん mailto:sage [2006/09/26(火) 23:44:57 ] システムコール呼ぶときecxレジスタ使ってるだろ? そんくらい気ずかん?(´・ω・`)
503 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 01:45:08 ] >>501 答えは分かるがあえて書かない。自分で考える事が上達には大事だしな。 先ほど書いたようにdiあるいはsiをcxの代わりにカウンタとし、 dec di jnz また文字列出力する場所 ってな感じにするのが良い。 あとint21hの後のレジスタの値は保障できないと考えた方が一応はいいと思うから、 doitの位置を変えた方が確実だと思う。
504 名前:デフォルトの名無しさん [2006/09/27(水) 09:36:16 ] x86CPUで、32ビットの値を3倍するとき、 x = x * 3; と、 x = (x<<1) + x; はどちらが高速なんですか?
505 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 10:02:43 ] >>504 スループットは上の方がいいが、 レイテンシは下の方がいい。 CPUによるけど。 どちらが速いかは周りの処理にもよる。 でも、x86ならこれが一番速いよ。 lea x,[x*2+x]
506 名前:デフォルトの名無しさん mailto:sage [2006/09/27(水) 15:00:54 ] ていうか、いまどきのコンパイラは 3倍するのはleaに最適化してくれますよ。
507 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/09/27(水) 22:23:36 ] Pen4だとこれでも速かったりwww mov edx, eax add eax, eax add eax, edx
508 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 00:52:21 ] >>507 シフトが add の 8 倍遅い変態 CPU を持ち出すのは反則だと思いまつ。
509 名前:デフォルトの名無しさん mailto:sage [2006/09/28(木) 01:18:15 ] ペン4のALUは糞すぎるなw
510 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/09/28(木) 01:23:14 ] 依存関係を高いクロックによって解決するという手法は全てが間違いだった訳じゃないけど クロックを重視したデータキャッシュが小さすぎたりパイプラインが長すぎたり 熱すぎたりで、全体としてマイナス要素が大きかったのが敗因ですな。
511 名前:デフォルトの名無しさん [2006/09/30(土) 18:11:57 ] スタックを使って A B と表示させようと思うのですけど、ウマクいきません!? ご教示 お願いできないでしょうか。 section .text global _start _start: movdl, 0x41 ; "A" push dx call putchar pop dx mov dl, 0x42 ; "B" push dx call putchar pop dx mov eax, 1 ; sys_exit mov ebx, 0 ; 終了ステータスコード int 0x80 ; システムコール,終了する putchar: ; スタックの文字を出力する サブルーチン push esp mov ebp, esp sub esp, 0x40 ; ローカルスタックスベース mov ebx, [ebp+4] ; 最初のパラメータ mov dl, bl mov eax, 4 ; sys_write mov ebx, 1 ; ファイルハンドル(1=標準出力) mov ecx, esp ; 書き込むバッファ mov edx, 2 ; 文字出力することを指定 int 0x80 ; システムコール,出力する mov esp, ebp ; sub esp,0x40を取り消す pop esp ret
512 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 18:27:46 ] 32bitモードでdxレジスタなんか使うなよ・・・ あと最初のパラメタは[ebp+4]じゃなくて[ebp+8]だボケ
513 名前:ボケ [2006/09/30(土) 19:15:48 ] >>512 早速のご教示ありがとうございます。 ご指摘のdxをedxとし[ebp+4]を[ebp+8]に直してやってみたのですけど、 結果は変わらず、何も表示されなくて ただ改行されただけでした。 Cの参考ソースはけっこうありますけど、アセンブルってほとんどないですね!
514 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 20:05:55 ] >>513 最後に0x0aも出力してみれ。
515 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 21:58:20 ] >mov ecx, esp ; 書き込むバッファ ここ間違っているのでは 既に40引いてしまっているのに・・・
516 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:04:24 ] lea ecx,[ebp+8]とかじゃね?
517 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:17:03 ] これはひでえ。釣り…なのか…?まあいいや。 putcharの先頭部分は push ebp ; espじゃねーぞ mov ebp, esp の間違い。それに伴ってretの前も pop ebp に修正。 sub esp, 0x40 では 0x40 も引く必要ない。0x4で十分。 「最初のパラメータ」コメントの次の mov dl, bl は何やってんのか意味不明。 ここは mov [ebp-4], ebx に変更。 putcharというからには出力文字数は1文字だろ。mov edx, 1 に修正。
518 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:34:25 ] > Cの参考ソースはけっこうありますけど、アセンブルってほとんどないですね! だったらC言語で書いてみるべし。 /* putchar2.c */ #include <unistd.h> void putchar2(int ch) { write(1,&ch,1); } int main(void) { putchar2('A'); putchar2('B'); } そしてこいつを -S スイッチつけてコンパイルしる。 $ gcc -S putchar2.c コンパイラがどんなコードを吐くか、自分のものと見比べるべし。 最適化オプションも併せて指定するといいかもな。
519 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:37:26 ] gccの最適化は最初は知らないほうがいいんじゃないかw
520 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:40:35 ] どうして?ちょっとだけでいいから教えて・・
521 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:48:43 ] そしてICCとか最近のVC++で最適化コンパイルしてしまって余計混乱すると。
522 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 22:53:44 ] こんなガリガリのコードじゃたいして最適化できねぇw putchar2はwriteをコールするだけだから関数の存在が消えてしまう可能性はあるが。 >>520 高度な最適化コンパイラは凡人の考えの及ばぬような超変形型ロジックを組むことがあるから。
523 名前:ボケ mailto:sage [2006/09/30(土) 22:59:17 ] >>517 釣できるほどのウデがあればいいんですけど… 貴方の仰る通り、>511の投稿には誤りがたくさんありました。 言われた通りにやったら AB と表示されました! 改行はしないみたいですけど、 改行は組めますので、後は簡単です。 Thanks
524 名前:デフォルトの名無しさん mailto:sage [2006/09/30(土) 23:37:48 ] >>522 ふ〜ん
525 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 01:50:05 ] >>522 コンパイラ程度の最適化が超変形? じゃあ人が書いたコードは読めねぇなw
526 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 02:10:08 ] いや、人間様がそれ以上にド汚い変形かますことができるのも確かだが、 きょうびのコンパイラが超変形かますのは事実だろ。 何を噛み付いてるんだ。 カルシウム足りないのか。
527 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/01(日) 02:25:38 ] i *= 32; を add eax, eax; add eax, eax; add eax, eax; add eax, eax; add eax, eax; に展開するコンパイラとかな。
528 名前:デフォルトの名無しさん [2006/10/01(日) 02:30:21 ] そんな大した事無いレベルの最適化でグダグダ言うなよ
529 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 02:39:09 ] VC++やICCの定数除算の最適化はなかなかエグかった気がするが
530 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 03:04:16 ] 漏れはVC2005のたらい回し関数でたまげた。
531 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 03:36:33 ] >>527 GCCでは無数にある最適化オプション組み合わせていくら頑張ってもシフトだった。 -O0ですらシフトだったw VC++のリリースコンパイルでもシフトだから、それが最善じゃないのか?
532 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 05:26:38 ] mov eax,dword 051eb851fh imul ecx sar edx,byte 005h mov eax,edx shr eax,byte 01fh add edx,eax; / 100 これとか実行してみるまで何やってるかわからなかった(VC6)。
533 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 05:38:03 ] >>527 いや、それ普通。 VCのそれは、シフトが異常に遅い某CPUに配慮したものと思われ。 多分だけど。
534 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 09:07:13 ] P○n4は*32でもシフトより加算の方が早いのか?w
535 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 09:27:21 ] >>534 ちょっと上くらい読めや>507-509
536 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/01(日) 14:54:18 ] Pen4ではshlのレイテンシは4クロック、addは0.5クロック 依存関係チェインが深い場合は加算を繰り返した方ほうが早い VCじゃなくて、ICCの-QxWとか-QxNとかのPen4専用オプションだったような >>532 除算はクロック数やたらかかるから定数積算とシフトに置き換えるのは常套手段
537 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 17:29:21 ] 常套手段て…そういう裏技があるのなら標準でALUにそのロジックを積んで もらった方がどれだけわかりやすいことか。 あるいは除算命令でこのシーケンスと同じμop生成するとか。 書きたいことはまだあるけどこれ以上はちょっとスレ違いになるので遠慮しよう。
538 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 17:53:12 ] いや、除算を他の演算に置き換えるロジックってすげー大変なんだが。 何で割るかによって全く違うロジックになるから。 そんなもんにトランジスタ突っ込む余裕なんかない
539 名前:デフォルトの名無しさん mailto:sage [2006/10/01(日) 18:33:31 ] >>532 は>>529 と繋がっていたのか、気づかなかった。 定数除算限定で、しかも最適化のタイミングはコンパイル時じゃないといけない 程度に複雑なアルゴリズムなのか。 随分と頓珍漢なことカキコんじまったな(恥
540 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:19:27 ] テキストエディッタで.asmファイルを作成してコマンドプロンプトでアセンブルしようと思ったのですがうまくいきません。 ml〜コマンドは合ってるはずなのですが。 知恵をください。 XPSP2です
541 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:23:42 ] >>540 それだけの情報で何かわかると思ってんのか。 せめてエラーメッセージくらい貼れよ。
542 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:31:03 ] 'ml' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ってなります。
543 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:32:22 ] >>542 アホか。パス通してないだけでないか。
544 名前:デフォルトの名無しさん mailto:sage [2006/10/04(水) 23:46:16 ] 先生できませnorz
545 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 05:03:25 ] アセンブラはちゃんとインストールされてるのか? 質問から察するに、それすら出来ていなさそうな気がする。 WinXPのDOS窓からの操作なら、DOS窓開いたらまずこのコマンドを打ち込む。 > set Path=%Path%;(ml.exeのあるディレクトリのパス) 開くたびにこれを入力するのが面倒くさいならバッチファイルに書くなり GUIから環境変数に登録するなり何なりと。
546 名前:デフォルトの名無しさん mailto:sage [2006/10/05(木) 20:38:09 ] 先生無事できますた。ありがとん
547 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 10:06:06 ] 割り算が理解できん。 なんであんなことになってんの?
548 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 11:35:36 ] その割り算は>>532 のことか? 1ワードが無限のビット長だとすると、原理的には x / 100 == (x / 100) << 32 >> 32 という当たり前の恒等式を巧みに利用する。 ここでは 2のx乗 を 2^x と表現するので、そのつもりで。 x回の左シフトは、算術的には *(2^x) を意味する。 その性質を利用すると、右辺は => x / 100 * (2^32) >> 32 => x * ((2^32) / 100) >> 32 と変形できる。最適化のとき予め (2^32) / 100 を計算しておく。 この定数をnとおくと、除算の商は (x * n) >> 32 で求めることができる。 つまり定数の除算は乗算とシフトに変換できるというわけ。 実際はビット長が無限大ということはないし符号も考慮しないといけないので これよりも少し複雑な処理になる。
549 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 12:14:56 ] 精度が落ちていいなら inc ecx mov eax, dword 028f5c28h imul ecx でedxに解が得られないかな。
550 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 12:35:00 ] 無符号整数除算ならね。
551 名前:デフォルトの名無しさん mailto:sage [2006/10/10(火) 20:35:59 ] ん?無符号型ならimulじゃなくてmulじゃね?
552 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 12:57:52 ] このスレが適当かどうかわからないんですが。 VC++の最適化OFFで生成した以下の絶対値を求めるコード cdq xor eax,edx sub eax,edx これに対応するC/C++のコードがわかるかたいませんか?
553 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 13:25:58 ] >>552 インラインアセンブラでも使ってない限りも最適化 Off ではそのコードは 出てこないと思うんだが・・・。 abs() を呼んでれば最適化 On の時そのコードになるよ。
554 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 13:59:52 ] >>553 /Oiオプションでabsが上記の命令に展開されたのを確認しました。 最適化はOFFだと思ってたのですが、一部だけ有効になってるのかもしれません。 (バイナリとPDBファイルしかないので詳細不明) ありがとうございました。
555 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 17:48:43 ] >>554 /Oiって思いっきり最適化オプションの一部だろ。
556 名前:デフォルトの名無しさん mailto:sage [2006/10/11(水) 18:26:42 ] >>552-555 ワロタw
557 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 09:14:28 ] OiOi
558 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 13:59:22 ] RS-232C?
559 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 15:34:13 ] どっちかっつーと丸井
560 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 16:21:15 ] 丸井って、クレジット詐欺って意味でしょ?
561 名前:デフォルトの名無しさん mailto:sage [2006/10/12(木) 22:19:52 ] >>560 訴訟の元ハケーン
562 名前:デフォルトの名無しさん [2006/10/12(木) 22:34:02 ] 訴訟あげ!?
563 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 13:55:12 ] 16ビットしか知らんが、みんな何に使ってるの? やっぱインラインかな
564 名前:デフォルトの名無しさん [2006/10/13(金) 15:49:03 ] C言語からアセンブラ語に変換するにはどうすればいいですか?? 分かりやすくお願いします.
565 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 15:54:22 ] コンパイラにアセンブラ語で出力するようにオプションを付ける。
566 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 15:54:28 ] GCCなら-Sとか
567 名前:デフォルトの名無しさん [2006/10/13(金) 15:58:20 ] それはMPLAB IDE上でできますか??
568 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 16:07:08 ] アセンブラ語て…新語捏造するなやorz 本当はアセンブリ言語ってんだ。俗的にアセンブラでも通用するが。
569 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 16:10:51 ] お前タン、実はマルチでつか?そんなことしたら駄目だお(AAry
570 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 17:20:51 ] >>568 JISでは「アセンブラ言語」
571 名前:デフォルトの名無しさん mailto:sage [2006/10/13(金) 18:50:01 ] まじで?!
572 名前:デフォルトの名無しさん [2006/10/14(土) 16:55:38 ] 今学校の授業中です… キーボードから3個の整数a、b、cを入力してスタックにセットし、これらの整数のうち最大整数をディスプレイに出力せよ。ただし、最大整数をセットするための変数maxもスタック上に作ること。 これが出来ないと帰らせともらえませんが、全くわかりません。どなたか出来る方いましたらよろしくお願いします。
573 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 17:21:41 ] よし!19時ぐらいまで粘れ!! その時間位になれば、わかる人がここに来るぞ、たぶん。
574 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 17:40:28 ] >>572 開発環境、動作環境を書け。 話はそれからだ。
575 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 18:05:18 ] >>572 どのアセンブラで、どのCPUですか
576 名前:デフォルトの名無しさん [2006/10/14(土) 19:18:17 ] 19時を過ぎたのですがそろそろ教えてくれません?どうかお願いします。
577 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 19:23:08 ] >>576 いやだから教えようにも ・・まぁなんだ、頑張れ
578 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 19:35:56 ] >>576 >>574-575
579 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 19:54:20 ] >>576 変数って何桁でもいいの?
580 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 22:00:50 ] しかし、キーのスキャンやら画面表示やらはHWがわからんことにはどうしようもないだろ。 まあわかったところでこんなところに書き込めるようなコード量に収まるとも思えんがw
581 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 22:22:37 ] >>580 無能自慢はいいから
582 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 23:23:22 ] >>580 つ【ファンクションリクエスト】
583 名前:デフォルトの名無しさん mailto:sage [2006/10/14(土) 23:44:27 ] 週末なのに学校に泊まりかw
584 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:01:57 ] >>582 それがある環境だと誰が言った?
585 名前:デフォルトの名無しさん [2006/10/15(日) 00:17:32 ] なんで教えてもらおうとしてるやつがそんなに偉そうなんだ
586 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:27:14 ] kawaisosu
587 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:43:22 ] 579はまだ帰れない
588 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:55:36 ] >>572 void main(){ }
589 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:57:03 ] >>572 void main(){ int a, b, c, max; scanf("%d", &a); scanf("%d", &b); scanf("%d", &c); if(a < b){ } }
590 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 00:58:06 ] うわーん、要はC言語で作って、 gcc -S で、アセンブリ出力したら、 勝手にやってくれるよ。 だって、ローカル変数はスタックなんだからさ。
591 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 01:43:47 ] >>590 ローカル変数が必ずスタックに確保されるという保証はない
592 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/15(日) 01:49:36 ] volatileでおk
593 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 03:34:15 ] スレ違いの話だが、 「C言語のローカル変数がスタック上に生成される」というのは そういう実装になっている処理系が多い、というだけで C言語の規格上、ローカル変数(自動記憶域期間をもつオブジェクト)は 「スタック上に確保されなければならない」とは一言も書いてない。
594 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 11:57:25 ] ほれ、糞団子、gccのソースに言及しつつ>>593 について熱く語れよ。
595 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 12:07:56 ] 「&をつけないとレジスタに置かれる可能性があるが、&をつければ必ずメモリ上に置かれる」というのもただの伝説だね。
596 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 12:34:44 ] そんなことより>>572 は帰宅できたのかどうか
597 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 14:43:46 ] 家がなi(ry
598 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/15(日) 15:18:30 ] >>594 そんなしょぼいポンコツコンパイラなんざ使わないからしらねー。
599 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 15:20:44 ] >>598 gcc-4.1.1で最適化を-O3なんかにしたら最適化が変態すぎてまともにうごかないんだぜ。
600 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 17:52:03 ] >>598 お前半年くらい前にあーだこーだいってた気がしたが。 ありゃ可変引数リストに関してだったっけ?
601 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 18:04:44 ] >>598 しょぼいポンコツとは失礼な。 某大学の実習で使用されるシステムはH/Wスタックを装備していないから メモリ空間ぜ〜んぶヒープな環境だ。レジスタはアキュムレータ1つだけ。 で、課題でこのシステム向けに最適化されたANSI Cのサブセットコンパイラを つくれというのがあったが、どんなに凝ったコンパイラを作れど、この場合 スタックを「使わない」のではなく「使えない」んだよ。 団子はそんな環境で四苦八苦したことがないだろうが。
602 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 18:07:25 ] おっつ失礼。「汎用」レジスタはアキュムレータ1つだけ。 レジスタは他にもあったよ。PCとか間接メモリアドレッシングで使うやつとか。
603 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 18:18:49 ] >>601 無能自慢はいいから
604 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/15(日) 18:22:58 ] >>600 んーでもそういう環境わざわざ選ぶ理由無いよね♪ どんなマイナーCPUですか? ちなみにJava仮想マシンなら汎用レジスタ1本のスタックマシンだよね。 それ以前の問題として、マシン語がどんなのかよくわからんわけで。 それこそ情報処理技術者でよく使われるCOMET2/CASL2かもわからんし。 Cでコンパイルしてアセンブリコード吐かせれば出せるって前提自体が おかしいと思うわけで。 演習で使う端末ってx86とかPowerPC(ようはMac)のほうが多いと思うんだけど
605 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 19:39:54 ] >>603 ゴメ。自慢するつもりはなかった。ただこういう環境もあるということを言いたかっただけ。 >>604 あるよ。この流れの上流をよく見てみ。>>572 で今学校の授業中ですとある。 どんな反則/時代遅れシステムを使わされるかもわからない。高機能から超低次元まで 様々な環境を考慮しなければ質問に答えることは出来ない。 そうでなくてもこの分野はどんな質問がくるか予測しづらい面もある。 肝心の質問者は何も言わず逃げやがったなw
606 名前:・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/15(日) 19:43:12 ] まあ、かくいう俺も128本のレジスタと256KBのメモリ空間しかない 某プロセッサコアのシミュレータと格闘してた。 アレは気が狂いそうだ。
607 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 20:04:21 ] 128本も、一体何に使うんだよorz 人智では管理できんな、この数じゃ。CellとかItaniumとか!
608 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:36:33 ] Sparcも結構変態チックなレジスタ管理していた気がするが。
609 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:38:24 ] やはりデータレジスタ8本アドレスレジスタ8本が最も美しい。
610 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:46:19 ] >>609 レジスタの長さは、それぞれ 1Mバイトぐらいでよろしーですか?w
611 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:48:43 ] 奇数アドレスにアクセスすると転けるCPUなんて嫌いです。
612 名前:デフォルトの名無しさん [2006/10/16(月) 00:21:15 ] >>611 68000のことですか?
613 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 00:27:10 ] 中途半端に遅くなって動かれるくらいなら落ちてくれた方がいいけど。
614 名前:デフォルトの名無しさん [2006/10/16(月) 01:29:07 ] すみませんがわからないので教えてください・・・ お願いします 次の命令群を実行した結果を説明せよ CLR R0 ADD #1 R0 ADD #2 R0 ADD #3 R0 ADD #4 R0 次の命令群を実行した結果を説明せよ MOV #100,R1 CLR -(R1) CLR -(R1) CLR -(R1) CLR -(R1) 次の命令群を実行した結果を説明せよ CLR @#100 解答は○○○○番地を××に、R0を△△△△にする という形でできるだけ詳しくお願いします 本当にお願いします ・・・
615 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 01:42:53 ] 実行すればわかる
616 名前:デフォルトの名無しさん [2006/10/16(月) 02:30:42 ] お願いします。。。課題なのですが明日までなんです・・・
617 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 02:43:23 ] 明後日になったら答えてやる と念を押しておいても誰かが先に答えちまうんだろうな 偽善もほどほどにしとけよ?
618 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 02:45:27 ] 宿題スレじゃ無いしな。
619 名前:デフォルトの名無しさん [2006/10/16(月) 02:48:32 ] すみません・・宿題スレがないので・・・ 本当にお願いします・・教えてください
620 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 02:52:45 ] そもそもどのCPUを使っているのかなどの最低限の情報が与えられていないのではなぁ。
621 名前:デフォルトの名無しさん [2006/10/16(月) 03:36:39 ] すみませんわかりません・・ それしか書いてないので・・・ PDP11ってやつですかね・・? オペランドとか・・ 自分も授業で少ししただけで全然わからないんです・・・ 教えてもらえないでしょうか。。。
622 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 03:51:59 ] >>621 PDP11のアセンブラのマニュアルならここにあるからしっかり勉強しろ。 ttp://www.bitsavers.org/pdf/dec/www.computer.museum.uq.edu.au_mirror/D-09-30_PDP11-40_Processor_Handbook.pdf
623 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 04:00:17 ] おぉ、こんなものをこんなところで入手できるとは いいものを手に入れた。マジサンクス>>622
624 名前:デフォルトの名無しさん [2006/10/16(月) 04:32:48 ] >>622 わかりました 勉強はします そのマニュアルは全部英語でよくわかりませんが・・ でも締切りが今日なんです・・・ とりあえず答えを教えてもらえないでしょうか・・・ もう時間が・・・ お願いします
625 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 04:38:51 ] >>624 そうやって2chに張り付いてうだうだ書いている暇に、英和辞典片手にマニュアル読めよ。
626 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 04:42:53 ] 課題のほうも煮詰まっているようだから>>614 のサンプルに関連するページだけ抽出して >>622 から抜粋してみた。この辺を重点的に読んで、あとは自分で解決してね。 (問1) 2オペランドアドレッシング(double operand addressing) … 3-2 (30) クリア(clr)命令 … 4-6 (52) 加算(add)命令 … 4-25 (71) (問2) 直接アドレッシング(direct addressing)と自動デクリメント(autodecrement) … 3-4 (32) 転送(mov)命令 … 4-23 (69) (問3) 差分(間接)アドレッシング(differed (indirect) addressing) … 3-10 (38) 今君が手元で使っているであろう某系のCPUよりも随分素直で理解しやすいよ。
627 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 04:53:36 ] Cで書くならこうかな? register short int r0 = 0; r0 += 1; r0 += 2; r0 += 3; r0 += 4; register short int r1 = 100; *--r1 = 0; *--r1 = 0; *--r1 = 0; *--r1 = 0; *(short int *)100 = 0;
628 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 04:55:04 ] おまいら優しすぎ。
629 名前:デフォルトの名無しさん [2006/10/16(月) 04:57:31 ] まってください >>626 わざわざありがとうございます ですがその資料ホントに読めません・・・ あと習い始めたばかりでまだ実行とかは全く習ってないししたこともないんです 書いてある問題の意味すらわからなくて、今答えの見当もつかない状態なんです・・ 本当にお願いします・・
630 名前:626 mailto:sage [2006/10/16(月) 04:58:52 ] おわwww間違えてるしw 問3は差分アドレッシングの問題じゃないわ。何に気をとられていたのやらorz 問3はたぶん絶対アドレッシング(absolute addressing)の問題。 関連ページは 3-12 (40) >>627 それほぼ答えじゃんorz ま、俺は別にいいけどね。
631 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:00:17 ] 確か @ やら # はウニッ糞のシェルにとって特別な意味があるので UNIックソのPDP11アセンブラは>>622 とは違う文字使っていたような希ガス
632 名前:630 mailto:sage [2006/10/16(月) 05:02:18 ] 関連ページは3-12・・・じゃなくて本当は 3-13 (41) また間違えましたよ。 すぐ隣のページだけどね:-p
633 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:05:28 ] >>627 × register short int r1 = 100; ○ register short int *r1 = 100;
634 名前:デフォルトの名無しさん [2006/10/16(月) 05:07:04 ] >>627 ありがとうございます でもCは全く習ってなくて、何が書いてあるのか理解できません・・・ 本当にすみません できれば>>614 の形式で教えていただけないでしょうか・・ 手書きで説明を書いて提出するので・・・ >>630 わざわざ報告ありがとうございます
635 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:15:23 ] おまい、貴重なPDP11のマニュアルを拾ってきてもらって、その212頁もある マニュアルの中から僅かな量のエッセンスを抽出してもらって、あまつさえ 重要語句に日本語を付加されてまでまだ「読めません」かよ。 読めないのではなくて 読 ん で い な い だろ。 今から>>622 読んで理解しろ。実際ここにいる連中も1時間程度で読んで理解しているんだ。
636 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:18:20 ] >>635 それとCのソースもな。
637 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:30:50 ] おまいら優しすぎ
638 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 05:42:08 ] 解説者が一人多役の自演でなければ、の話だが。
639 名前:デフォルトの名無しさん [2006/10/16(月) 05:51:08 ] 30分ほど読みましたがやはりわかりませんでした・・・ 教科書読んでも全然わからなくて・・・ >>627 はどういうことなんですか・・? 実行結果・・? もういやだ・・もうこんな時間・・どうにもできない・・・だれか・・
640 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 06:07:13 ] >639 残念でした。 2chに聞いたのが間違いなんだよ 何でもサポートセンターじゃない 先生のところへ行って直接手取り足取り教えて貰いな 親切に教えて、しかも学ぶ事そのものまで教えてまでいるスレ住人を 裏切り続けてるのは外ならぬお前なんだと言う事を覚えておけよ?
641 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 06:09:32 ] ネタかも知れないレスにマジレスしちまった。 そろそろ寝るか。 30分ぐらい。
642 名前:デフォルトの名無しさん [2006/10/16(月) 06:18:11 ] 提出物なので先生には教えてもらえません・・・ 裏切り続けてると言われても・・言われたことはしました・・ その上でなら仕方ありません・・ 時間があるのならゆっくり勉強すればいいかもしれませんが、もう時間がなくて一から勉強することができません・・・ だからもう・・・
643 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 06:23:02 ] ここまでヒント貰って分からないんなら、もう単位は諦めるしかないんじゃない。 人の答え丸写しして本人は理解してないのに単位取るなんて不正だし。
644 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 06:23:44 ] 課題出されてから提出期限まで幾らか時間があったんだろ? くだらん言い訳はするな。 それに提出物だから教えて貰えないというのもおかしな話だ。 質問を受け付けてくれない先生か。さぞお気の毒だこと。 そうやって言い訳し続けて、裏切り続けるがいいさ。 と、漏れもマジレス
645 名前:デフォルトの名無しさん [2006/10/16(月) 07:06:33 ] お願いします・・・ 何を言われてももうこれしかありません・・・
646 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 07:09:06 ] もういい加減愛想が尽きたよ。 答えを教えたって豚に真珠だろうさ。
647 名前:デフォルトの名無しさん [2006/10/16(月) 07:21:02 ] それでもお願いします・・・
648 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 07:51:54 ] おまえら優しいな。 2chでこんなに優しくしてもらえるなんてそうないぞ。 問1ぐらいは分かるだろ。 ま、残りは空欄でも仕方ないな。
649 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 08:00:04 ] 問1すらわからないなら単位はあきらめた方がいいな
650 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 08:22:28 ] なんじゃここ、昼夜逆転したニート君どもがが学生君を嬲ってやがるw やっぱりヒキニト君ってイライラが溜まってるんだね。 そんなの俺なら「宿題は自分でやれよ」の一言で済ますけど。
651 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 11:21:27 ] r0が
652 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 11:23:32 ] 失敗 r0がゼロレジスタか否かで結果が変わるな PDP11が確実でなければ
653 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 12:25:35 ] 時間が無いなんて何を言ってるんだ? 学生なら幾らでも時間はあるだろ 4年で卒業できる実力が無いならおとなしく留年しろ それが世のためだ
654 名前:デフォルトの名無しさん [2006/10/16(月) 12:26:48 ] あと30分でその授業が始まります‥ 本当にお願いします…
655 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 12:42:11 ] このスレタイに使われている顔文字の意味がわからくなってきたぞ。 始めて↓のスレタイを見たときは、 アセンブラ… (;´Д`) ハァハァ (Part6) pc5.2ch.net/test/read.cgi/tech/1087897801/ ああなるほど、アセンブラだから汗んブラってことで 汗をかいているって意味か、もしくはブラジャー見てハァハァ言ってるのかって 意味なのかとわかった。んだが・・・
656 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 12:53:52 ] >>655 そういう意味はないぜ。 伝統的に「Part*」でなく顔文字でスレ名つけてるだけで。 そのスレタイだったら、アセンブラにハァハァしてると 解釈するのが自然で、汗とかけてるわけじゃない
657 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 13:26:09 ] 汗まみれのブラジャー着けたままセックスして感じてる女がハァハァいってる ところを想像した やばい、想像しただけで勃起する
658 名前:デフォルトの名無しさん [2006/10/16(月) 14:14:38 ] あぁ、、PDP-11とは懐かしいな。何でPDP-11なのか分からんけど。実機で動いた方が絶対に面白いし、分かり易いのに。MIPSとかでいいのにな。いや、漏れも大学の時のアセンブラ講義はPDP-11のシミュレータだったけどさ。
659 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 14:14:58 ] 全く知らない漏れでも>>622 のマニュアル流し読みしたら理解できた。 わからないとか言ってる奴は絶対に問題を自力で解こうと思ってないし、 マニュアルも英語だからという理由で読もうともしてない。 以下、アドレスや数値は8進数表記 問1 R0を000000にする R0に1を加算する→R0は000001 R0に2を加算する→R0は000003 R0に3を加算する→R0は000006 R0に4を加算する→R0は000012 問2 R1を000100にする 000100番地を000000にする、R1を000076にする 000076番地を000000にする、R1を000074にする 000074番地を000000にする、R1を000072にする 000072番地を000000にする、R1を000070にする 問3 000100番地を000000にする
660 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 14:19:59 ] >>659 たんなる釣りだろ。
661 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 15:06:00 ] 8進数か、手強いな。16進数に慣れきってしまった今となっては。
662 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 15:37:49 ] 英語がどうとか逝っても肝心の所は図とか記号あるから英語あんま読めなくてもだいたいわかるし
663 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 15:47:53 ] アセンブラの宿題スレもそこそこ需要があるみたいだね。 このスレを見る限り。(>>36-55 ,>>88-98 ,>>191-207 ,>>244-254 ,>>572-605 ,>>614-659 ) こちらに質問された方はお気の毒でした。結局間に合ってないよね。 でも、資料提供から問題箇所の切り出し、C言語による整理とここでこんなに 丁寧に指導してもらえることってそうはないから、努力して理解に努める 姿勢を見せれば良い方向に転んだかもしれないあたり、少し残念。 それはさておき。 ここの姉妹スレとしてアセンブラの宿題スレを立てようと思うが、どうだろうか。 意見がなかったら近いうちに立てるよ。住人さんが定着するかどうかはわからないけど。
664 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 16:12:14 ] >>36 って5月だよな。月1回程度って少なくない?
665 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 16:22:41 ] 宿題スレ、立ててみるのは面白いと思うよ。 スレタイに「宿題」「質問」「アセンブラ」などの単語が入ってれば ある程度人は集まると思う。 過疎化や実質非宿題スレ化などが懸念されるが、 ネタが増えそうな気もするし、俺は立てるのに賛成。
666 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 16:39:46 ] 月一回程度、これを多いと思う香具師はいないものとして。 少なすぎるか、適量かで意見が分かれそうだな。 このペースだと複数問題のパラレル同時進行てな事態はそうは起きないだろうから 漏れは丁度いいと思う。もうちょい増えても構わんが。
667 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 17:33:55 ] いらねーだろ。 本音としては、ここに集う宿題君を肴にしてお前らと暇つぶしするのがいい。 宿題は自分でやれ。2chはお前らの代返君じゃねーんだぞと。
668 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 18:05:39 ] 宿題スレを肴にすればいい。 それに、質問して来た人を直接ここで肴にするのは ちょっと気が引けるし。
669 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 18:12:28 ] 近頃のアッセン使いは意地が悪いですね
670 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 18:41:17 ] 実はただのニートだからなw
671 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 18:45:56 ] >>659 > 問2 おしい。32ページ。 > -(Rn) Register is decrimented and then used as a pointer. つまり、まず減算してからポインターとして使う。
672 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 20:57:01 ] 問題: STC SBB EAX,EAX ADD EAX,13 DEC EAX XOR EAX,9 NOT AX SHL EAX,8 上の命令を実行した後、EAXに入っている値を10進法で求めよ。
673 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 21:58:43 ] >>672 じぶんでやれかす
674 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 21:59:50 ] 「〜を求めよ」ってテスト問題の答えに 「じぶんでやれかす」って一度書いてみたいなw
675 名前:673 mailto:sage [2006/10/16(月) 22:01:51 ] 暇つぶしで回ってただけだからおれもわかんねーよwww
676 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 22:03:48 ] えーと13たして9かけて8でわるのかな?
677 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 22:14:07 ] 汗まみれのブラジャー↑アッー!↓
678 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 22:48:25 ] 16770816
679 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 23:22:10 ] これか game10.2ch.net/test/read.cgi/mmosaloon/1156941719/l50 の172 ↑www.usamimi.info/~nkra/desktop/GEpassword.html いつまでもこんなことやってたら高校生とかになっても厨のままだよ
680 名前:デフォルトの名無しさん [2006/10/16(月) 23:27:11 ] 16777216だよ
681 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 07:01:21 ] アセンブラ面白い問題教えてスレとか面白そうじゃないか? 誰か建てろ。
682 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 15:07:18 ] 仮にアセンブリ宿題スレ作るにしても、テンプレどうするよ? 質問者は、質問の際に以下の項目を記入する事。 【機種】 【CPU】 【アセンブラ】 ※判らない人は判る範囲で埋めて下さい。 アセンブリは環境によってコードが異なるります。 3つとも空欄や不明の場合、回答者が趣味で使っている環境で答えますが それがあなたの環境で実行出来るか否かの保障は出来ません。
683 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 15:18:02 ] s/答えますが/気が向いたら答えるかも知れませんが/
684 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 16:00:27 ] 最低限CPU名だけは書いてもらうことを優先すべきでないかな。 もちろんわかる人には環境を詳しく書いてもらうとして。
685 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 16:04:56 ] > コードが異なるります。
686 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 16:29:58 ] アセンブラ アセンブリ アセンブル
687 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 16:43:58 ] アセンブリ言語をアセンブルするのがアセンブラだが、 アセンブリ言語を指してアセンブラと言うことも多い。
688 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 17:26:57 ] アセンブラ アセンブリ アセンブル アセンブレ アセンブロ つっこみいれてやれよ。
689 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 23:00:47 ] アセンブロとはきどんなお風呂ですか?
690 名前:689 mailto:sage [2006/10/17(火) 23:01:30 ] 余計な「き」が入った 吊ってくる
691 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 23:30:02 ] 1.[8091h][8090h]←[8080h]*2+[8081h] 和を16ビットで求める 2.[8085h]←[8051h]+[8052h] を計算し、符号付2進数加算としてのオーバーフローを判定する この二つを8085プログラムで書けという問題なのですがまったく分かりません。 どなたか分かる方教えてください。よろしくお願いします。
692 名前:デフォルトの名無しさん mailto:sage [2006/10/17(火) 23:49:46 ] 宿題スレに逝け
693 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 00:05:04 ] >>691 宿題スレに逝け アセンブラの宿題質問スレ pc8.2ch.net/test/read.cgi/tech/1161097445/
694 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 00:11:22 ] 結局立てたんかい。 次からテンプレに追加せんとな。
695 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 00:42:24 ] Z80ならよく覚えているんだがなぁ〜。i8085は知らんわ。残念。
696 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 00:58:48 ] >>688 まるでソンブレロみたいだ
697 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 01:50:04 ] 3 名前: デフォルトの名無しさん [sage] 投稿日: 2006/10/18(水) 00:06:56 ファミコンアセンブラはまじで楽しい。 それ以外のアセンブラなんて人間にすすめるもんじゃない。
698 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 06:29:45 ] あんな変態アーキテクチャ、人に勧められるものかよ。 まあ、x86系の石よりはマシだが。 68000の優るものは何もない。
699 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 06:36:39 ] 68kは遅いのが致命的だな。 JAVAチップだって結局(ry
700 名前:・∀・)っ-○◎○新世紀ダンゴリオン ◆DanGorION6 mailto:sage [2006/10/18(水) 06:37:48 ] ナーシャ・ジベリを越える天才現るか?
701 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 09:22:08 ] 彼は今何をしているのだろう?
702 名前:デフォルトの名無しさん mailto:sage [2006/10/19(木) 19:45:53 ] アセンブリをアセンブラでアセンブルすんだよ アセンブラをアセンブラでアセンブルする厨は(・∀・)カエレ!
703 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 00:14:57 ] アセンブラってやっぱ C で書かれてるのかな?
704 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 00:24:20 ] >>703 そういうのもそうでないのもある。 awkで書かれてるのとかもあるよ
705 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 00:27:38 ] >>703 普通の言語のコンパイラならともかく、 アセンブラは何も考えずにアセンブルできるから 言語は何でもいいんじゃないの。
706 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 01:18:25 ] 漏れは8085アセンブラをbasicで書いたぞ。
707 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 03:04:40 ] シナプスで書かれたアセンブラもあるな 勝手に最適化してくれるらしいぞ
708 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 06:31:39 ] 紙とエンピツで入出力
709 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 07:36:04 ] こういうのって許されるやり方ですか? もしかして相当する命令あるのかなぁ 初心者ですいません・・・ 0100 mov AX,0300 0103 push AX ; Arg1 0104 call 200 0200 mov AX,SP 0202 add AX,2 0205 mov SP,AX 0207 ret 0300 int 20 ; おわり
710 名前:709 mailto:sage [2006/10/20(金) 07:38:30 ] 板汚しすいません。解決しました
711 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 13:06:04 ] mov ax, 0x300 push ax call TEST TEST: push bp mov bp, sp mov ax, [bp + 4] pop bp ret 普通はこんな風に使う。 アセンブリ言語プログラムをCから呼ぶのと同じ感じ。 上のはnasm16bitプログラムで書いてある。 そのためbp+4なのだ。 +4な理由は、戻りアドレス16bitとbpをプッシュした16bitで合計4バイトってこと。
712 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 13:38:16 ] >>711 引数で渡された値に帰り先を変更したいようだから それではやってる事が全く違うんじゃないか?
713 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 13:42:00 ] >>711 偉そうに嘘を教える知ったか乙
714 名前:デフォルトの名無しさん mailto:sage [2006/10/20(金) 14:05:59 ] うははwwwちゃんと読んでいなかったwwwww 吊って来るorz
715 名前:デフォルトの名無しさん [2006/10/21(土) 02:50:55 ] mov ax,[si+1]はOKで mov ax,[di+1]はNGですか?
716 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 11:34:17 ] >>709 retの戻りアドレスをArg1に変更したいだけならこうじゃないか? 0100 mov AX,0300 0103 push AX ; Arg1 0104 call 200 0200 pop AX ; 本来のret先をスタックから取り除く 0201 ret ; 103でpushした値がスタックトップなのでそこにretする 0300 int 20 ; おわり
717 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 15:15:42 ] すいません。 入る大学間違えたんですが。
718 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 17:24:31 ] >>717 だから?
719 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 17:35:06 ] >>717 よくあることだ。気にするな。
720 名前:717 mailto:sage [2006/10/23(月) 17:44:40 ] すいません。 誤爆です。 (なぜか向こうにレスがつかなかった。)
721 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 17:45:08 ] >>720 ret
722 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 18:32:58 ] retって何?
723 名前:デフォルトの名無しさん mailto:sage [2006/10/23(月) 19:24:31 ] iret
724 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 07:09:34 ] irete
725 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 08:07:59 ] アッー!
726 名前:デフォルトの名無しさん [2006/10/24(火) 10:05:42 ] MASM Ver8はどこで手に入りますか?
727 名前:726 mailto:sage [2006/10/24(火) 10:10:23 ] ごめんなさい。 >>147 にありました
728 名前:デフォルトの名無しさん [2006/10/24(火) 13:36:18 ] dwordってなんですか?
729 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 13:44:42 ] どうbぇをrd
730 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 13:53:05 ] 4バイト?
731 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 14:01:41 ] DWORDはDOUBLE WORDなのでWORD2つ分。 ただし、WORDが何バイトか、あるいは何ビットかは知ったこっちゃない。
732 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 15:33:36 ] 2CHとはアセンブラでどんな意味ですか?
733 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 15:40:22 ] jmp @-1
734 名前:デフォルトの名無しさん [2006/10/24(火) 18:15:29 ] ?
735 名前:デフォルトの名無しさん [2006/10/24(火) 18:26:32 ] 2ちゃんのことじゃないですよ2CHの意味することを教えてください
736 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 18:32:33 ] 2CHは16進法としか解釈できないよね。 10進法なら44だ。 これが表す命令はCPUによって違うが、 1byteの2CH命令を持つCPUって何だろ。
737 名前:デフォルトの名無しさん [2006/10/24(火) 18:33:28 ] ありがとうございます
738 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 18:35:59 ] なーんだ。そういう事か。 マジレスすると、炭素と水素が結合した物が2個。
739 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 23:15:41 ] そりゃ無理だ。
740 名前:デフォルトの名無しさん mailto:sage [2006/10/24(火) 23:52:37 ] >>736 z80なら inc l
741 名前:736 mailto:sage [2006/10/24(火) 23:59:54 ] >>740 サンクス。
742 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 10:56:51 ] >>740 ザイログフォーマットではxxxhという表現は無いな 2chだとインテルフォーマットだと思うぞ だから INC L だな
743 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 11:21:37 ] 俺が思うに、やっぱりね、良い音楽もあるけど悪い音楽もある!
744 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 11:37:03 ] iret
745 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 11:58:45 ] >>743 いい音楽って例えばどういうの?
746 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 12:55:15 ] inc l
747 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 13:25:02 ] アニオタ帰れ
748 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 22:46:00 ] そういやアニメ界には 搭乗してるユニットのOSを書き換えながら 戦闘するパイロットが居るんだっけか
749 名前:デフォルトの名無しさん mailto:sage [2006/10/25(水) 22:54:05 ] >>748 しーぽん
750 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 01:51:03 ] >>748 実は別OSがその下で動いていたらどうだろう?止めることなく書き換えも可能になるな。
751 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 01:54:16 ] 無停止システムなんかだと実行中のOSにパッチ当てるぐらいはできて当然。
752 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 01:57:33 ] 無停止システムってなんだよ? てか、なんちゃら機関と同じで実現できないだろ。
753 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 02:04:47 ] スーパーバイザモードで動いてるOSの下に ユーザーモードで動いてるOSがいくつも走ってて そっちを書き換えてた可能性は十分ある。 それほど不自然ではない気もするぞ。 別に0から全てのコード書き上げたってんじゃないんだろう?
754 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 02:17:04 ] 迂闊に特権コード書き換えられるようではそれ自体がセキュリティホールになりかねないが、 OSのカーネルだろうがメモリ上の単なるデータに過ぎないんだから、適切な権限さえあれば いくらでも書き換えることができる。アーキテクチャにもよるけどな。
755 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 02:19:01 ] >>752 勧善懲悪覗機関
756 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 02:41:26 ] アセンブリは無敵ってこった。C言語すらもただのゴミに見える…
757 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 03:56:04 ] 無敵かもしれんが、おいらには難解過ぎるよ。 全然勉強が進まん…orz
758 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 11:16:36 ] 種の話ならRTOS上のアプリが糞だったのでスケジューラと制御ライブラリの呼び出しパラメータに機体の癖を考慮した誤差を加えただけみたいに見えた
759 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 12:07:39 ] よくわからんが、俺もコーディネーターになりてえよw
760 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 12:32:12 ] ようするに篠原の技術は世界一って事だ
761 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 17:20:36 ] ネルガルだよ
762 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 18:24:59 ] >761 オモイカネがOSだったんだw
763 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 00:14:18 ] >>759 希望はよくわかった。 今日から君はコーダーだ。
764 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 02:08:24 ] 今日から僕はリコーダーだ。
765 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 07:41:49 ] きょうから俺はあの娘のリコーダーだと申したか
766 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 08:24:40 ] >>763 極悪人事だな
767 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 13:26:34 ] 僕のバズーカ凄いんだぞ(涙目)
768 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 15:30:01 ] >>765 おっさんの喘ぎ声がでるようなリコーダーはいりません!
769 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 16:15:05 ] すいません。質問です。 486CPUでCR0レジスタの30と29ビット目を1にすると キャッシュ機能を無効にすることが出来るのでしょうか?
770 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 16:27:13 ] キャッシュの破棄もしなきゃいけないんじゃない?
771 名前:デフォルトの名無しさん mailto:sage [2006/10/27(金) 16:29:42 ] 1次キャッシュを無効にしてWindowsを立ち上げるとすごく遅いね。
772 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 03:26:21 ] 初期のNetwareはHDD引っこ抜いても動いてたとかとか。
773 名前:デフォルトの名無しさん [2006/10/30(月) 15:02:59 ] 私の頭は利口だ
774 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 16:01:34 ] あなたの頭には利く口があるのか
775 名前:デフォルトの名無しさん [2006/10/30(月) 16:02:32 ] ログ読んだけどアセンブラ書くのに一番簡単な言語って Rubyとかじゃないの?
776 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 20:30:24 ] >>775 よく分からないがTTLですらアセンブラは存在していたのになぜRubyなんか持ち出す? awkで十分だよ
777 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 22:10:47 ] それpl(ry
778 名前:デフォルトの名無しさん mailto:sage [2006/10/30(月) 23:18:47 ] TTLでアセンブラ? ビットスライス組み合わせてニーモニックからバイナリへの変換でもしてたん?
779 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 07:34:25 ] nasmが開発停止したと思ったら、flat assemblerなんてのが出てるんだな。 互換性はあるともないとも書いてないのが…使ってる香具師いる?
780 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 08:20:28 ] 無いだろ。ただ構文わかりやすいな。 nasm派はYASMでおk
781 名前:デフォルトの名無しさん mailto:sage [2006/11/02(木) 13:03:08 ] >>691 お前の大学特定した
782 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 05:41:08 ] お前の自宅特定したw
783 名前:デフォルトの名無しさん mailto:sage [2006/11/04(土) 13:24:43 ] お前の性癖特定した
784 名前:デフォルトの名無しさん mailto:sage [2006/11/05(日) 11:17:02 ] ばれた!ずらかれ!
785 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 01:36:59 ] おまえも好きだろ?ハイヒール
786 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 01:40:21 ] ブルマ復活きぼんぬ
787 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 05:38:35 ] 天然のブルマってもう絶滅したの?
788 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 06:18:24 ] >785 「Romanticが止まらない」なら好きだな
789 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 06:23:44 ] ブールーマー(・∀・)イイ! ブールーマー(・∀・)イイ! あんぱーんあんぱーんあんぱんあんぱん あん!ぱん!
790 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 10:27:01 ] >>785 ハイヒール大好きだけどバンプスとミュールも大好き カノジョできたら無理矢理はかせてやりたい
791 名前:デフォルトの名無しさん mailto:sage [2006/11/07(火) 13:15:54 ] バレーボールのブルマじゃね?
792 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 00:58:56 ] >>790 夏の薄着にはピンヒールのサンダルがちょっとイイ
793 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 05:24:25 ] 組み込み技術者足りねえってよ。 みんな、がんがれ
794 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 20:49:50 ] 今どきは組み込みもほとんどCで出来ちゃうんじゃなかろうか。
795 名前:デフォルトの名無しさん mailto:sage [2006/11/16(木) 23:41:05 ] 汗ブルマで掻くのはスタートアップルーチンと割り込みハンドラくらいだな
796 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 09:36:20 ] コンパイラが使って欲しくない命令使うんで、インライン使わざるを得なかった そもそもいらん信号出すような命令残しておくなよ。バグだろ?>某社
797 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 10:56:54 ] >>796 過去への優しさです。
798 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 12:07:06 ] そんな優しさなんて要らない
799 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 12:21:00 ] >>797 おまえの優しさが人を傷つけていることになぜ気づかない?
800 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 14:28:58 ] >>799 それは仕様です
801 名前:デフォルトの名無しさん mailto:sage [2006/11/17(金) 16:20:18 ] 「愚か者は己が愚かなことに気づかない」
802 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 22:35:35 ] 「ぬるぽはぬるぽ」
803 名前:デフォルトの名無しさん mailto:sage [2006/11/18(土) 23:34:19 ] >>802 「ガッはガッ」
804 名前:デフォルトの名無しさん mailto:sage [2006/11/19(日) 18:11:49 ] 愚か者は愚か者であると見抜ける人でないと (アセンブラを使うのは)ぬるぽ
805 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 10:08:39 ] アセンブラ、アメリカ専用ブラウザなんでしょ。
806 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 14:04:08 ] 小林亜星専用ブラジャーです
807 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 14:22:00 ] それはあなたを幸せにしますか?
808 名前:デフォルトの名無しさん mailto:sage [2006/11/20(月) 19:26:33 ] 亜星が人々を幸せにすることはありません
809 名前:デフォルトの名無しさん mailto:sage [2006/11/23(木) 11:25:49 ] パッとさいでりあ〜♪
810 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 00:22:11 ] ちょっと質問。 nasmで作ったobjファイルをリンクして、ベタファイルとして出力できるようなフリーのリンカーってある? 例えば、 db 0,1,2,3 ってだけのa.asmと、 db 4,5,6,7 ってだけのb.asmをアセンブルしてそれぞれa.obj、b.objを作り、それをリンクして 0,1,2,3,4,5,6,7 というバイナリファイルを作れるようなの。 alinkでは無理だったんだが・・・
811 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 00:24:04 ] >>810 コードに明示されない順番依存ってリロケートとしておかしくないの?
812 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 00:33:29 ] >>811 ごめん、サンプルは適当に書いた。 要は、exeとして必要な部分を一切省いた、純粋にアセンブラで記述した部分だけを出せるリンカーって事で。 nasmで-f BINを指定したときと同じようなイメージ。
813 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 09:50:16 ] 昔はexe2binを使ったり自分で切り出したりしていたな objと言われてもOMFかcoff(win32)かわからない OMFならobj2binがgoogleでヒットするな
814 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 10:07:04 ] nasm -fbin a.asm nasm -fbin b.asm copy /b a+b hoge.bin じゃ駄目なの?
815 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 11:02:32 ] Microsoft Macro Assembler 8.0 (MASM) パッケージ (x86 用) www.microsoft.com/downloads/details.aspx?FamilyID=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=ja
816 名前:810 mailto:sage [2006/11/26(日) 23:38:21 ] レスd >>813 一応どちらでも出せるんで、ツールに合わせます。 >>814 a.asmからb.asmにあるラベルを参照したりすることがあるので、単純にくっつけるのはまずいです。 >>815 MASMのマニュアル?を探してみましたが、どのオプションでそれができるか不明でした。 どれか使えばできますか?
817 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 08:35:47 ] 純粋なアセンブラの話題からは弱冠ずれるんですが、BIOSファンクションコールの一覧が載ってるサイトありませんか? できれば日本語がいいんですが・・・
818 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 10:36:46 ] 何のBIOS?
819 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 11:09:31 ] PCのですね。 MS-DOSとかが利用するような。
820 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 11:27:33 ] AT? 98?
821 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 11:41:22 ] PC-9801でお願いします。 できればATも参考に知りたいですが・・・
822 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 11:57:58 ] 古本屋なりで「PC-9800シリーズ テクニカルデータブック」のシリーズでも探せ。 多分それが一番手っ取り早い。
823 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 12:24:56 ] 俺のアセンブリ言語入門っていう1992年発刊の本の巻末に一覧表があるYO
824 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 16:42:32 ] そうですね・・・ できるだけ早く欲しかったんですが。 明日、市の図書館とBOOKOFFあたってみます。
825 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 17:07:29 ] osdevに書いてある予感
826 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 20:31:23 ] そんなに古い情報はないだろう。 AT BIOSは"InterruptList"があるけど。
827 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 21:47:09 ] メモリとI/Oポート周りならあった ttp://www.webtech.co.jp/company/doc/undocumented_mem/index.html
828 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 00:25:03 ] 入手できるかわからんが PC-9801 プログラマーズBible,東京理科大学EIC編,技術評論社,ISBN4-87408-615-2 UNDOCUMENTED 9801/9821 Vol1,小高輝真,河野健,インプレス,ISBN4-8443-4642-3 に一通り載ってる
829 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 01:19:29 ] 全部アセンブリで書けばあらゆるソフトは超快速になるのか?
830 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 01:52:24 ] >>829 そんなの当たり前じゃん。釣りか?
831 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 01:55:23 ] じゃあアセンブラで2chブラウザつくってくれ インタフェースもおしゃれにしてくれよな!
832 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 02:11:19 ] CPUが複雑になってて、コンパイラも頭よくなってるので、一概にそうとも言えん。 つーか、CPUがどういう動作をするか完全に理解してて、各命令の動作速度、スレッドまで考慮できれば アセンブラの方が早くできるだろうなw マンドクセ('A`)
833 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 02:34:26 ] >>832 それって総当りでいつかは暗号解けるだろ、 と似たようなアルゴリズムだよね
834 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 12:45:32 ] Core2Duoなど最近のCPUの情報公開が不十分なのが問題なのであって 本来は総当りする必要はない
835 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 15:19:38 ] 猿にキーボード持たせて待ってればできるよ
836 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 22:24:16 ] >>835 それまで宇宙があればね。
837 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 22:28:07 ] \ お そ .い ヽ か の や | し り ` ,. -──- 、 い .く / /⌒ i'⌒iヽ、 つ / ,.-'ゝ__,.・・_ノ-、ヽ は i ‐'''ナ''ー-- ● =''''''リ _,....:-‐‐‐-.、 l -‐i''''~ニ-‐,....!....、ー`ナ `r'=、-、、:::::::ヽr_  ̄ \ヽー' !. t´ r''"´、_,::、::::} ノ` ,.i'・ ,!_`,!::::::::::::ヽ ヾ、 ゝゝ、,,ニ=====ニ/r'⌒; rー`ー' ,! リ::::::::::::ノ i`''''y--- (,iテ‐,'i~´,ゝ'´  ̄ ̄ヽ` :::::::::::ノ .| !、,............, i }'´ _ 、ー_',,...`::::ィ' ●、_!,ヽ-r⌒i-、ノ-''‐、 ゝ`ーt---''ヽ'''''''|`ーt-'つ ( `ーイ ゙i 丿 ;'-,' ,ノー''''{`' !゙ヽノ ,ヽ, `ー--' --'` ̄ `ー't,´`ヽ;;;、,,,,,,___,) ヽ'-゙'" (`ー':;;;;;;;;;;;;;;;ノ ``''''''``'''''´
838 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 22:44:38 ] アセンブラっていまどこでインストールすればいいんだ? IDE使わずに100%フリーな環境でそろえたいんだけど
839 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 22:46:57 ] Linuxでも使え
840 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 22:50:35 ] 会社がWindowsなんだよ
841 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 23:01:55 ] 仕事しろよ
842 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 00:23:40 ] >>838 NASMかMASM>815
843 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 00:40:22 ] mingw入れればgasが使えるしC/C++/C99/Fortran/Javaまで1000%FREEEEな環境がそろう しかもIDE無しでだ なおこのレスには一部誇張が含まれる
844 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 00:51:40 ] >815のリンク先みたら >このパッケージをインストールするために、お使いのコンピュータ上に Visual C++ 2005 Express Edition がインストールされている必要があります。 これフリーなのか?
845 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 01:04:48 ] ふりーだ。
846 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 01:11:53 ] 無料だがfreeではない
847 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 01:12:15 ] でもIDEじゃねーか
848 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 05:14:01 ] リンカーのためだけにインストールしてんだろ? それだけ取り出して IDE本体は削除すればいいんじゃね?
849 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 07:03:15 ] >>844 インストール中にTempディレクトリを見ると、VS2005EEなしでも取り出せるな。
850 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 08:47:45 ] ちなみに>>815 は商用不可だ。
851 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 19:23:12 ] CodeZineでx86のアセンブラの連載やってる筆者、リア中らしいよw そういわれてみるとちょっと文章変だったり、ところどころ勘違いっぽい記述があるけど それを差し引いてもすごいよな。
852 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 23:04:33 ] リアル中毒者
853 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2006/12/01(金) 23:39:48 ] それって赤坂玲音のこと?俺の1つ年上じゃんwww
854 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 23:45:53 ] いやそっちじゃないよ。 っていうか、その人はそこそこ有名じゃんw 厨房なんて思うわけないよ
855 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2006/12/01(金) 23:51:36 ] codezine.jp/a/article/aid/420.aspx じゃあこっちか 大御所ばっかじゃねーかwwwww
856 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 23:54:01 ] 世話が焼けるなあもう。。 codezine.jp/a/article/aid/505.aspx
857 名前:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 mailto:sage [2006/12/02(土) 00:07:01 ] 「団子」でなんか投稿してみるかな。。。
858 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 12:56:36 ] 死ねばいいのに
859 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 03:44:12 ] masmの日本語のドキュメントって どっかでダウンロード出来ないんですか?
860 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 21:41:09 ] 昔は録音するみたいにテープに記録してたけど、 今はだいぶ便利になったみたいだね。 おっさんはマジで市ねよ。
861 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 10:58:56 ] テープは今でも普通に使われているだろ DDSとか
862 名前:デフォルトの名無しさん mailto:sage* [2006/12/09(土) 22:31:37 ] なんだこのスレは・・・たまげたなぁ・・・
863 名前:デフォルトの名無しさん mailto:sage [2006/12/10(日) 12:22:32 ] 3ヶ月前の話題の参考になりそう(?)なバイナリめっけた ttp://www.wex.cn/dwing/mygem.htm
864 名前:デフォルトの名無しさん mailto:sage [2006/12/13(水) 16:36:43 ] PowerPCでラベルのアドレスをレジスタに入れるにはどうしたらいいのですか?
865 名前:デフォルトの名無しさん mailto:sage [2006/12/13(水) 21:08:20 ] 上位と下位を別々に入れる
866 名前:デフォルトの名無しさん mailto:sage [2006/12/14(木) 14:05:05 ] >>865 addis命令というのがあるみたいなのでそれを使ってみます。
867 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 10:21:25 ] CELLでつか? Macでつか・・・? はたまた組み込み?
868 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 17:52:08 ] >>867 Macですよ。
869 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 21:29:38 ] gasでnasmの-f binにあたるものはないのだろうか。 それともld scriptで対処するべきか。
870 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 22:10:15 ] >>869 そこは自作スクリプトで対応(ry
871 名前:デフォルトの名無しさん mailto:sage [2006/12/18(月) 22:45:39 ] >>870 やっぱりか。とりあえず__textセクションだけ抜き出す奴を作った。 これで何とかなると思う。ありがとう。
872 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 01:16:14 ] ゴルフでもやるの?
873 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 01:22:59 ] >>872 そう。Mach-Oでやってるの。 いま494bytesのHello, world!が出来たとこ。 普通にCで作ったら8192bytesでしたよ。 ここまでくるのに苦労しましたわ。
874 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 18:24:34 ] メイン部分がこんな感じのcomならもうちょい縮まる。 mov ax,09h mov dx,offset msg int 21h msg db 'Hello world!',0dh,0ah,'$'
875 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 21:25:03 ] >>871 ブログで書いてたやつか?
876 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 09:52:28 ] >>874 そのメッセージ部分で終了できるのか?
877 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 10:00:31 ] ax=0009なので何もせずに終了
878 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 19:19:45 ] >>875 そうそう
879 名前:874 mailto:sage [2006/12/20(水) 20:01:58 ] ミスとか訂正。 mov ah,09h mov dx,offset msg int 21h mov ah,4ch int 21h msg db 'Hello world!',0dh,0ah,'$'
880 名前:デフォルトの名無しさん mailto:sage [2006/12/21(木) 13:11:32 ] >>879 縮めるんなら、 mov ah,4ch int 21h を ret にする