トップページ⇒tech
1001コメント276KB

アセンブラ… (;´Д`) ハァハァ

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
アセンブラ全般に関するスレッドです。

【前スレ】
アセンブラ… (*´д`*)アハァ…
http://pc5.2ch.net/test/read.cgi/tech/1076157613/l50
0002デフォルトの名無しさんNGNG
【過去ログ】
アセンブラ… (゚д゚)ウマー
http://pc2.2ch.net/test/read.cgi/tech/1060928704/l50
アセンブラヽ(`Д´)ノモルァ
http://pc2.2ch.net/tech/kako/1040/10402/1040297337.html
アセンブラヽ(`Д´)ノモルァ
http://pc3.2ch.net/tech/kako/1016/10169/1016991911.html
アセンブラ… (・∀・)イイ!
http://pc.2ch.net/tech/kako/1002/10022/1002267809.html
0003デフォルトの名無しさんNGNG
This is kusosure!!
0004デフォルトの名無しさんNGNG
http://www.tron.co.jp/asamiya/conpilerworks/comp01.jpg
この人でつね?
0005デフォルトの名無しさんNGNG
ティンポ(;´Д`) ハァハァ
マムコ(;´Д`) ハァハァ
0006デフォルトの名無しさんNGNG
再利用されずにあぶれたスレ('A`)
[あせん] ぶりゃー!]
http://pc5.2ch.net/test/read.cgi/tech/1087618810/
0007デフォルトの名無しさんNGNG
アセンブラとは
妙齢の女性の、たっぷりと汗を含んだ純白のブラジャーのことを言う
するとアセンブルとは
アセンブラを十分に振り切って汗をおとすことでなければならない
したがって、マクロアセンブラとは
黒いアセンブラのことである

では、ニモニックとは何か
これが諸君への課題である。

回答を提示した結果、不都合が生じても
当局は一切関知しないからそのつもりで


0008デフォルトの名無しさんNGNG
ニモ(魚)の肉。
0009デフォルトの名無しさんNGNG
ニーモニック、mnemonicは実はムネモニクと読む。
胸も肉、つまり
「なんでおっぱいにハァハァするのですか? 肉です。」
という意味だ。
0010デフォルトの名無しさんNGNG
だれかOpteronで64ビットモード試してみた強者はいないのか。
0011デフォルトの名無しさんNGNG
なんでこんなもんに対応しなきゃならんのだと愚痴タレながらドライバ改造してる
人なら一人くらいいそうだがw
0012デフォルトの名無しさんNGNG
アセンブラで Windows アプリケーションを作成しようとしている私。
0013デフォルトの名無しさんNGNG
>>12
おお、頑張ってください。

アセンブラで開発されたWindowsアプリケーションといえば…
http://www.vector.co.jp/soft/win95/hardware/se254476.html
0014デフォルトの名無しさんNGNG
フルアセンブラでWinアプリ作っても意味無いyo。
面倒なだけで、やることはCで作るのと大してかわらんからな。
0015デフォルトの名無しさんNGNG
極小アプリ作るにはCだけじゃ限界がー
0016デフォルトの名無しさんNGNG
>>15
crt0を自前で用意して、標準ライブラリを一切使わない。
0017デフォルトの名無しさんNGNG
>>15
これでexeサイズ2.5k。
コメントはずせば警告がでるが、2.0kになる。

#include <windows.h>
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"kernel32.lib")
#pragma comment(linker,"/nodefaultlib:libc.lib /entry:CodeStart /opt:nowin98")
//#pragma comment(linker,"/merge:.rdata=.text")
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int);
void CodeStart()
{
ExitProcess(WinMain(GetModuleHandle(NULL),NULL,GetCommandLine(),SW_SHOWDEFAULT));
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MessageBox(NULL,"TEST","",MB_OK);
return 0;
}
0018デフォルトの名無しさんNGNG
>>17
WinMainのlpCmdLineはGetCommandLine()から自分自身のプログラムのパスの部分を抜いたものってことになっているんで
直接GetCommandLine()を渡すわけには行かないんだな
0019デフォルトの名無しさんNGNG
コマンドラインの解釈ってめんどいよな
なんでCRTが処理すんだよOSの仕事だろ
0020デフォルトの名無しさんNGNG
>>19
CommandLineToArgvW() では不満かえ?
0021デフォルトの名無しさんNGNG
うわこんなAPIあったのかー
ありが�d
0022デフォルトの名無しさんNGNG
>コマンドラインの解釈ってめんどいよな

およそアセンブラを扱うスレで聞くようなコメントではないなw
評価ボードかってきて動くものを作ってみればいかにWin環境が恵まれているが
恐竜のように肥大化しているかがわかると思うよ
0023デフォルトの名無しさんNGNG
>>17
>コメントはずせば警告がでるが、2.0kになる。

まだ甘いな。
/merge:.data=.text /merge:.rdata=.text /section:.text,erw
にすれば1.0KBか1.5KBになるはず。
/section:.text,erwをつけておかないとNT4.0では動かない。
0024デフォルトの名無しさんNGNG
>>22
確かに。
今そのコマンドラインを渡す側をアセンブラで作ってるとゆーことで今日のところは簡便してくだちい
0025デフォルトの名無しさんNGNG
>>23
それやったら、WInXP SP2で動かない予感がするのだが・・・
0026デフォルトの名無しさんNGNG
>>1
またハァハァシリーズかよ!!
キモい
0027デフォルトの名無しさんNGNG
     _ _/  _ _/      /
    _ _/ _ _/ _  /
     /      /      /
   __/   __/   _/
0028デフォルトの名無しさんNGNG
>>25
そうか? XP SP2 では実行可能属性が付いていないメモリからのコード実行が
できなくなるわけだろ。/section:.text,eで実行可能属性を付けているのだが。
今XP SP1aで試してみたが、/section:.text,rwとして実行可能属性を外して
コンパイルしても問題なく実行できたが、SP2だとこれは動かんのだろうな。
0029さっきゅんNGNG
SP2でも動かなくなるのは一部の機種の罠ー
0030デフォルトの名無しさんNGNG
>>28
そうだったのか…

実行可能属性が付いてるメモリは書き込み付加、
書込可能属性が付いてるメモリは実行不可能
と勘違いしていたようだ、すまんかった。
0031デフォルトの名無しさんNGNG
このスレタイは今までで一番いいね。
汗かいてるし。 アセンブラだけに。
0032デフォルトの名無しさんNGNG
・・・
0033デフォルトの名無しさんNGNG
>>31
30代のセンスネタキタ─wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜─ !!
0034デフォルトの名無しさんNGNG
アセンブラでActiveXやDirectXは使えないの?
0035デフォルトの名無しさんNGNG
使える。沢村って奴がスゴい。
0036デフォルトの名無しさんNGNG
沢村とやらは、何故にアセンブラでそんなことをやろうとするのか。
何のメリットもない単なるオナニーにしか思えないんだが。
0037デフォルトの名無しさんNGNG
メリットってなんですか?その書き込みにはメリットがあるんですか?
0038デフォルトの名無しさんNGNG
好きでやってるんだし、別にオナニーでもいいと思うけどな
0039デフォルトの名無しさんNGNG
DirectXと言えばゲーム
これに関してはメリット大有り
0040デフォルトの名無しさんNGNG
CやC++でできる以上、面倒なだけでアセンブラでもできる。
でもメリットなんて無いよ。
高速化したければその部分だけインラインアセンブラ使えばいい。
0041デフォルトの名無しさんNGNG
次のタイトルは

「 アセンブラ… 。・゚・(ノД`)・゚・。 ウエーン 」

でお願いします
0042デフォルトの名無しさんNGNG
これだからハード任せのプログラマは…
0043デフォルトの名無しさんNGNG

      \∧_ヘ     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ,,、,、,,, / \〇ノゝ∩ < >>950盗り合戦、いくぞゴルァ!!       ,,、,、,,,
    /三√ ゚Д゚) /   \____________  ,,、,、,,,
     /三/| ゚U゚|\      ,,、,、,,,                        ,,、,、,,,
 ,,、,、,,, U (:::::::::::)  ,,、,、,,,         \オーーーーーーーッ!!/
      //三/|三|\     ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ∪  ∪       (    )    (     )   (    )    )
 ,,、,、,,,       ,,、,、,,,  ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
      ,,、,、,,,       (    )    (    )    (    )    (    )
0044デフォルトの名無しさんNGNG
>>36
アセンブラを学習することのメリットはあるんだが、説明するのはメンドウだな。
0045デフォルトの名無しさんNGNG
CPUの速度が今以上に上がれば、高速なアプリなんか苦労して作る必要なんか極端に減るよ。
8Bit、16Bit全盛のころはアセンブリ言語で書くのが普通だったのが、32Bitの高速CPUが出てきたころには
Cなどの高級言語で書くのが一般的になった。
今時、アセンブリ言語でプログラムを組む機会はほとんどない。
このまま、CPUの速度が向上すれば、VM上で動作する言語でほとんどのアプリが作成されるようになるんじゃないの?
要するに、ハードウェアの進歩によって、実行速度よりも、簡単に開発できることが優先されるようになるってこと。
0046デフォルトの名無しさんNGNG
NASMのトレンドとか追いかけてませんが、SSE3のコード吐けるパッチとか
ないですかね?
0047デフォルトの名無しさんNGNG
>>45
って10年前もいってたな。
0048デフォルトの名無しさんNGNG
というか、レイトレやリアルタイム3Dなど、計算量が膨大なアプリでは、ベクトルの内積・外積、行列の乗算、変換くらいは、SSEや3DNow!をサポートするためにアセンブリで書くよ。あとx87のパイプラインも目いっぱい使いたいしね。

0049デフォルトの名無しさんNGNG
え、またこの話題ぶり返してるの?
1スレ目の最初の方で結論出てると思ったが。
アセンブリ書いて得するのは書いている本人。
コンピュータの動作等に対する理解が深まる。
まあ、やってる人は殆ど趣味でやってるんだろうから
ほっとけってこった。
0050デフォルトの名無しさんNGNG
いい加減、くだらんネタは放置しろ。
こんなんだから、この板じゃまともなネタ師が
育たない、なんて言われるんだ。
0051デフォルトの名無しさんNGNG
>>45
>8Bit、16Bit全盛のころはアセンブリ言語で書くのが普通だったのが
(16bit ってのは見なかったことにするとして)
それはリーズナブルな価格のコンパイラが無かったからであって
速度云々ではない。
0052デフォルトの名無しさんNGNG
なんでアセ否定する人っていつも実用前提で書くのん?
趣味なんだよオタクなんだよ俺は
口出しするなあああああああああああああきええええええええええええええ
0053デフォルトの名無しさんNGNG
高級言語なんてのは、ただ高いだけの鉄筋コンクリート製のビルみたいなもんだ。
そこへいくと低級言語は、古式ゆかしい木造建築に通じるものがある。
無論、99%は風化し忘れ去られるだろうが、1000年経っても生き残るのは我々なのさ。
そのうち伝統工芸に指定されるかもしれんぞ。
0054デフォルトの名無しさんNGNG
人間国宝デーブ・カトラー
0055デフォルトの名無しさんNGNG
要するに古墳とかピラミッドみたいなものでしょ? > アセンブラ
後世の人間は「あぁ、昔の人は力押しの人海戦術で大変だったんだなぁ」と思いながら、土産物のZ80饅頭を売りさばき、
C+++++++くらいの超高級言語でプログラムを組むのさ。
0056デフォルトの名無しさんNGNG
>C+++++++
error: invalid lvalue in increment
0057デフォルトの名無しさんNGNG
斡旋ブラーどもにはCすら書けないようだ
0058デフォルトの名無しさんNGNG
Z80饅頭にワロタ
0059デフォルトの名無しさんNGNG
近くのFORTRAN遺跡ではパンチカード(まんまか)、
メインフレーム遺跡ではオープンリール磁気テープ型バームクーヘンが人気だそうだ。
0060デフォルトの名無しさんNGNG
マシン語出来る人間は何だって書けるが
CやJAVAしか書けない低能はそれだけ
0061デフォルトの名無しさんNGNG
何で偏る人がいるんだろうかね
共生できなきゃプログラマじゃねーよ
0062デフォルトの名無しさんNGNG
基板設計みたいなもんだな。いまはLSIの組み合わせが主流だが・・・。
アセンブラが必要になることはたまにはあるよ。
0063デフォルトの名無しさんNGNG
ドライバもかけないのね
0064デフォルトの名無しさんNGNG
C出来るやつはアセンブラだってやればできるだろ。
0065デフォルトの名無しさんNGNG
別に共生の必要性なんてゼロだしな
アセンブラさえあれば全てが可能なわけだろ
他の言語はただのアホ用ラッパーに過ぎない
0066デフォルトの名無しさんNGNG
そんな高尚な天才さんに付き合えるほど長い納期なんて無いけどな
0067デフォルトの名無しさんNGNG
exit();する前にfree();する必要が{ある|無い}双方の理由をアセンブラ的に教えてください
0068デフォルトの名無しさんNGNG
くだらん
0069デフォルトの名無しさんNGNG
>>67
アセンブラでの問題ではないな
OSとかそういうレベルのような
0070デフォルトの名無しさんNGNG
アセンブラやりたいけど、鯖や制御関係じゃなければ意味無いよな
0071デフォルトの名無しさんNGNG
例えはうまいようでも全くアセンブラでプログラムが書けない香具師ばかりだな。
0072デフォルトの名無しさんNGNG
鯖でアセンブラ要する場面ってめっちゃ少なくないか?


ところで最近のx86 CPUでは、Decoderがネックとなる場面がもっとも
多い感じがするな、つぎにLoad/Store Unitあたりか?

と寝た振りしてみる
0073デフォルトの名無しさんNGNG
今更x86でアセンブラ使う意味なんて無いよ。
コンパイラ作者でも無い限り。
0074デフォルトの名無しさんNGNG
このスレはコピペばかりだな

しかしアセンブラが必要な場面が減っているのは確かだな
qemuはダイナミックリコンパイラすらCで書いているし
0075デフォルトの名無しさんNGNG
スタートアップルーチンとかIPLとか、そういうところはアセンブラの出番じゃない?
0076デフォルトの名無しさんNGNG
画像処理で高速化したい場合よく使うけど。
まあそれでもインラインアセンブラまでだけどな。
0077デフォルトの名無しさんNGNG
VXDドライバを書く人もいないし。
0078デフォルトの名無しさんNGNG
大量の算術演算やゲームとか普通に使うだろ
0079デフォルトの名無しさんNGNG
>大量の算術演算やゲームとか
は、普通じゃないよ(w

0080デフォルトの名無しさんNGNG
UD Agentとかには使うかもなw
0081デフォルトの名無しさんNGNG
コンパイラの最適化じゃ拡張命令とか対応遅いしねー

SSE2とかもしばらくはicc買うかインラインで手書きしかなかったし
AMDになると尚更
0082デフォルトの名無しさんNGNG
結局、インラインアセンブラで十分ってことじゃん
0083デフォルトの名無しさんNGNG
インラインで十分でもアセンブラ不要説にはならない
0084デフォルトの名無しさんNGNG
アセンブラ不要説にはならないが沢村不要説の補強は出来る
0085デフォルトの名無しさんNGNG
アセンブラ知らないとOS作れない。
0086デフォルトの名無しさんNGNG
OSkitを使えばアセンブラ不要
0087デフォルトの名無しさんNGNG
BIOS作れないよ
0088デフォルトの名無しさんNGNG
そんなもの個人で作る物じゃない
0089デフォルトの名無しさんNGNG
あとエミュレータもつくれないな。
0090デフォルトの名無しさんNGNG
アセンブラは既にボトルネック改善にしか使われないからな
0091デフォルトの名無しさんNGNG
でも斡旋ブラ書けるとちょっとだけカコイイ。変態度が高そうだから近づきたくないけど。
0092デフォルトの名無しさんNGNG
Javaなんてもうサーバサイドにも使われなくなるからな。
0093デフォルトの名無しさんNGNG
Cとか言ってるのはサニーやカローラでも動けばいいジャンってタイプだな
アセンブラー使いは知能が高く判断する目があるからからセルシオやシーマ乗ってると
0094デフォルトの名無しさんNGNG
寧ろ86最強とか言って豆腐屋信仰してるキモオタにしか思えないのだが
0095デフォルトの名無しさんNGNG
ハコGT-R最速
0096デフォルトの名無しさんNGNG
アセンブラ最強だよ。使 い こ な せ れ ば な
アセンブラだけを最後に使ったのは何年前のことか…
0097デフォルトの名無しさんNGNG
違いが分かる男とか言いながらインスタントコーヒー飲んでやがんの
0098デフォルトの名無しさんNGNG
Subversionは何故Cで書かれたか。Cは勿論のことC++、Java、Perl、Rubyその他多くの言語で容易にラッピング出来、エクステンションを書くのが簡単なためである。


アセンブラはせいぜいCでラッピングしてもらわなきゃろくに使えないね。
0099デフォルトの名無しさんNGNG
>>98
アセンブラをCでラッピングってどうやるんですか?
0100デフォルトの名無しさんNGNG
Cの仕様そのものじゃん
0101デフォルトの名無しさんNGNG
>99
インラインに放り込むってことでしょ
0102デフォルトの名無しさんNGNG
>>100
Cの規格書のどこにそんな事が書いてありました?
該当箇所をおしえてください。
0103デフォルトの名無しさんNGNG
>>101
特権命令はどうすんの?
0104デフォルトの名無しさんNGNG
>103
無理?
0105デフォルトの名無しさんNGNG
っていうかおまいら、前スレ埋めろよ。
0106デフォルトの名無しさんNGNG
前スレ埋まる前に100レスワロタ
0107デフォルトの名無しさんNGNG
前スレすでにブックマーク外した
0108デフォルトの名無しさんNGNG
もしかしてアセンブラが出来ればコピーできないはずのクラスの値を丸読みできるとか?
0109デフォルトの名無しさんNGNG
>>108
いいたいコトの意味がわからない。
0110デフォルトの名無しさんNGNG
privateな値をすっぱぬきってこと
0111デフォルトの名無しさんNGNG
>>109
>いいたいコトの意味がわからない。
>>108もそう思っています。
0112デフォルトの名無しさんNGNG
>>110
んなもん、Cでもできるだろが。
0113デフォルトの名無しさんNGNG
>>110
privateという概念自体はその言語の文法上の
問題でしょ。
0114デフォルトの名無しさんNGNG
女子大生private
0115デフォルトの名無しさんNGNG
>>114
むしろ意味わからん。
0116デフォルトの名無しさんNGNG
public 女子高生 (*´Д`*)ハァハァ
0117デフォルトの名無しさんNGNG
普通はprotectedだがたまにpublicも居るな。しかしinterfaceにしておかないと多重継承が・・・
0118デフォルトの名無しさんNGNG
アセンブラじゃねーな
まあ細胞なんて愛せないから分かる気はする
0119デフォルトの名無しさんNGNG
俺もアセンブラ大好き。
直接ハードを制御するってのが面白いし、何より具体的でイメージがわきやすい。
学生の時、CやらJavaやったけど、イメージがわきにくかった。
0120デフォルトの名無しさんNGNG
PICマイコンでC言語使ってみろよ・・・
気持ち悪くなって、アセンブラで書きたくなってくるから。
0121デフォルトの名無しさんNGNG
>>115
http://adol.jp/anothergame/gametitle/jyosidaisei.htm
0122デフォルトの名無しさんNGNG
アセンブラでコーディングしているという人がいると聞いて驚いています。
今時どのような用途で使われているのでしょうか?
それともアセンブラしか使えない初期のプログラマの救済措置として
やむを得ず使っているのでしょうか?
よろしくお願いします。
0123デフォルトの名無しさんNGNG
>>122
1から10までフルアセンブルしているやつはそんないないだろ。
高速化する部分をアセンブリして最適化することが多いんじゃないの
0124デフォルトの名無しさんNGNG
>>122
やむを得ずつかってます。
Athlon/Pentiumで数値演算にMMXつかったり
とか(10倍になったけどまだ不足・・・)
マイコンとかではIO制御とか割り込み応答部とか
表示回りのごく一部とか・・・
どこもあと100倍位速度向上してくれたらもうちょっ
とアセンブラ使う局面はへるかも
0125デフォルトの名無しさんNGNG
逆に、アセンブリしかできないプログラマなんているんかのう。
0126デフォルトの名無しさんNGNG
アセンブリは低級言語なのに
アセンブリもできないでプログラマ名乗ってる香具師なんているの?
0127デフォルトの名無しさんNGNG
アセンブラしか出来ない奴より格段に稼ぎ良かったりな:D
0128デフォルトの名無しさんNGNG
C言語ってCASL�Uに書き換えたりできる?
0129デフォルトの名無しさんNGNG
>>127
しかしアセンブラ出来る香具師より食いっぱぐれ安い罠。
0130デフォルトの名無しさんNGNG
アセンブラしか出来ない奴って今仕事あるのか?
0131デフォルトの名無しさんNGNG
>>126

C言語も低級言語。
ライブラリとかが充実しているだけ。
0132デフォルトの名無しさんNGNG
メーカー開発だけど、アセンブラ使いまくり
0133デフォルトの名無しさんNGNG
>>122
あ、今そやよ
0134デフォルトの名無しさんNGNG
>>128

できる
CのプリプロセッサはCのソースをアセンブラに置き換えるだけの機能。
後はアセンブラがマシン語を作り出す仕組。
そのアセンブラに置き換える部分をCASL-IIに直していけば移植も簡単。
しかもプリプロセッサのソースコードはCと来たもんだ。
(だから、C言語は普及した)
0135デフォルトの名無しさんNGNG
>>134
Cのプログラムをここに書けば、書き換えてもらえますか?
CASLさっぱりわからなくて
0136デフォルトの名無しさんNGNG
首くくることを薦める
0137デフォルトの名無しさんNGNG
>>135
もらえません
0138デフォルトの名無しさんNGNG
>CのプリプロセッサはCのソースをアセンブラに置き換えるだけの機能。
(゚Д゚)ハァ?
0139デフォルトの名無しさんNGNG
プリプロセッサではないな
0140デフォルトの名無しさんNGNG
#include <stdio.h>
なんてのを数百〜数千行のソースで置換してくれるのがプリプロセッサ。
0141デフォルトの名無しさんNGNG
#!/bin/sh
FILE=hoge
rm -f ${FILE}*

echo "#include<stdio.h>" >> ${FILE}.c
for i in "$@"; do
echo "$i" >> ${FILE}.c
done

gcc $CFLAGS ${FILE}.c -o ${FILE}
./${FILE}
rm -f ${FILE}*

Cインタプリタ
0142デフォルトの名無しさんNGNG
printf専用ですか?
0143デフォルトの名無しさんNGNG
>>134
そのアセンブラに置き換える部分をCASL-IIに直していけば移植も簡単。
アセンブラに置き換える作業がわかんないんですよ。
誰かヘルプを。
0144デフォルトの名無しさんNGNG
gccのソース読めよ
0145デフォルトの名無しさんNGNG
どーせレポートかなんかだろ?
変なこと考えずにCASLで書いた方が早い。
0146デフォルトの名無しさんNGNG
EXEをアセンブリ言語に置き換えてくれるツールを紹介してください
0147デフォルトの名無しさんNGNG
dispe
0148デフォルトの名無しさんNGNG
>アセンブラでコーディングしているという人がいると聞いて驚いています。
>今時どのような用途で使われているのでしょうか?

こういうこと言う奴ってさ、電子回路の世界で言えば

「いまどきトランジスタ単体で回路を組む人がいると聞いて驚いています」
とか言っているのと同じような感じだな。
秋葉には今でもトランジスタ単体を売っている店が山ほどあるが。
そういうのがなぜ存在するのか、頭悪すぎて想像できないんだろうな。

あるいは、
「いまどき徒歩や自転車で通勤する人がいると聞いて驚いています。
文明人なら自動車で通勤すべきではないでしょか?」
とか言っているようなもんかも。
0149デフォルトの名無しさんNGNG
>>148
ひがむなよ時代遅れw
0150デフォルトの名無しさんNGNG
腹減ったので誰か俺のために晩飯をアセンブルしてください
0151デフォルトの名無しさんNGNG
最先端に行くほどアセンブラの出番があるんだよ。
まだCコンパイラがないとか・・・ね。
0152デフォルトの名無しさんNGNG
つか未だにCしかない現状。
いつになったら進歩するんだろね。
0153デフォルトの名無しさんNGNG
本物のプログラマはFORTRANを使う。
もしFORTRANで出来なければ、アセンブリ言語でやる。
アセンブリ言語で出来なきゃ、それはやる価値がないのだ。
0154デフォルトの名無しさんNGNG
本物のプログラマは現存しない、何故ならばそのあまりの能力の指向性により皆食いあぶれて絶滅してしまったからだ。
0155デフォルトの名無しさんNGNG
なんでプログラムで飯くっていかなあかんの?
0156デフォルトの名無しさんNGNG
本物のプログラマはプログラミング以外の仕事なんてしない。
もしプログラミング以外に職が無いならば、そこは彼らの生きるべき世界ではないのだ。
0157デフォルトの名無しさんNGNG
アセンブラオブジェクト指向がこれからの流れ
0158デフォルトの名無しさんNGNG
オブジェクト指向アセンブリング


キチガイ専用だな
0159デフォルトの名無しさんNGNG
>>150

胃袋でアセンブルした物がありますが、あげましょうか?
ゲロゲロゲロゲロ
0160デフォルトの名無しさんNGNG
>>151
最近だと、対象環境用のアセンブラをCで書いてクロスコンパイル?

>>159
そりゃアセンブルじゃなくてコアダンプだろ。
0161デフォルトの名無しさんNGNG
>>160
アセンブラを作らなきゃ、Cツクレネーってことだよ。
プログラムが作れるようになるのはどう考えても先に完成するのはアセンブラだ。

ソース書くだけならどっちでも好きな方ですぐ始められるが。
0162デフォルトの名無しさんNGNG
ごめん、旧世代の汚物にクロスコンパイルという言葉は高度すぎたか。
0163デフォルトの名無しさんNGNG
アセが嫌ならCコンパイラも使うな
0164デフォルトの名無しさんNGNG
>>162
対象環境用のアセンブラ必要ないの? 旧世代の汚物なんで良く判らんがw
0165デフォルトの名無しさんNGNG
メーカーのコンパイラは直接オブジェクトコードを生成することが多いよ。
もちろんアセンブリコード生成もオプションでサポートするが。
0166デフォルトの名無しさんNGNG
車のEUCの類も使うな
0167デフォルトの名無しさんNGNG
ECU?

あれは国産マイコンが使われてるので、C言語なかったりするかな。
0168デフォルトの名無しさんNGNG
ROMチューンで馬力 あげ
0169デフォルトの名無しさんNGNG
関数型アセンブラ言語マダー
0170デフォルトの名無しさんNGNG
>>169
そんな君におすすめ
ttp://alumweb.mit.edu/clubs/boston/events/auction2002/photos/museum07.jpg
0171デフォルトの名無しさんNGNG
>>170
ぉぉ、なんか感動した。
0172デフォルトの名無しさんNGNG
>>146 SYMDEB
0173デフォルトの名無しさんNGNG
そもそもパソコン使うな
0174デフォルトの名無しさんNGNG
>>164
>>160は「対象環境用のアセンブラを」Cで書く、と書いてるんだから、アセンブラ書くんだよ。
別にアセンブラそのものが対象環境で動く必要はないでしょ。
組み込みだと、実機で開発環境動くほどリッチとも限らんし。

・・・もしかして、「アセンブラ」と「アセンブリ言語」の区別がついてない?
0175デフォルトの名無しさんNGNG
俺今このスレ開いたばかりで この板の住人なわけでもないが
「アセンブラ」と「アセンブリ言語」の区別 って何だかよくわからんから教えてくれ
0176デフォルトの名無しさんNGNG
アセンブラ = C言語でいうところの、Cコンパイラ
アセンブリ言語 = C言語でいうところの、C言語
0177デフォルトの名無しさんNGNG
Cでもアセンブラでも、クロスコンパイルはクロスコンパイルじゃない?
クロスアセンブ{ル|ラ}って言葉はまず使わないよね。
0178デフォルトの名無しさんNGNG
>>177
よく使ってますたが。
0179デフォルトの名無しさんNGNG
マクロ化の進んだアセンブラならコンパイラと言った方が正しいかもね:D
askaとか
0180デフォルトの名無しさんNGNG
>>179
なんすかそれ?

漏れ定義は、括弧付きの式を直接書けなければアセンブラ。
0181デフォルトの名無しさんNGNG
コンパイラを「プログラミング言語をマシン語列に変換するプログラム」とするならば、そりゃアセンブラもコンパイラのうちだね
0182デフォルトの名無しさんNGNG
アセンブラとコンパイラを総合してトランスレータというのでわ?
0183デフォルトの名無しさんNGNG
>>179
昔何かのソースコードのドキュメントで見た名前だな。
ブツは書籍に付いてるとかなんとか。
0184デフォルトの名無しさんNGNG
KSASOの川合君が作ったアセンブラだよ
0185デフォルトの名無しさんNGNG
ASKAはプリプロセッサであってアセンブラではない
しかしアセンブリソースは変に抽象化されると逆に読み辛い
0186デフォルトの名無しさんNGNG
>>185
そうそう。結局Cと綺麗に棲み分けが出来てるわけで、
それをぶち壊して、新たなタイプのツールを作っても
違和感だけが強調されちゃう。
0187デフォルトの名無しさんNGNG
現在の長波JJYは搬送波にPLLでロックすればかなり正確な基準発振器になります。
便利ですよ。
0188デフォルトの名無しさんNGNG
サンク(thunk)ってなんですか?
0189デフォルトの名無しさんNGNG
>>186
今時フルアセンブラでIA32用のOSを組み上げようという変態だから仕方無い…
度忘れしたけど、フルアセンブラで各種サーバ(Web、FTP、IRC等々)まで動くOSがあったな…
0190デフォルトの名無しさんNGNG
>>188
どのthunkの事かしらんが、Win16→win32のAPI呼び出しに変換する
レイヤーの事か?
0191デフォルトの名無しさんNGNG
>>189思い出した、MenuetOSだ。
0192デフォルトの名無しさんNGNG
>>190
>どのthunkの事かしらんが、Win16→win32のAPI呼び出しに変換する
>レイヤーの事か?
すいません。thunk自体よくわかっていません。
変換するレイヤー?うーむ。
thunkで使用するx86命令ってあるんですか?
0193デフォルトの名無しさんNGNG
サンクは種類がいろいろあるので種類によってさまざまな命令が使われる
しかしサンクするための専用命令はない
0194188NGNG
thunkっていう行為は、16bit←→32bitの切替えをするってことですか?
0195デフォルトの名無しさんNGNG
モードを超えて呼び出す方法全般の事じゃないかな
0196デフォルトの名無しさんNGNG
Win環境ではWin16とWin32の間で相互に呼び出すための機構をthunkという。
少なくとも>>188には必要のない知識だと思うが。
0197デフォルトの名無しさんNGNG
>>188
http://info.astrian.net/jargon/terms/t/thunk.html

・・・??(;´Д`)
0198デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/developer/library/vccore/_core_using___declspec.28.dllimport.29_.and___declspec.28.dllexport.29.htm
に書いてあるサンクのことか?
0199188NGNG
thunkってwindows環境で使用される用語みたいですね。
ありがとうございました。
0200デフォルトの名無しさんNGNG
戦車
0201デフォルトの名無しさんNGNG
8086のメモリ上の2バイトのデータへアクセスする時に
データアドレスが偶数番地から始まっている場合の方が奇数番地から始まっているよりも
早くアクセスできるということなのですが、なぜでしょうか?
          0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
偶数番地から始まる |-----------------------------------|
奇数番地から始まる  |------------------------------------|

8086は常に偶数番地、次に奇数番地という順にアクセスしているから
でしょうか?上の図だと奇数番地は0から15番地を読んでから再び0から1から
16番地を読むことになり2回アクセスしていることになるのですが。
0202デフォルトの名無しさんNGNG
データバスが8本じゃないから。
0203デフォルトの名無しさんNGNG
データバスが8本の場合のメモリ構成(四角の上の数字はビット番号を示す)
 7      0 addres
 ■■■■■■■■ $0000
 ■■■■■■■■ $0001
 ■■■■■■■■ $0002

データバスが16本の場合のメモリ構成
 15         0 addres
 ■■■■...■■■■ $0000
 ■■■■...■■■■ $0002
 ■■■■...■■■■ $0004

データバスが32本の場合のメモリ構成
 31         0 addres
 ■■■■...■■■■ $0000
 ■■■■...■■■■ $0004
 ■■■■...■■■■ $0008

メモリはアドレスバスから出力されたアドレスに対応する列のデータをデータバスに流す。
例えば16bit構成のメモリでアドレスバスに$0002が出力されていたら
対応するセルのデータをデータバスD15〜D0に流す。
 15         0 addres
 ■■■■...■■■■ $0000
 ■■■■...■■■■ $0002 ←ここの列のデータをデータバスに流す
 ■■■■...■■■■ $0004

この例で、境界をまたいでデータアクセスする場合、例えば$0001から2バイト取得する場合は
1回目のバスサイクルで$0000を指定し半分の1byteを取得して、
2回目に$0002を指定し残り半分を取得する、という風にバスサイクルが2回必要になる。
一方$0000から2byte取得したい場合は(境界をまたがない場合)は1回のバスサイクルでデータを取得できる。
0204デフォルトの名無しさんNGNG
さっぱり意味が分からないのでもう少しわかりやすくお願いします
0205デフォルトの名無しさんNGNG
8086はアドレスをバイト単位で扱うがデータバスは2バイト(16ビット)ある。
偶数アドレスにある2バイトは同じワードアドレスなので一度に転送できる。
奇数アドレスにある2バイトは1バイト目と2バイト目が別のワードアドレスになるので
それぞれのワードアドレス毎に転送しないといけない。そのため転送は二倍のサイクルがかかる。

なんで偶数奇数になるかっていうとバイトアドレスをワード数の2で割ると
偶数はあまりが0になる=ワードアドレスとしてみると綺麗
奇数はあまりが1になる=ワードアドレスとしてみると中途半端
0206デフォルトの名無しさんNGNG
203、205の説明は、要するに$0000の後半半分(0001から1バイト)を1回目のアクセスで
取り出して、2回目のアクセスで$0002の前半(0002から1バイト)を取り出すという
ことなんでしょうか?
自分が読んでいる本には、早くアクセスできる要因は、8086が常に偶数番地と次の
奇数番地の2バイトをデータとしてアクセスすることから生じる。
これのいってることがよく分からないです。
0207デフォルトの名無しさんNGNG
>>206
8086以外の奇数アドレスからByte以外のデータをアクセスしようとすると
バスエラーを起こすCPUの例を考えてみた方がいいかも。
0208デフォルトの名無しさんNGNG
>早くアクセスできる
いやむしろ逆に、“ワード境界をまたいだアクセスの場合にペナルティーが生じる”と、普通は考える訳だが。
それプラス「一度に16bitのデータをまとめて取得できる」とすればいいのかな。
0209デフォルトの名無しさんNGNG
>203、205の説明は、要するに$0000の後半半分(0001から1バイト)を1回目の..
まあ、そうゆう事。
“速い”と言ってるのは多分8bit CPUと比較して言ってるんじゃないかな。

メモリとCPU間に16本のデータの流れるラインがあるから
8本しかない8bit CPUに比較して2倍の転送力が稼げる。
8bit CPUでは2回アクセスしなければならない所、8086では1回のアクセスで
16bitデータが取得できる。

ただし奇数番地から始まる2byteはメモリ上で別々のラインに入っているから
2回アクセスして、それを組み合わせて16bitにしなければならず(ペナルティー)
その分、遅くなると。(8bit CPUと同じ転送力になってしまうと)
0210デフォルトの名無しさんNGNG
おぉ!なるほど。そういうことですか。
これで、疑問が解決しました。追求してみてやっと分かるのは、
すごく気持ちがいいものですね。もっと8086アセンブラ勉強したいと思います。
202-209氏、どうもありがとうございます。
0211デフォルトの名無しさんNGNG
オレは人に教えるのに向いてないなぁ。
たぶん2回目の何ででどうしてもって答えそうだw

ハード依存の原理はハード側から勉強した方が納得いくよね。
0212デフォルトの名無しさんNGNG
6502はここで取り扱ってますか?
0213デフォルトの名無しさんNGNG
>>212
知ってる奴は多いと思うぞ。
0214デフォルトの名無しさんNGNG
ノシ
0215デフォルトの名無しさんNGNG
アセンブラだけアセンブルとか言うのは許せないな。
統一的にコンパイルと言うべきだ。
0216デフォルトの名無しさんNGNG
Cのプログラムをアセンブリ言語に変換することは何ていえばいい?
0217デフォルトの名無しさんNGNG
コンパイル
0218デフォルトの名無しさんNGNG
マシン語への変換がコンパイルぢゃあないのか
0219デフォルトの名無しさんNGNG
make でいいやん(マテ
0220デフォルトの名無しさんNGNG
言語を別の言語に変換するのがコンパイル。
返還後は別にマシン語やアセンブラで無くても良い。
0221デフォルトの名無しさんNGNG
>>212
ほぼ現役(汗
0222デフォルトの名無しさんNGNG
流石にマシン語は言語と言わない だろう
0223デフォルトの名無しさんNGNG
うわ、ageてしもた…
0224デフォルトの名無しさんNGNG
京都府警ハイテク課職員はアセンブラは得意なんだろうな。
0225デフォルトの名無しさんNGNG
クリックなんて超高度技を使えるぐらいだから当然だな。
0226デフォルトの名無しさんNGNG
>>203
pen4は64bit幅と聞いたけどアドレスが8の倍数でないと遅くなるの?
0227デフォルトの名無しさんNGNG
台形公式を求めるプログラムがわかりません・・・。いろいろなサイトを
見てコンパイルするのですができないのです。教えてください!!
 1 
∫ e^-x^2dxをといてください!お願いします
 0
0228デフォルトの名無しさんNGNG
>>226
最近のCPUはメモリとCPUの間にキャッシュがあるからもっと複雑
0229デフォルトの名無しさんNGNG
486にもあるよ
0230デフォルトの名無しさんNGNG
>>226
結論から言うと、Pentium4の内部データバスは64bitではなく32bitなので、
「アクセスするアドレスが4の倍数でないとペナルティが付く」が正解、のはず。多分。

外部データバスってのは、メインメモリ(DRAM)とCPU内のキャッシュを繋ぐバス。
内部データバスってのは、CPU内のキャッシュとレジスタを繋ぐバス。

>>201からの話題で単純にデータバスと言ってるのは、厳密に言えば内部データバスの話。
8086〜80486までは内部も外部も差はなかったんだけど、
Pentiumからは内部32bit・外部64bitと違うサイズになってしまった。
0231デフォルトの名無しさんNGNG
というか、80386までは内部キャッシュはなかったから、
内部外部の区別そのものがなかった、というべきか。

ちなみに、アライメント境界を跨ぐペナルティは2〜3クロック程度なので、
アプリケーションレベルの話になればたいしたものではない、とは言えなくもない。
Pentium時代にまでくれば、アライメント境界なんかよりも、
キャッシュミスとかページフォルトとか、もっとダメージのでかい要素があるしね。
0232デフォルトの名無しさんNGNG
分岐予測ミス
0233デフォルトの名無しさんNGNG
>>201からの説明書いてた者ですが
キャッシュが絡むとどうなるのか分からないんで
「この説明でいいのかなぁ」等と思いながら書いてました。
キャッシュを持たない16bit外部バスのイメージで書いてました。

キャッシュなしで32bit外部バスで、2byte目と3byte目を
組み合わせた16bitを取ってくる場合などを考えてみると
奇数バイトから始まってはいても
境界をまたいでないから
ペナルティーはつかないだろうと思います。
0234デフォルトの名無しさんNGNG
>>231
> 内部外部の区別そのものがなかった
これ間違ってたので訂正。
8086の廉価版である8088は内部16bitで外部8bitだから、内部外部の概念は昔からあったんだった。
16bit(1word)読むのに8bit x 2でやってたらしいけど、それでも速度低下は2割くらいだったらしいから、
いかに昔のCPUのロジックが遅い(クロックペナルティがでかい)かが分かる。
0235デフォルトの名無しさんNGNG
台形公式を求めるプログラムが書けたら神だよな…
0236デフォルトの名無しさんNGNG
http://www.google.com/search?num=50&hl=ja&lr=lang_ja&safe=off&ie=SJIS&oe=SJIS&q=%91%e4%8c%60%8c%f6%8e%ae
023768K + 68881/2NGNG
step equ 512    ;分割数(可変)
 entry
 fmove.b #0,fp1  ;result := 0

 fmove.b #0,fp0  ;result := result + f(0.0) / 2.0
 bsr myfunc    ; 両端は半分にして最初に足す
 fdiv.b #2,fp0
 fadd.x fp0,fp1

 fmove.b #1,fp0  ;result := result + f(1.0) / 2.0
 bsr myfunc
 fdiv.x #2,fp0
 fadd.x fp0,fp1

 move.l #step-1,d0 ;for x := step-1 downto 1
loop:
 fmove.l d0,fp0   ;result := result + f(x/step)
 fdiv.l #step,fp0  ; 中間は関数値をそのまま加えあげる。
 bsr myfunc
 fadd.x fp0,fp1
 subq #1,d0
 bne loop
 fdiv.l #step,fp0  ;result := result / step. 最後に幅で割る。結果はfp0に残る。
 rts

myfunc:      ;積分する関数本体 exp(-(x^2))
 fmul.x fp0,fp0 ;x^2  
 fneg.x fp0   ;-x
 fetox.x fp0   ;exp(x)
 rts
0238台形公式NGNG
× fdiv.l #step,fp0  ;result := result / step. 最後に幅で割る。結果はfp0に残る。
 ↓
○ fdiv.l #step,fp1

か。レジスタ間違えた。
“幅で割る”じゃなくて、幅をかける、若しくは分割数で割る、だね。
最終結果はfp0じゃなくてfp1に入ってる、です。
0239デフォルトの名無しさんNGNG
GJだマイスター。
これで>>227の宿題もバッチリだね( ´ー`)b
0240デフォルトの名無しさんNGNG
      -‐-   
  , ´,     ヽ
  ! ! !リノ从ハ.〉
  l r! krェ rァ|.|  <又吉イエス!!又吉イエス!!
  | | l、 ー .ィ!l
  | /'\V/、ヽl.|
  ! i  く小>  リ
0241デフォルトの名無しさんNGNG
それは「台形公式のプログラム」であって、「台形公式を求めるプログラム」
ではないと思う。
0242デフォルトの名無しさんNGNG
最適化の手法がいくつかある場合
実際にベンチマークとって最適なコードを選択・出力するコンパイラとかできないのかね。
0243デフォルトの名無しさんNGNG
>>242
Java の JIT コンパイラではわりとふつーではないかと。

0244デフォルトの名無しさんNGNG
      _ 〃´─≠⌒Yミ/∧_/(⌒∧//∧ミ
    //´≠`ヾ彡三=三≠=・/=三=・∀\
   //彡ヽヾ)))三=.ノ─ヽ、─=≠三 ミ ミ i
   |/(/UUし彡’               ミミ\ヽヾ !
  /i||iシ/      ∧_∧          \!l |l|| i
  ソli・∀/       ( ;´Д`)        !i li i|l・∀|l
 ||i l |||lつ     (U_U )つ      li  li ((l|lil
 ヽヽ_/|ノ        モナクロサンボ     / //|Y l|/
 \ミミ\ヽ                 / //|/彡
  ミヽ・\ヾ゙、三 ─ = _ __   _≠/// ゴロゴロゴロゴロゴロ…
   ヽとと\≠=( ̄))∧_∧//´(((((三彡∨彡ノ/
    (__ト(((ト三 =》∩ _)≠─=つつ三彡彡
        ─二三__,三二  ,.≫三=三彡
0245デフォルトの名無しさんNGNG
x86でページエントリがTLBに読み込まれるとき、(バーストモードで)複数の
エントリが読み込まれるのか、それとも1つだけ読み込まれるのか?
どうなんでしょう。
0246デフォルトの名無しさんNGNG
バーストモードで複数のエントリがデータキャッシュに読み込まれ、
そのうちの1エントリがTLBに読み込まれる、じゃないかな??
0247246NGNG
データキャッシュじゃなくて2次キャッシュかな?
0248デフォルトの名無しさんNGNG
>>245
メモリアクセスのストライドを4、8、12KB・・・と、それぞれ時間を計測して
みれば分かるんじゃない?
0249デフォルトの名無しさんNGNG
俺の勘としては、TLBに連続ページエントリを一気に入れても、
メリットほとんどないから、そんなことしないと思う。
4Kおきに連続してアクセスするような稀なアプリの性能上げても無意味。
他のページにアクセスに行ったりしたら、
エントリを余計につぶしておいても損する可能性大。
それより、x86じゃ広すぎ。
0250デフォルトの名無しさんNGNG
>>246に同意。
メモリから直接TLBに値が入るということはないとおもう。
AMDはL2にTLB用のキャッシュがあったような。
0251デフォルトの名無しさんNGNG
TLBはアドレス解決時に参照するのでキャッシュアクセスとはそもそもタイミングが違うんじゃないか?
0252デフォルトの名無しさんNGNG
>>251
といっても外から見りゃ普通のメモリアクセスと区別出来ないのでは?
このへんはデータシートに書いてあると思うが。
0253デフォルトの名無しさんNGNG
TLBだけキャッシュスルーしてたら性能にえらい影響が出ると思うが
0254デフォルトの名無しさんNGNG
ttp://www.intel.com/technology/itj/q12001/pdf/art_2.pdf

これの4,5ページを見ると、命令用のTLBはL2からデータをもらっている
ようですね。

P4のデータ用TLBってこの図から見られないんだけど、L1と共用なのかな?
0255デフォルトの名無しさんNGNG
>>254
ftp://download.intel.co.jp/jp/developer/jpdoc/vol6iss1_art01_j.pdf

DTLB はアドレスを物理アドレスに変換します。
DTLB には完全にアソシアティブな64のエントリが
用意されており、各エントリは4K または4MB の
ページのいずれかをマッピングできます。
0256デフォルトの名無しさんNGNG
http://www5c.biglobe.ne.jp/~ecb/assembler/assembler00.html
のHPを見ながらアセンブラの勉強させてもらってるんですが
http://www5c.biglobe.ne.jp/~ecb/assembler/2_5a.html
の練習問題のところで

moval,[si+1]
mov[di+1],al
moval,[si+2]
mov[di+2],al
moval,[si+3]
mov[di+3],al

と書いてあるのですがこれはどういう意味なのでしょうか?
レジスタにoffsetでdata1や2の格納アドレスを代入し
そのアドレス行をずらしたモノをまた代入してると思うのですが
一体なんの意味があるんでしょか?

私的には
movsi,offset DATA1
movdi,offset DATA2
moval,[si]
mov[di],al
これだけでコピーはできているハズだからそれでいいのではないかと思うのです。

後の行のラベルやシステムコールなどについてはいろいろなHPをみたり
して理解できたのですがここの部分だけがどうしてもわかりません。
どうかお力添えをお願いします。

;アセンブラ本って凄く少ないのですね・・本屋を歩き回って見つけたのが4冊・・
0257デフォルトの名無しさんNGNG
最初からやりなおせ
0258デフォルトの名無しさんNGNG
上
al = si[1];
di[1] = al;
al = si[2];
di[2] = al;
al = si[3];
di[3] = al;

下
al = si[0];
di[0] = al;
て事でいいですか?

movsb×3でいいんじゃないかと思うが。
0259デフォルトの名無しさんNGNG
4byte
0260デフォルトの名無しさんNGNG
>>256オメ

mov  eax,[si]
mov [di],eax

の間違いじゃなくて。
関係ないけど、そのページ、内容が古すぎてあまり役に立たないと思う・・・
この前ここに張って有った入門�nより多少ましな感じはするが、どっこいどっこい。
0261デフォルトの名無しさんNGNG
>>257
練習問題までのページを5回、他HPも読み返しているのですがマジでアホでごめんなさい。

>>258
はい。字詰め表示になってしまいました。その通りです。

>>259
4バイトだから4バイト分づらす?う〜んどういうことだろ・・
0262デフォルトの名無しさんNGNG
>>260
ぇ
そうなのですか。
確かにdosのシステムコールなんてもう使わないような気もします
32bitではなく16bitCPU用に書いてあるとも思うのですが
アセンブルに関する資料がネット、書籍ともに少なくて。
0263デフォルトの名無しさんNGNG
DATA1の内容(ABCD)をDATA2にコピーして、DATA2を表示するプログラムを作りたい。

DATA1db'ABCD',24h
DATA2db'0000',24h
              ↓
DATA1db'ABCD',24h
DATA2db'A000',24h
              ↓
DATA1db'ABCD',24h
DATA2db'AB00',24h
              ↓
DATA1db'ABCD',24h
DATA2db'ABC0',24h
              ↓
DATA1db'ABCD',24h
DATA2db'ABCD',24h

0264デフォルトの名無しさんNGNG
DATA1の内容(ABCD)をDATA2にコピーして、DATA2を表示するプログラムを作りたい。

DATA1   db    'ABCD',24h
DATA2   db    '0000',24h
              ↓
DATA1   db    'ABCD',24h
DATA2   db    'A000',24h
              ↓
DATA1   db    'ABCD',24h
DATA2   db    'AB00',24h
              ↓
DATA1   db    'ABCD',24h
DATA2   db    'ABC0',24h
              ↓
DATA1   db    'ABCD',24h
DATA2   db    'ABCD',24h
0265262NGNG
>>264
ご説明ありがとうございます。
dbというニモニックは1バイトの文字を
メモリアドレスのどこかに一行目A 二行目B 三行目C 4行目Dのような形で
順次連番アドレスで一つ一つ格納していくものである。

ラベルはそのdbで定義されたデータの先頭アドレスを示すものである。

よってABCDを求めたいのであればラベルの示す行から3行目、全部で4行を
指定してやる必要がある。

こう言う解釈でよろしいでしょうか?
0266デフォルトの名無しさんNGNG
lodswとstoswがいいな
0267デフォルトの名無しさんNGNG
まあ32ビットでロードストアすれば2命令で済むのは確かだが。
0268デフォルトの名無しさんNGNG
はじめて読むPentium マシン語入門編
ttp://www.ascii.co.jp/books/detail/4-7561/4-7561-4466-7.html
0269デフォルトの名無しさんNGNG
486じゃなくて8086の方のリメークだったか
0270デフォルトの名無しさんNGNG
そもそも真面目に勉強してるのか? この質問者は
0271ぽろじょあ ◆niBmDfC40k NGNG
 <ω>
  |・ ・|
ノ( 。3。)ヽ エルァー ボクちょっとしか真面目じゃないYO
0272ほんたまNGNG
おみゃ〜らよ、おれは名無し@沢村よ。
おみゃ〜らよ、おれはほんたまよ。
おみゃ〜らよ、おれがほんたまになった件わかるか?
おみゃ〜らよ、「Visual E++」が「Slim de Can」になった件わかるか?
「Slim de Can」は限りなくマシン語に近いアセンブラよ。
疎いな…おみゃ〜らは…詳しくはここだ↓

http://hp.vector.co.jp/authors/VA015412/

自分じ見ちみれ♪
0273デフォルトの名無しさんNGNG
u
0274デフォルトの名無しさんNGNG
ストリング命令が分からないです。
NASMの16bit exe形式なんですが、これで上手くいきません。
どうすれば上手くいくのでしょうか?

;worldの最初の'a'を'H'にしたい
;省略
mov si,hello
mov di,world
movsb

mov dx,hello
mov ah,09h
int 21h

mov dx,world
int 21h

;省略
segment data
hello: db 'Hello World',13,10,'$'
world: db 'aaaaaaaaaaaaaaa','$'
0275デフォルトの名無しさんNGNG
;省略
の直後に

mov ax,data
mov ds,ax
mov es,ax

とか?
0276デフォルトの名無しさんNGNG
っぽいね。movs[bwd]はds:si→es:diだから。
こないだから質問してる人かな? CPUのマニュアルもっとよく読んだほうがいいよ。
高級言語と違って「よしなに」はやってくれないからね。
0277デフォルトの名無しさんNGNG
>>275
mov ax, SEG data
では?
0278274NGNG
>>275さんのやり方で上手くいきました、ありがとうございます。

あと、名誉のために言っておきますが、>>256さんと私は別人です。
0279デフォルトの名無しさんNGNG
OS使わずにディスクから起動してほかの
0280デフォルトの名無しさんNGNG
>>279
考えまとまってから書けよ
0281デフォルトの名無しさんNGNG
>>279
お前には無理だ。
0282デフォルトの名無しさんNGNG
>>278
物理的には別かも知らんけど、な。
わかるやろ?
0283デフォルトの名無しさんNGNG
>>282
スルーしなって。
この手の人にはいくら言っても無駄だから。
0284デフォルトの名無しさんNGNG
インラインアセンブラオンリーユーザなんだど、
コンパイラってなに使うのx86系で。
Cとかとリンカで混合して使うのそれともフルアセンブラ?
0285デフォルトの名無しさんNGNG
>>284
聞きたいことがわからん。もう一度整理してくれ
0286デフォルトの名無しさんNGNG
>>.284
用語と日本語文法の勉強して出直せ。
0287デフォルトの名無しさんNGNG
古本屋でプログラムはなぜ動くのか、って本があったから
買ったけど意味不明
0288デフォルトの名無しさんNGNG
>>284の訳(多分)
私はx86系でインラインアセンブラを使っているのですが、
皆さんはソフトウェアを作るときアセンブラをどのように使っているのですか。
(例えば一部Cなどで書いて、それとアセンブラのコードとはリンカで1つにリンクしているなど)
それとも全てアセンブラだけで書き上げたりするものなのでしょうか?
0289デフォルトの名無しさんNGNG
>>284の訳(英文)
it is an INRAIN assembler-only user -- ど
and KOMPAIRA って -- what -- the x86 system of 使う
C -- と -- using by RINKA, mixing, or a full assembler
0290デフォルトの名無しさんNGNG
いや単にNASMとか聞いてるんじゃなかろうか・・・
0291デフォルトの名無しさんNGNG
>>284 の文意を想像するスレ
0292デフォルトの名無しさんNGNG
ここは日本語も読めない低学歴プログラマーのすくつですか?
0293デフォルトの名無しさんNGNG
>>284=>>292必死だな、と。
0294デフォルトの名無しさんNGNG
日本語理解するの難しいよ。書くのはもっと難しい。
アセンブラの方がよっぽど簡単。いざとなったら動かして試せるし。
0295デフォルトの名無しさんNGNG
>>294
この業界で仕事してると、ほんとそう思うよ名
「プログラムって簡単!」
0296デフォルトの名無しさんNGNG
日本語が読めなかったら低学歴なんだ・・
よくあるけれど、既出をがいしゅつと読んだり、
巣窟をすくつと読んだりするの、やめよう・・ね?
0297デフォルトの名無しさんNGNG
ネタをネタと(ry
0298デフォルトの名無しさんNGNG
りゅうせき
0299デフォルトの名無しさんNGNG
日本語に精通した並のプログラマ>>>>>>>>>日本語アレでも天才プログラマ
0300デフォルトの名無しさんNGNG
読み方間違えたら即ネタとして誤魔化す。これいかに
0301デフォルトの名無しさんNGNG
そんなもんだろ
0302デフォルトの名無しさんNGNG
こまったもんだ
0303デフォルトの名無しさんNGNG
お前しか困らん
0304ほんたまNGNG
おみゃ〜らよ、おれのスリムドカンはある意味アセンブラよ。
スリムドカンはおれのページにあるから見ちみれ?

http://hp.vector.co.jp/authors/VA015412/
おみゃ〜らよ、おれはいまリソースエディタをつくってるのよ。
スリムドカンに装備させるためよ。
おみゃ〜らよ、アセンブラをつくるのはいいが、リソースエディタのないアセンブラはアセンブラとはいわんぞ!
自分じわかるかな?
0305デフォルトの名無しさんNGNG
教えてください!! Bit scan を Intel 系で(数%でもいいから)高速に
行いたいのです.しかも,僕は C以外の言語を知りません... Cコンパイ
ラに bsr を使わせる事は出来るのでしょうか? もしくはインラインア
センブラを使うならばどう書けばよいのでしょうか? とりあえず,素
人なりに VC inline asmembly 書いてみました.これってどうなのでしょ
う...

int scan_three_integers( int i1, int i2, int i3 )
{
__asm { bsr edx, dword ptr i1
mov eax, 31
jnz l1
bsr edx, dword ptr i2
mov eax, 63
jnz l1
bsr edx, dword ptr i3
mov eax, 95
l1: sub eax, edx }
}
0306デフォルトの名無しさんNGNG
edxはどこから出てきたの?
0307306NGNG
すまん寝ぼけてたようだ…忘れてくれ
0308デフォルトの名無しさんNGNG
>>305
>これってどうなのでしょう...

何をする関数なのか仕様を書いておかないと
ソースから仕様を分析せなならんので俺はスルーしたくなる。
0309305NGNG
> 何をする関数なのか仕様を書いておかないと

上記の関数 scan_three_integers() は,3つの int 引数からなる 96 bit 列
を左から走査し,ビットの立っている位置 {i|0,1,...,95} を返すようになっ
ている筈です.但し,引数 96 bit のうち,少なくとも 1 つのビットは立って
いることを仮定しています.

パイプライン・条件分岐等のことは一切考えず(いや,むしろ考えられず),
ただただ動くように命令を並べただけです(汗).
0310デフォルトの名無しさんNGNG
確率が高いほうから調べるくらいしかやりようがないような
0311デフォルトの名無しさんNGNG
まずバイト単位で0じゃないバイトを探してからビットを探すってのはどう?
0312デフォルトの名無しさんNGNG

(1)下記、1次元8点DCTのCPU命令によるプログラムの実行サイクル数を求めよ。
ただし、MUL Ri,Rjについては演算はEステージ、結果格納はSステージで行うとする。
(2)このプログラムの最内ループのパイプラインステージを描け。
(3)MULのEステージが2サイクルかかるとした場合、実行サイクルはどうなるか?
MOV #8,R13 MOV.W aStart,R5 MOV.W Sstart,R6 L2:MOV.W sStart,R4
SUB R10,R10 #r10:accumulater MOV #8,R12 L1:MOV.W@R4+,R8 MOV.W@R5+,R9
MUL R8,R9 ADD R9,R10
DT R12 #r12 –1,if r12=0 then T=1
BF L1 MOV.W R10,@R6+
DT R13 #r13–1,if r13=0 then T=1
BF L2
End:
メモリ(URAM)
R4 S(0) S(1) S(2)::
R5 a(0,0) a(1,0) a(2,0) ::
R6 S(0) S(1) :
7
ΣS(x) a(x,y) 1次元8点DCT
x=0
0313デフォルトの名無しさんNGNG
宿題はスレ違いです
0314デフォルトの名無しさんNGNG
SHだかなんだか知らないが情報不足でいずれにしろ解けないな
0315デフォルトの名無しさんNGNG
alpha21364のアセンブラをやらないといけない事になったのですが
役に立つ書籍等があれば教えてください
0316デフォルトの名無しさんNGNG
教えるクンがいるとすぐ意味不明の質問スレになるな
お約束だが
0317デフォルトの名無しさんNGNG
>>315

21364は、SMPとメモリコントローラ周りの統合がメインで、
コアは、21264からほとんど変更無いから
英語本で良ければ21264の文献はいくつか見つかる。
0318ほんたまNGNG
おみゃ〜らよ、おみゃ〜らさーん♪
おりはよ、「Slim de Can」を使ってやっとメインウィンドウにコントロールをつけるサンプルの作成に成功したぜ。わはは♪
「Slim de Can」ってすげ〜な〜、イベントドリブンプログラムが作成できるとこまでついに進化したよ。
おりはもう神だね♪どうよ?

http://hp.vector.co.jp/authors/VA015412/
0319305NGNG
お返事ありがとうございます.

> 確率が高いほうから調べる

なるほど.どの bit が立っている確立が高いか考えて順番を入れ替えて
見ます.


> まずバイト単位で0じゃないバイトを探してからビットを探すっての
> はどう?

C でプログラムを書く場合,上記のような方法も考えました.8 bit 単
位で bit の立っている位置,もしくはどこも立っていないという情報を
格納した 256 要素からなるテーブルを参照する方法です.しかし,
inline assembly で bsr 命令を使うと,32 ビット単位の bit scan
をしつつ,どの bit もたっていなければフラグを立ててくれるのです.
0320デフォルトの名無しさんNGNG
>>319
bit scan命令が遅いのは知ってる?
0321305NGNG
> bit scan命令が遅いのは知ってる?

知りませんでした.情報ありがとうございます.ただ,bit scan 命令より
も速い手法を知らないのです.

Inline assembly での bsr 命令使用以外で試したのが,bit が見つかるまで
ループさせる方法と,テーブルを数回参照する方法です.

テーブル参照の方法で試したのは,要素数 256 のテーブル 12回参照と,要素数
65536 のテーブル 6回参照の2通りです.

PentiumIII では bsr 命令のほうが効率が良かったです.
0322デフォルトの名無しさんNGNG
>>320
bit scan命令が遅いって
いつの時代のCPUですか?
0323デフォルトの名無しさんNGNG
安土桃山ごろ?
0324おばかさんNGNG
>>305
もしまず0チェックすることによって bsrをただ3回やるより速くなるのならばこんなのどうかな?1000万回くらいループしてベンチとんないと最近のはキャッシュがあるから性能はわかんないね。
int scan_three_integers( int i1, int i2, int i3 )
{
__asm {
 mov ecx, dword ptr i1
 jecxz NEXT1
 bsr edx, ecx
 mov eax, 31
 jmp DONE
NEXT1: mov ecx, dword ptr i2
 jecxz NEXT2
 bsr edx, ebx
 mov eax, 63
 jmp DONE
NEXT2: bsr edx, dword ptr i3
 mov eax, 95
DONE: sub eax, edx }
}
0325おばかさんNGNG
すまん、バグ発見。
int scan_three_integers( int i1, int i2, int i3 )
{
__asm {
 mov ecx, dword ptr i1
 jecxz NEXT1
 bsr edx, ecx
 mov eax, 31
 jmp DONE
NEXT1: mov ecx, dword ptr i2
 jecxz NEXT2
 bsr edx, ecx
 mov eax, 63
 jmp DONE
NEXT2: bsr edx, dword ptr i3
 mov eax, 95
DONE: sub eax, edx }
}
0326デフォルトの名無しさんNGNG
前スレで、WinXP上でAMDの64bitモードに切り替えたという話があったと思います。
モード切り替えには物理アドレスと仮想アドレスが同じとなるメモリ領域を確保する
必要があると思うのですが、どのようにしたのでしょうか? 
お願いします。
0327デフォルトの名無しさんNGNG
bsr/bsfはathlonでvectorpath+latency10前後..
微妙に重いね
0328デフォルトの名無しさんNGNG
32ビットbsrはi486で6〜103クロック。
P5で7〜71クロック。
0329デフォルトの名無しさんNGNG
P6のbsrのレイテンシはわずか2クロック
0330デフォルトの名無しさんNGNG
_scan_three_integers PROC
MOV EAX,[ESP + 4] ' EAX = p1
ADD EAX,-1
SBB EAX,EAX 'EAX = (p1 != 0) ? -1 : 0
ADD EAX,EAX 'EAX = (p1 != 0) ? -2 : 0
MOV ECX,[ESP + 8] 'ECX = p2
ADD ECX,-1
SBB ECX,ECX 'ECX = (p2 != 0) ? -1 : 0
AND ECX,EAX 'ECX = (p1 != 0) ? -2 : ((p2 != 0) ? -1 : 0)
MOV EAX,ECX
SHL EAX,5
ADD EAX,95 'EAX = (p1 != 0) ? 31 : ((p2 != 0) ? 63 : 95)
BSR EDX, [ESP + 12 + ECX * 4]
SUB EAX,EDX
RET
_scan_three_integers ENDP
速いかどうかはわからんがこういう方向もあり
0331デフォルトの名無しさんNGNG
AMD64はレジスターレジスタオペランドで11clock。
VectorPathだから一番いい状態のときのものだと思う。
0332ほんたまNGNG
おみゃ〜らよ、おみゃ〜らさーん♪
おりはよ、「Slim de Can」を使ってあるボタンをクリックしたらある処理を行わせ、別のボタンをクリッしたら別の処理をおこなわせるプログラムの作成についに成功したよ。
つまり「Slim de Can」はすでにイブントドリブンプログラムがつくれる環境になっているということを自ら証明したという次第よ。
おい、「Slim de Can」はすでに簡単なゲームくらいはころっとつくれるぞ。誰かつくらんか?
「Slim de Can」ってすげ〜な〜。
おりはもう神だね♪どうよ?

http://hp.vector.co.jp/authors/VA015412/
0333デフォルトの名無しさんNGNG
なんだお前名前変えたのか
0334デフォルトの名無しさんNGNG
C3やMMXPentium以前を気にしなくていいならCMOV使うといいかも

__declspec(naked) __cdecl int scan_three_integers( int i1, int i2, int i3 )
__asm{
XOR EDX,EDX
MOV EAX,[ESP + 8]
AND EAX,EAX
CMOVNZ EDX,-1
MOV EAX,[ESP + 4]
AND EAX,EAX
CMOVNZ EDX,-2
MOV EAX,EDX
ADD EAX,2
SHL EAX,5
BSR EDX, [ESP + 12 + EDX * 4]
SUB EAX,EDX
RET
}
}
0335デフォルトの名無しさんNGNG
>ADD EAX,2
>SHL EAX,5
のところは
SHL EAX,5
ADD EAX,95
の間違い
0336デフォルトの名無しさんNGNG
>>334-335
cmov の第二オペランドって imm を食ったっけ?
rm16/32 だけっぽいんだが。
0337305NGNG
Bit の立っている確率が高い順番に 3っつの bsr を並べ替える方法
は上手くいきませんでした.入力 bit 列は比較的乱雑なようです.

jecxz を用いて bsr と mov 命令をバイパスする手法は数%速くなりま
した.早速採用です.おばかさんありがと〜〜〜

>>330, 334
なにをしたいのか理解するだけで小一時間かかりました...
なんと,条件分岐を一度も使っていないのですね.しかも
__declspec(naked)といい,参考になりました.かなりそそられるの
ですが,gcc の inline assembly 形式で上手くいかなさそうなので
後ずさり気味です.この形式では関数の引数が 4(%eps) とかとは限
らないみたいなのです...

>> 336
Intel のホームページで配布している Manual をよむと,確かに r/m16
と r/m32 だけみたいです.
0338デフォルトの名無しさんNGNG
cmov使うならこんな感じかな?

int scan_three_integers( int i1, int i2, int i3 )
{
__asm {
bsr edx,dword ptr i3
bsr eax,dword ptr i2
lea eax,[eax+32]
cmovnz edx,eax
bsr eax,dword ptr i1
lea eax,[eax+64]
cmovnz edx,eax
mov eax,95
sub eax,edx
}
}
0339デフォルトの名無しさんNGNG
_asm
{
mov edx, i1
mov ebx, i2
mov ecx, i3
mov eax, 95
mov esi, 63
mov edi, 31
test ebx, ebx
cmovne edx, ebx
cmovne eax, esi
test ecx, ecx
cmovne edx, ecx
cmovne eax, edi
bsr edx, edx
sub eax, edx
}

カコワルイ
0340339NGNG
mov edx, i3
mov ebx, i2
mov ecx, i1
mov eax, 31
mov esi, 63
mov edi, 95

上の6行修正
0341305NGNG
>>338
条件分岐なし,さらにレジスタも edx と eax しか使ってなくて
良さげです.早速試してみました.しかし,どうもダメです...

条件分岐して,実行命令の数を減らすおばかさんさんの方法がよい
みたいです.インプットデータ列は乱雑なので,分岐予測はなかなか
難しそうだと思ったのは素人考えだったのかなぁ... それとも多少
分岐の予測が外れてもかまわないのだろうかぁ...

>>339
上の6行は
mov edx, i3
mov ebx, i2
mov ecx, i1
mov eax, 95
mov esi, 63
mov edi, 31
だと思います.そして,実行結果は遅かったです.Bsr はそもそも
速度のボトルネックではない,若しくはレジスタの待避で遅くなった,
のどちらかかのような気がします.たぶん.
0342デフォルトの名無しさんNGNG
アセンブラ全くわからん。何から手をつければいい?
0343デフォルトの名無しさんNGNG
>>342
何のためにアセンブラが必要と思ったか、その動機かな。
0344デフォルトの名無しさんNGNG
Windows用ソフトを逆アセンブルしてCのソースに起こしたいんです
0345デフォルトの名無しさんNGNG
一通りできたほうがメモリやCPU回りの理解が深まるかなと。
0346デフォルトの名無しさんNGNG
>>344
がんばれ〜
0347デフォルトの名無しさんNGNG
>>344
>Windows用ソフトを逆アセンブルしてCのソースに起こしたいんです

それ限定ならインテルのマニュアル(PDF)があれば、全部終わる。
といいつつ、種別によってはインラインアセンブラとかで書かれてる場合が
あるから、逆汗も何もCに直すとひどいぞ。
0348デフォルトの名無しさんNGNG
>>344
手作業でやると軽く死ねるよ
0349デフォルトの名無しさんNGNG
プログラムにやらせても、死ねるソースが出てくるよ
0350デフォルトの名無しさんNGNG
ひとまずは鍛錬ですか。

ところで>>348さんはIDA Proとか使ってるんでしょうか?
自分はまずdispeあたりで解析を始めようと思うんですが。
0351デフォルトの名無しさんNGNG
>>342
まず、Cで何か簡単な関数を書いて、コンパイラでアセンブリコードを
出力して見比べてみたら?
0352344NGNG
ちなみに、紛らわしく書いてますが342と344は別人です。

>>351
今はMinGWで適当にコンパイルしたものをgdbで追ってるような段階です。
眺めてるだけではまだスタックの積み下ろし、レジスタ保存やジャンプ等も
よく分かりません。これから慣れていけば少しはすっと頭にはいってくるかと
思いますが・・・。
0353344NGNG
って351は342へのレスジャン
∧||∧あびゃびゃーん
0354素人NGNG
アセンブラ始めたいと思っていろいろ検索してみたけど始め方がわからない
アセンブラを始めるにはどうすればよろしいか?
やっぱり本か?
0355デフォルトの名無しさんNGNG
Cを覚える
Cコンパイラにアセンブラ吐かせて、対応を見る

まずはそこからやれ。
0356デフォルトの名無しさんNGNG
とりあえず、私の環境でアセンブリコードを吐かせてみました。>>344 >>342
% cat test1.c
int test1( int x ) {
return x;
}
% cc -O2 -mcpu=i486 -S test1.c
% cat test1.s
.file "test1.c"
.version "01.01"
gcc2_compiled.:
.text
.align 16
.globl test1
.type test1,@function
test1:
pushl %ebp
movl %esp,%ebp
movl 8(%ebp),%eax
movl %ebp,%esp
popl %ebp
ret
.Lfe1:
.size test1,.Lfe1-test1
.ident "GCC: (GNU) 2.95.3 20010315 (release)"
0357デフォルトの名無しさんNGNG
>>350
dispeを使うよりもPeRdrを使ったほうがいいよ。
出力した逆汗コードが分かりやすい。

http://hp.vector.co.jp/authors/VA028184/
0358素人NGNG
>>355
Cはすでにやってるけどわけの分からないアセンブラコードをみてもどうにもならない
アセンブラの基礎から始めたいんだがその始め方が見つからなかった
0359デフォルトの名無しさんNGNG
http://www.amazon.co.jp/exec/obidos/ASIN/4274132072/249-1668983-7854755
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4466-7.html
0360デフォルトの名無しさんNGNG
>>344 のやりたいことはこっちかな♪
http://www.amazon.co.jp/exec/obidos/ASIN/4839912025/249-1151012-7179501
0361デフォルトの名無しさんNGNG
いまどきのアセンブラはお勧めしたくない
0362素人NGNG
やはり本を読んだほうが早そうだな
図書館でもあさってみる
どうもありがとう
0363デフォルトの名無しさんNGNG
図書館にあるんか?
0364素人NGNG
>>363
多分あると思う
それっぽい本を見かけた気がする
0365デフォルトの名無しさんNGNG
はじめて読むPentiumとか
0366デフォルトの名無しさんNGNG
図書館を馬鹿にすんでね。

つか、アセンブラ入門なんて今時の本じゃないから、むしろ図書館の方が見つけやすいぞ。
大学図書館あたりがお勧め。
0367デフォルトの名無しさんNGNG
最近の大学図書館は学生証がないと入れない罠
0368デフォルトの名無しさんNGNG
借りるのは学生か教員でないと駄目だろうけど、最近は閲覧もできんの?
0369デフォルトの名無しさんNGNG
最近は(マンコの)締め付けが厳しくてね・・・。
0370デフォルトの名無しさんNGNG
おまいらOllydbgがありゃすぐ済む罠。
0371デフォルトの名無しさんNGNG
生き遅れのスレか
0372デフォルトの名無しさんNGNG
むしろ最先端
0373デフォルトの名無しさんNGNG
P5世代ではleaは1クロックだったけど、
P6やP7(Pentium4)世代でもleaは1クロックで実行できるの?
0374デフォルトの名無しさんNGNG
>>373
P6は1クロック。
Pentium4はleaの種類による。
Northwoodの場合、簡単なleaは0.5クロック。
lea eax,[eax+eax*4+3]みたいな複雑な物は5クロックぐらい(
Northwoodはシフトが遅いせいだとおもう)。
0375デフォルトの名無しさんNGNG
シフトも乗算も遅いからシフト数が少ない時は加算使えって・・・いつの時代のCPUだ?
0376デフォルトの名無しさんNGNG
>0.5クロック。

ワンクロック以下で出来る処理なんてあるわけ無いじゃん
CPUの仕組みからやり直せ
0377デフォルトの名無しさんNGNG
いかなる処理も

最低、ロード、デコード、演算、ストアの4クロックは必要なのが常識
0378デフォルトの名無しさんNGNG
スループットとレイテンシ
0379デフォルトの名無しさんNGNG
>>376
Pentium4は倍速で動く部分があって、そこは当然0.5クロック。

>>377
パイプラインのない時代の人ですか
0380デフォルトの名無しさんNGNG
>>377は68000マンセの人か
パイプラインなかった筈
0381デフォルトの名無しさんNGNG
古い常識にとらわれている (そのくせ不遜な態度の) 人は
ちゃんと時代についていきましょう。
いまどき、1クロックで4命令同時実行なんてのもあるのに。
0382デフォルトの名無しさんNGNG
>>379
演算ユニット(ALU)の演算結果をALUに渡す場合にのみ倍速になるとかなんとか。DDR動作なのかね。
>>376は基本的には間違いではないけど、少なくともPentium4に関してはあてはまらない場合もある。

>>378をかみ砕くと、パイプラインで走ってるCPUの場合、
1命令が実際には何クロックで処理できるか(レイテンシ)だけでなく、
何クロックで処理できているように見えるか(スループット)も判断材料になるってこと。
というか、普通はレイテンシではなく、スループットを話題にするね、最近は。

まーPen4の場合はパイプライン20段+α、単純演算でも合計レイテンシ20を越える化け物だから、
パイプラインストールのケースを考えると(ひきつり)笑いたくなる設計思想なのは確か。
高クロックでカバーしてるとはいえ、あれも恐竜的進化の一形態なんだろうねえ。
0383デフォルトの名無しさんNGNG
>>382
クロックの数字がでかいほうが一見速く見えるわけで。
結果営業が客を騙しやすくなると。

0384デフォルトの名無しさんNGNG
>>382
20クロックおきに条件分岐で飛びまくるようなプログラムを走らせると、分岐無しのリニアな実装をしたものを
走らせた場合の1/2ぐらいで動くことになるのかな?実測してみると面白そうだけどあいにくP4持ってない。
0385デフォルトの名無しさんNGNG
強力な分岐予測があるからほとんど遅くならないよ。
0386デフォルトの名無しさんNGNG
嘘のヒント教えれば遅くなるよ
0387デフォルトの名無しさんNGNG
一回実際の予測的中率を見て見たいものだが、
パフォーマンスカウンタにあったっけ?

あ、P4じゃないから無理だ。

0388デフォルトの名無しさんNGNG
>>383
>クロックの数字がでかいほうが一見速く見えるわけで。
>結果営業が客を騙しやすくなると。
こうなってくると、もう終わりだな。
0389デフォルトの名無しさんNGNG
その後実クロックより大きな数字を名前に付ける更に終わった状況に陥ったと。
0390デフォルトの名無しさんNGNG
その後クロックと無関係な相対性能数を使う、まだマシな状況に戻ったと。
0391デフォルトの名無しさんNGNG
常識
0392デフォルトの名無しさんNGNG
>こうなってくると、もう終わりだな。

その理論だとの一握りのマニア以外の消費者全てが終わった事になるが?
笑止千万(w
0393デフォルトの名無しさんNGNG
「ゼロサイクル・ブランチ」という言葉を聞いた時は恐怖すら覚えた。
最近のCPUはまったく理解不可能な世界にまで進歩しているのかと。
理屈が分かれば「なーるほど」なんだけど。
0394デフォルトの名無しさんNGNG
>>393
なんすかそれ?
0395デフォルトの名無しさんNGNG
1マシンサイクル以下で実行できる命令なんてあるわけねーべ
あったとしてもパイプラインとかちょっとしたトリックでそう見えるだけで
0396デフォルトの名無しさんNGNG
>>395
そんな事、どうだっていい話。
0397デフォルトの名無しさんNGNG
>>395
非同期回路で1マシンサイクルの前半50%で1命令処理する
とかすれば一応できるのでは?
今のところはこんなことするなら内部pllで倍クロックつくるほう
が設計的にも効率がいいからそうなってるだけで
0398デフォルトの名無しさんNGNG
パイプラインは1クロックまで縮めるもの。
0.5クロック相当にするのは、スーパースカラ(スーパースケーラ)です。

なつかしいなぁ、PentiumのUとVのパイプライン。
0399デフォルトの名無しさんNGNG
夏のソナタ?◆トリップ・チェイサー◆常駐スレpart81
http://school4.2ch.net/test/read.cgi/qa/1089468329/622
0400393NGNG
>394
えとね、絶対分岐する命令あるでしょ、条件分岐じゃないやつ。
ジャンプどこそこっていう。
あれが命令キューの中にあったらジャンプ先の命令を取って来て
分岐命令と入れ替えちゃうの。
それで分岐命令の実行分はゼロサイクルというしかけ。
PowerPCね。
ちょっとした小手先の技術みたいなのにちょっと大袈裟な名前だーね。
0401デフォルトの名無しさんNGNG
>>398
P4の倍速ユニットは、マシンクロックの倍の周波数で動いている。
 mov eax,ebx
 add edx,eax
のように依存関係のある命令の並びでも1クロックで処理できる。
スーパースカラだったら2クロックかかるでしょ?
0402デフォルトの名無しさんNGNG
しかしNetBurstコアは、デコーダもトレースキャッシュもヘタレなので
倍速? ナニソレ? 状態なのであった。

倍クロックが中で走り回ってるとは(ブロックダイアグラム見ても)
考えられないので、きっと、「依存関係のあるmicrocodeのみ」
ネガティヴエッヂで続けざまに実行できる、とかそんな実装なんだろう。
0403デフォルトの名無しさんNGNG
>>402
P4コアの良否はわからんが、倍速ユニットがCPUクロックの倍の
クロックで動作しているのは事実だよ。
実は、この倍速ユニットもP4のクロック上昇の妨げになっているんだよね。
0404デフォルトの名無しさんNGNG
ブロックダイアログを見て、何がわかるんだろう・・・
0405デフォルトの名無しさんNGNG
すれちがい

>>403
チミはDDR SDRAMが倍速クロックで動いてると思ってるでしょう?

倍速ALUにクリティカルパスが存在するかもしれないというのには同意。
ていうか、元々実行ユニットスカスカなんだから、もっと単純な
ALUに実装し直してもいいのにね。

>>404
ブロックダイアログって、何の対話を求めるんだよ?

マジレスすると、実装のヒミツを妄想する手がかりの一つにはなる。
0406デフォルトの名無しさんNGNG
倍速ALUがないと64bit化したとき更に遅くなるからだよ
0407デフォルトの名無しさんNGNG
なるほどそれは盲点
淫��必死だな
0408デフォルトの名無しさんNGNG
P4の倍速ALUとスーパースカラは何が違うの?
0409デフォルトの名無しさんNGNG
アム厨キター
0410デフォルトの名無しさんNGNG
特定のCPUについて悪口を言う場所ではないと思うんだけど。
そういうのは違うところでやったほうがいいんじゃないの?
0411デフォルトの名無しさんNGNG
>>405
http://support.intel.com/support/processors/pentium4/sb/CS-007989.htm

Rapid Execution Engine
Integer Arithmetic Logic Unit (ALU) clocked at twice the core frequency provides
four ALUs of computing bandwidth and allows lower latency execution increasing
performance for certain integer operations.
0412デフォルトの名無しさんNGNG
倍速ALUは、倍のクロックで動いてる。
スーパースカラは複数命令を同時実行する。

全然別物。どちらも、1クロック以下にしてしまう技術。
0413デフォルトの名無しさんNGNG
ttp://www.intel.com/technology/itj/q12001/pdf/art_2.pdf

P4の倍速ALUは倍の周波数で動いているね。↑の8ページから仕組みが書いてある。
0414デフォルトの名無しさんNGNG
>>413
こっちに日本語版があるよ
http://www.intel.co.jp/jp/developer/technology/itj/2001/q12001/articles/p05_microarchitecture.htm
0415デフォルトの名無しさんNGNG
こちらを紹介されたので質問します。
PentiumMは686ファミリーでいいのでしょうか?
基本的な質問で申し訳ありません。
0416デフォルトの名無しさんNGNG
>>415
概ね合ってる
0417ほんたまNGNG
おみゃ〜らよ、おれはNTT料金の未納で明日からまた止められるよ。
おみゃ〜らよ、しばらくお別れだ…
心残りはリソースエディタが間に合わなかったことだ。ダイアログの部分だけでも完成してUPしておきたかったんだが…
今度のお別れは長いかもしれないよ。
というのは、ハードディスクから異音が聞こえ出したからよ。マイPCも風前のともしびのようだ…
PC買い換えて、電話つながるまでお別れだな…自分じわかるかな?
0418デフォルトの名無しさんNGNG
しるか!
0419デフォルトの名無しさんNGNG
>>415
1 8086/186
2 286
3 386
4 486
5 Pentium
6 PentiumPro/II/III
7 Pentium4
だっけ?
PentiumMはIIIをベースにいじくりまわしたら別物になった代物だった気がするから、
6系でいいのかなあ。

っていうか、最近アセンブラじゃなくてCPUのスレになってるね、ここ。面白いからいいけど。
0420デフォルトの名無しさんNGNG
CPUID で取れる family の値のことじゃないの?
それのことなら、Pentium M は 6 です。
0421デフォルトの名無しさんNGNG
凡庸レジスタよりも
>>最近はFPUの方が計算速い事多いよな
これ本当ですか?
0422デフォルトの名無しさんNGNG
>>374
P4の資料は少ないし、うるおぼえで、今更だけど、
その場合のP4で0.5とか5とかって言うのは、μopじゃない?
0423デフォルトの名無しさんNGNG
>>421
今まで見たことないから釣りでもネタでもないと思って一言。
「汎用」は「はんよう」と読むのであって、「ぼんよう」と読むんじゃないぞ。

それはいいとして、ここ最近の話題はアセンブラから離れすぎてないかい?
#ま、いいけどね。
0424デフォルトの名無しさんNGNG
CPUを知らずして、アセンブラを語ること無かれ。
0425デフォルトの名無しさんNGNG
じゃ汎用レジスタよりも
>>最近はFPUの方が計算速い事多いよな
これ本当ですか?

0426デフォルトの名無しさんNGNG
>>425
自分でCPUのマニュアルでも読んでみれば?
0427デフォルトの名無しさんNGNG
レジスタは計算しないと思うが。
0428デフォルトの名無しさんNGNG
>>425
ソースは?
だれが言ってたの?
0429デフォルトの名無しさんNGNG
凡庸レジスタワラタ
0430デフォルトの名無しさんNGNG
8086の頃のBPはスタックフレームにアクセスするという重要な役割があったのだが
EBPになって、すっかり凡庸レジスタになってしまったな。
0431デフォルトの名無しさんNGNG
いまだに扱いが特殊だよ
0432デフォルトの名無しさんNGNG
>>425
最近のCPUでは、汎用レジスター側の命令セットは只のコントローラで
計算の主力は別ユニットが担ってます、
解説付きのチップの写真をみれば判りますが、キャッシュを除けばチップ面積の殆どがFPUやマルチメディア命令用ユニットで埋まっています。
整数ユニットで主力の計算をするというのは、ロケットで言えばメイン推進エンジンを使わずに、姿勢制御用の補助エンジンで動かすようなものです。
0433デフォルトの名無しさんNGNG
>>432
CPU最適化を積極的に行う場合、という但し書きが必要では?
でも、汎用レジスタが、現在では姿勢制御エンジンに近い、
というのは確かにうまい比喩だと思う。

SIMD演算機の一般化で、実質、CPUの内部演算幅はどんどん長くなって、
アーキテクチャを表す指針には使いにくくなってるから、
アドレスバスとか制御データ幅が、CPUのビット幅だという考え方の方が一般的になってきたしね。

ついでに、アドレス参照までSIMDで動けば、もっと面白いんだけど、
(4つのテーブル参照一発とか)バス機構が複雑怪奇になるから無理かな。
0434デフォルトの名無しさんNGNG
>>425
少なくとも比較命令に関してはFPUをわざわざ使うと相当遅いね32bitでは
3DNow!とかSSEとかを使うとまた話は別になるけど

最近スレ違いはなはだしいぞ。
CPUを知らなければ〜なんていってるけど、
アセンブラならではのトリッキー技をあげてからそれに則してCPUの
解説をするべきだ、藻前ら勝手もいいかげんに汁。
0435デフォルトの名無しさんNGNG
アセンブラってCPU依存なわけだし仕方ないかと
0436デフォルトの名無しさんNGNG
>>435
んじゃCASLで。
0437デフォルトの名無しさんNGNG
面白いCPUの話しよう。

MicrochipのPICマイコン。
こいつには条件分岐命令がないんだ。
条件でパイプライン中の次の命令を破棄することしかできない。
その破棄される次の命令を無条件ジャンプにして分岐するんだ。
条件で分ける処理が1命令で済むなら、ジャンプすら必要ないんだ。
0438デフォルトの名無しさんNGNG
ARMもにたような感じだったような
0439デフォルトの名無しさんNGNG
>>438
ARMはopコードの頭4bitが実行条件指定になってて、フラグの状態によって
実行されたりされなかったりする。パイプラインストールを起こさない工夫だあね。
(標準命令セットのみ。Thumb命令セットでは無効)

>>437のはパイプラインうんぬんというよりは、CPU自体の規模を抑える工夫なんだろうね。
マイコンつってるくらいだし。
0440デフォルトの名無しさんNGNG
昔設計したCPUは条件ジャンプ命令を持たず、条件スキップ命令とジャンプ命令を組み合わせた。
なーに、命令長が長くなるのを嫌っただけだが。
つーか、ジャンプ命令自体1バイトのオフセットしか持たないというとんでもない仕様だった。
0441デフォルトの名無しさんNGNG
±128バイトぐらいの範囲しか分岐できないCPUは結構あるような気がするよー
0442デフォルトの名無しさんNGNG
最近のPowerPCにあるのは fsel。
(floating point select)

 fsel FRT,FRA,FRC,FRB

動作はFRAが0以上ならFRTにFRCの値を代入。
そうでなければFRTにFRBの値を代入。
if FRA >= 0.0 then FRT := FRC
else FRT := FRB

AltiVec(SIMD)にもこれと似た動作をする命令がある。
0443デフォルトの名無しさんNGNG
>442
Cなら、
FRT = FRA >= 0 ? FRC : FRB;
ってな感じか。
ところで、FRC, FRB の並びなのはなんで?
サンプルなら FRB, FRC の方が自然な感じがするんだけど。
0444442NGNG
ちょっとごちゃごちゃしてわかりにくいですね。
マニュアルをそのまま書き写したもんで。


要はアセンブリで書く場合は
 ターゲットレジスタ,条件判断用,0以上の時のソース,それ以外のソース
の順で書いて下さい、と。
(FRAがNANだった場合は「それ以外のソース」の値が代入される)

〜〜ごちゃごちゃした事情〜〜
IBMのマニュアルでは オペランドにFPUレジスタを4つ取る命令について、
マシン語に落とした時のレジスタの順に
 (6-10bitに入る)  FRT (常にターゲットレジスタを示す)
 (11-15bit)  FRA (ソースレジスタその1)
 (16-20bit)  FRB (ソースレジスタその2)
 (21-25bit)  FRC (ソースレジスタその3)
こういう名前を統一的に使っています。

で、「0以上の時のソース」がたまたまFRC、
「それ以外のソース」がFRBに割り当てられていただけかな、と。

マシン語設計者
「どっちがどっちでもいいよなぁ」と適当にFRBとFRCの役割を決める。
 ↓
アセンブリ表記を決めた人
 ターゲット,条件判断用,0以上の時のソース,それ以外のソース
という順番で書いた方が分かりやすいよなぁ

ってことでひっくり返ってるのではないかと勝手に推測しますが…
0445デフォルトの名無しさんNGNG
凄く昔(27年位前)のCQ出版のムックで、
CPUを作る記事が一杯載ってるのがあったんですが、
そこに、一命令CPUってのの案が有りましたね。
0446デフォルトの名無しさんNGNG
パターソン&ヘネシーにもそんな話載ってような
0447デフォルトの名無しさんNGNG
>>445
トラ技Special「作れば解るCPU」?
0448デフォルトの名無しさんNGNG
nasmでwin32や32bitドスアプリ作る前に
これ読んどけってチュートリアエウある?
0449445NGNG
CQ出版社、トランジスタ技術編集部編
つくるシリーズ2 「つくるコンピュータ」
1976/5/10 初版
ISBN不明・・・。

だった。
0450デフォルトの名無しさんNGNG
2〜3年前、Cマガジンに淫乱アセンブラの記事が載ってたな。
「この命令でこの変数の値が変われば
このCPUはこの命令に対応してますっ」っていう感じの記事だった。
もう一回くらい連載してくれないかな。
0451デフォルトの名無しさんNGNG
「はじめて読むPentium」続刊希望。
いまどき本はよ駆逐しないと。
0452デフォルトの名無しさんNGNG
どうしたらアセンブリプログラムーにまれますか?
0453デフォルトの名無しさんNGNG
1)マシン語を書くの面倒になった頃、マクロの存在を知る。
2)マクロですら大変だと感じてきたので、独自のパーサとか
プリプロセッサを作成する。
3)開発規模が大きくなって、生産性が悪いと感じてきたので、
抽象性の高い言語仕様とアセンブリ言語への変換ソフトを作成する。
4)変換ソフトが書き出すコードの出来が悪いことに気が付き、
asm{}命令で直接コードを書くようになる

最初に戻る
0454デフォルトの名無しさんNGNG
>>452
日々自分がラベルとインストラクションとデータの塊と意識しつづければいつの日か自然と・・・
0455デフォルトの名無しさんNGNG
自分の中のデータはほぼ全ておぼろげな外部へのポインタだと悟ってしまった日には・・・
0456デフォルトの名無しさんNGNG
>>451
「いまどきのアセンブラプログラミング」って本、
アセンブラ関連の掲示板でも、ゲーム改造関連の掲示板でも、
クズ扱いですね。

立ち読みして、内容のあまりのひどさに呆れましたよ。
0457デフォルトの名無しさんNGNG
8086マクロアセンブラ入門はどうですか?
0458450NGNG
こんなヤツでした。
#include <stdio.h>
void main()
{
int FFlags,SID;
_asm{
mov eax,1
cpuid
mov SID,eax
mov FFlags,edx
}
printf("Family:%d\n",(SID&0x0f00)>>8);
printf("Model:%d\n",(SID&0x0f0)>>4);
printf("SID:%d\n",SID&0x0f);
if(FFlags & 0x00800000)
printf("MMX OK!\n");
else
printf("MMX NG!\n");
}
0459デフォルトの名無しさんNGNG
アセンブラ勉強するのにオススメの環境は?
DEBUG?nasm?
0460デフォルトの名無しさんNGNG
>458
なんだ、CPUIDの話か。
てっきり、80186/286/386/486/コプロ有無/Pen〜を見分ける方法かと思った。
0461デフォルトの名無しさんNGNG
ここがアセンブラでオブジェクト指向するスレですか?
0462デフォルトの名無しさんNGNG
masm
0463デフォルトの名無しさんNGNG
>>461
むかし、Oh!Xにそういう記事あったね。

0464デフォルトの名無しさんNGNG
tasmにオブジェクト指向拡張があったな
0465デフォルトの名無しさんNGNG
クラスとかどうやって表現するの?
0466デフォルトの名無しさんNGNG
x86のSAHF/LAHFの使い道、おせーて
0467デフォルトの名無しさんNGNG
>>466
8080のエミュレーション
0468デフォルトの名無しさんNGNG
>>466
俺が思いついたもの。

・多倍長演算で、ADC命令とADC命令の間で、
 キャリーフラグが変化してしまう命令を使用したい時。

・算術フラグをサブルーチンの戻り値として使いたい時。
0469デフォルトの名無しさんNGNG
>>466
>>467さんと同じくエミュレータの作成用
0470445NGNG
>>465
クラスと云うのはパラダイムに属するものだから、
旧来のアセンブラ処理系では、実装にその概念は無い。
まあ、概念は実現出来るだろうけどね。
(オブジェクトメンバーのローカルラベルを作って、
メソッドはローカル関数で・・・という感じ、
継承は言語の機構上の機能だから、手動でやるしかないかな。)

まあ、必要とあれば、充分に学習した上で、
クラスの概念を実装したアセンブラを自分で作ればいいと思う。
言語作るスキルが無い、とか、もっと簡単に実現したい。
とかなら、逆手を取って、C++とかDelphiのインラインアセンブラを使えばいい。

ちなみに上記は、「それに実用上の意味があるか」は考慮していないので、あしからず。
0471デフォルトの名無しさんNGNG
>>466
8080→8086コンバート時に必要
0472デフォルトの名無しさんNGNG
CでもPASCALでもアセンブラでもプログラミングを勉強するなら
Linuxが安上がりで、かつはじめから環境が揃っていていいかも。
0473デフォルトの名無しさんNGNG
>472
Linuxでプログラミングを始められる環境を構築する労力が計算されて無い希ガス。
CUIでいいならgccでいいんだろうけど、それならWinでもそう変わらないし。
0474デフォルトの名無しさんNGNG
Vine辺りいれりゃいいだけやん。労力も糞もねーべ。
0475デフォルトの名無しさんNGNG
MSのコンパイラもただで配ってる時代だし
0476デフォルトの名無しさんNGNG
PC一台新規に購入してRedHatなりVineなり入れるなら手間じゃないだろうけど、
これからプログラム始めようっていうユーザがPC持ってないわけねぇし、
持っててもたいていWinが入ってる。
そんな状況下、パティション切るなり、HDD買い足すなりして〜
なんてやってんならdjgppでも入れた方がよっぽど早いと思うけど。
0477デフォルトの名無しさんNGNG
今時djgppは無いだろ
0478デフォルトの名無しさんNGNG
LinuxというかGCCでアセンブラはおすすめできないな。
AT&Tとx86は相性が悪い。
0479デフォルトの名無しさんNGNG
お勧めできないのはいいんだが、電話屋に何の関係があるんだ?
0480デフォルトの名無しさんNGNG
ベル研
0481デフォルトの名無しさんNGNG
>>479
AT&T vs Intel
このスレにいるのに、分からないならやばいぞ。
もう一度勉強しなおしだ。>>479
0482デフォルトの名無しさんNGNG
俺はずっと MIT Syntax って呼んでたが
0483デフォルトの名無しさんNGNG
>>478
代入が左から右か 右から左かの違いだけじゃないの?
0484デフォルトの名無しさんNGNG
うぉ、モトローラ的だ、と思ったけど、すぐに慣れるね。

アセンブラやるためだけにLinuxやるなら、
Windows上でVMwareやVirtualPCを使ってLinux動かしたほうがいいと思う。
こいつらにICE機能までついてれば、言う事なしなんだろうけど・・・
0485デフォルトの名無しさんNGNG
gccのインラインアセンブラにIntel記法が使えるようになると便利なんだけどな
0486デフォルトの名無しさんNGNG
昔からzilog表記でソースを書いてIntel表記でデバッグしたり、68000でz80のエミュレートしたりしてた。
その所為か、gccの吐いたアセンブリ出力とVCの吐いたアセンブリ出力を普通に見比べていたのだが、
ふと気付いたら代入方向が違ってたんだな。
0487デフォルトの名無しさんNGNG
Intel C++ Compiler for Linux のインラインアセンブラは
やっぱり Intel 式なの?
0488デフォルトの名無しさんNGNG
>>486
Z80で書いてi8080Aでデバッグ・・・はPC-8801ですか?

>>487
GCCコンパチをうたってるので、Intel式ではないと思う。
0489デフォルトの名無しさんNGNG
VM買う金でPC一台買えそうだなw
0490デフォルトの名無しさんNGNG
昔はVMwareは$99で売られてたんだけどねぇ。

VMwareは、別にPCを1台用意するよりも、開発者にはメリットありますよ。
パーティション切れないくらい沢山の環境を用意しておけたり、
OSを再インストールしなきゃならないヘマをしてもUndoですぐに戻せたり。
0491デフォルトの名無しさんNGNG
bccもインラインアセンブラできますか?
0492デフォルトの名無しさんNGNG
BuilderXならTasmもついてきます
Personal版なら無償
0493デフォルトの名無しさんNGNG
たしかに最初はgasの文法なんて基地外だとおもってたけど
きずいたらgasもnasmも普通に混ぜて読み書きできるようになってたな・・・
0494デフォルトの名無しさんNGNG
他の人がVC用に書いたインラインアセンブラをコピペ+αでgcc対応出来ないのがめんどい
0495デフォルトの名無しさんNGNG
NASMからGASならあるが。
0496デフォルトの名無しさんNGNG
>>495
変換ツールですか?よければそれのリンクを示してもらえれば助かります
0497デフォルトの名無しさんNGNG
会社の先輩に
「アセンブラという言語はない。8086用とかPowerPC用とかCPUと対の言語だから
 一緒くたにすることは間違っている。」
と言われましたが本当ですか?
0498デフォルトの名無しさんNGNG
>>497
まあ、CPUによって仕様は違うよ。
0499デフォルトの名無しさんNGNG
CPUと対の言語をまとめてアセンブラっていうんじゃないのか
定まった仕様があるわけじゃないし呼び名がなかったら不便だろ?
0500497NGNG
>498-499
どうも

その先輩がいうには「アセンブラといわずに86アセンブラとかPowerPCアセンブラという風に
頭にCPU名を付けろ。アセンブラに対して失礼だと!」
このクソ暑い中熱弁をふるっていたので軽く殺意が沸いたところです。
0501デフォルトの名無しさんNGNG
>>497
先輩さん、変。
それは、VC++とか、GNUC++とか、CodeWarriorC++とか、
Borland C++という風に、プラットホームやOS、実装が異なる系があるから、
C++という言語が無い。といっているようなもの。

アセンブラは存在する。ただ、アセンブラが単一の基準を持たないだけ。
でも、共通の概念はあるし、パラダイムも全般的に共通なものが多い。

例えばISO規格の有る無しを元に、ある言語が存在しないとか言うのは、
その人の技量の狭さが伺える発言だね。
0502デフォルトの名無しさんNGNG
>500
アセンブラ>http://yougo.ascii24.com/gh/07/000714.html

「空港と言わずに成田空港、羽田空港という風に(ry」
っつってるもんだ。

暑いしムカムカするから、とりあえずヌッ頃してヨシ!
0503デフォルトの名無しさんNGNG
「アセンブリ言語」という呼び名が定着しないのはなぜですか?
0504497NGNG
>501
UNIXというOSはあるけど中身はSystemVとかBSDに分かれてるってことなんですかね

>502
ヌッ頃したいんですが身長185、体重110キロ(推定)の巨漢デブなので無理です。
0505デフォルトの名無しさんNGNG
>>503
「ブリ」のあたりがくさいから
0506デフォルトの名無しさんNGNG
>503
アセンブリ言語よりもアセンブラの方が短いからかな?
それともassemblyには一般的な意味が多いから嫌ったのか。
http://dictionary.goo.ne.jp/search.php?MT=assembly
http://dictionary.goo.ne.jp/search.php?MT=assembler

>505
臭いかよ!
0507デフォルトの名無しさんNGNG
デブはやはり無能なのか・・・orz
0508デフォルトの名無しさんNGNG
無能というよりは偏執的なんだろ。よくある話だ。
0509デフォルトの名無しさんNGNG
そういうのに限って腕はたいしたことないヤシが多い
0510デフォルトの名無しさんNGNG
>>500
    /ノ 0ヽ
   _|___|_ わたしが訓練教官のハートマン先任軍曹である
   ヽ( # ゚Д゚)ノ 話しかけられたとき以外は口を開くな
     | 个 |   口でクソたれる前と後にCPU名を言え
    ノ| ̄ ̄ヽ   分かったか、ウジ虫ども!  
     ∪⌒∪  

               「86アセンブラ86」

という風なシーンを想像してしまった・・・
0511デフォルトの名無しさんNGNG
正直memcpyを改悪した自作関数(インラインアセンブラ)を
それなりに売れてる企業でもろに使ってるのを目にしたときはワロタ。
しかもAMDとかIntelで出してる
サンプル?ソース(CPU毎に最適化されてるコード)を
わざわざコメントアウトしてあったときにはマジで噴出しそうになった。
にもかかわらずCPUID取得してたり、もう馬鹿かとアボカド。
0512デフォルトの名無しさんNGNG
VisualC++とかってmemcpyのようなものを(インラインアセンブラじゃなくて)
C++ソースで実装したときにMMX最適化とか自動でしてくれますか?
0513デフォルトの名無しさんNGNG
いまんところ、ない
0514デフォルトの名無しさんNGNG
「自動車と言わずに日産スカイラインGT-R自動車、メルセデスベンツSL600自動車という風に(ry」
っつってるもんだ。

暑いしムカムカするから、とりあえずヌッ頃してヨシ!
0515494じゃないけどNGNG
>>496
http://www.niksula.cs.hut.fi/~mtiihone/intel2gas/
0516デフォルトの名無しさんNGNG
>512
メモリ転送系はキャッシュ周りがネックになるから、実はそう変わらない。
・キャッシュに収まる範囲のサイズ
・キャッシュヒット率が高い(よく使う)
場合に限りAthlonのSSE命令で実験したら1.5倍くらい早い結果が得られたけど、
限定的過ぎて使えない。
256kByte超えるサイズの転送実験だとmemcpyとたいして変わらないスコアになった。
0517デフォルトの名無しさんNGNG
やっぱ二次キャッシュ2Mぐらい欲しいよな
0518デフォルトの名無しさんNGNG
Vector C {PC} があればアセンブラいらないって本当?
0519デフォルトの名無しさんNGNG
(⊃д`)何処が限定的なんだよ。
藻前も知ったかの房か・・・・orz
まともなソース嫁・・・orz
0520デフォルトの名無しさんNGNG
>>516
ゼンゼン違いますよ
0521デフォルトの名無しさんNGNG
ん?どういうこと?スループット?
詳細キボン
0522デフォルトの名無しさんNGNG
>519-520
解説キボンヌ
0523デフォルトの名無しさんNGNG
>>516
SSE最適化って、どんなコード書いたか知らないけど
キャッシュラインやCPUポート、演算ユニットの構造や
動作を考慮して組むと、Pentium系なら、
通常ライブラリの3-4倍は軽く出る。

ふつーに命令並べて書いても最適化とは言わんのだが、
そこら辺は考慮して書いてるのかな?
0524デフォルトの名無しさんNGNG
>>523
是非とも『動作を考慮して組んだ』と『ふつーに命令並べて書いた』例を挙げていただきたい
勿論ターゲットも明確にして
0525デフォルトの名無しさんNGNG
>>523
>>516の主題は「転送速度はメモリ周りに依存する」ってことだろ。
倍率の数字なんて環境に依存するんだし、突っ込んだところで無意味とまでは言わないが、
環境明示しない数値なら無益。

>>519-520の書き方だと「516には原理的なレベルの間違いがある」
くらいのポカがあると期待するんだが、そのへんどうよ。
0526デフォルトの名無しさんNGNG
うん、>>512はCPUごとの最適化(MMXとしか書いてないけど)についてなのに、
>>516はメモリアクセス速度の話になってる。
memcpy()の実装はCPU毎に最適化されていて
メモリアクセス速度だけでなく、アルゴリズムにも依存する話だ。

C++でmemcpy()風な記述をしても、バイト単位のコピーしかしないでしょ。
Z80なら、DJNZループしつつLDするとか。でも、LDIR使うよね。
0527516NGNG
#include <windows.h>
#include <stdio.h>
#define LOOP_COUNT 100
//#define MEM_SIZE (8*1024)
#define MEM_SIZE (256*1024)
typedef void * (*MEMCOPY) ( void *, const void *, size_t );
char *__dest, *__src;
char *_dest, *_src;

int prof( MEMCOPY func ){
__int64 s, e, f;
HANDLE h;
DWORD old;
h = GetCurrentProcess();
old = GetPriorityClass( h );
Sleep( 10 );
SetPriorityClass( h, REALTIME_PRIORITY_CLASS );
QueryPerformanceFrequency( (LARGE_INTEGER*)&f );
QueryPerformanceCounter( (LARGE_INTEGER*)&s );
int i;
for( i = 0; i < LOOP_COUNT; i++ )
func( _dest, _src, MEM_SIZE );
QueryPerformanceCounter( (LARGE_INTEGER*)&e );
SetPriorityClass( h, old );
return (int)( e - s );
}
0528516NGNG
void * memcpy_sse_a( void *dest, const void *src, size_t sz ){
__asm{
mov edi, dest
mov esi, src
mov ecx, sz
shr ecx, 4
lab_1:movaps xmm0, [esi]
movaps [edi], xmm0
add edi, 16
add esi, 16
dec ecx
jnz lab_1
}
return dest;
}

void * memcpy_sse_b( void *dest, const void *src, size_t sz ){
__asm{
mov edi, dest
mov esi, src
mov ecx, sz
xor eax, eax
shr ecx, 4
lab_1:movaps xmm0, [esi + eax]
movaps [edi + eax], xmm0
add eax, 16
dec ecx
jnz lab_1
}
return dest;
}
0529516NGNG
void * memcpy_sse_c( void *dest, const void *src, size_t sz ){
__asm{
mov edi, dest
mov esi, src
mov eax, sz
sub eax, 16
lab_1:movaps xmm0, [esi + eax]
movaps [edi + eax], xmm0
sub eax, 16
jnc lab_1
}
return dest;
}

int main(){
__dest = new char[MEM_SIZE+16];
__src = new char[MEM_SIZE+16];
_dest = (char *)( ( (DWORD)__dest & 0xfffffff0 ) + 16 );
_src = (char *)( ( (DWORD)__src & 0xfffffff0 ) + 16 );
prof( memcpy );
printf( "%d\n", prof( memcpy ) );
printf( "%d\n", prof( memcpy_sse_a ) );
printf( "%d\n", prof( memcpy_sse_b ) );
printf( "%d\n", prof( memcpy_sse_c ) );
delete []__dest;
delete []__src;
return 0;
}
0530516NGNG
当時のソースがどっかいったので、
>トリッキーなコード その2
>http://pc5.2ch.net/test/read.cgi/tech/1038215563/129-
を参考に書き起こしました。

一応元のソースもうpっときます
>ttp://49uper.com:8080/img-s/1376.zip

結果のスコアは左から順に memcpy, memcpy_sse_a, memcpy_sse_b, memcpy_sse_c です。
P4 2.4CGHz
[256k] 15841764, 19733072, 18917596, 18243708
[8k]   568580,   317252,   396300,   363632
AthlonXP 1500+
[256k] 354506,   323496,   323240,   433326
[8k]   1008,     817,    810,      831

16byteアライン、16の倍数サイズ等、かなりSSE寄りで実験してますがこの結果です。
実際には16byteアラインで配置されてない場合の処理等、遅くなる傾向になると思います。
更に、同じ場所のデータのコピーが連続する処理は通常アプリで発生しえないので
キャッシュヒットはそう望めないと思います。

それでもこれより速くなるコードがあるなら是非見たいです。>519-520,>523
05318086知らないNGNG
ブロック転送って1命令で書けるんぢゃないの?
0532デフォルトの名無しさんNGNG
>>526
intにキャストすればintのサイズずつコピーするし、
doubleにキャストすればdoubleのサイズずつコピーするし、
long longとかにキャストすればlong longのサイズずつコピーするよ。
0533デフォルトの名無しさんNGNG
>>530

で何で256KBなの?
0534デフォルトの名無しさんNGNG
2次キャッシュ量の都合にヨリかな
0535デフォルトの名無しさんNGNG
>>530
スコアって小さいのとでかいのどっちが強いの?
ソース解凍するのマンドクセ
0536デフォルトの名無しさんNGNG
>>531 >>533
>>512と>>516を読んでないのか?
0537デフォルトの名無しさんNGNG
>>532
SRCとDSTがcharであっても、コピーするサイズが多い場合には
32Bit単位でコピーするってのもありだよね。
128BitCPUなら16byte単位でコピーだ!もちろん端数処理するけど。

memcpy()は内部でそういうことしてるから、C++記述だけでは限界がある。
0538トリッキー2の129NGNG
>>535
どっちが強いって、、、
数字はかかった時間だよ。
すなわち小さいほうが速い。

しかしあのソースはもともと
CPU の周波数測定のために書いたやつを引っ張り出してきたのだが
MulDiv((int)(e-s),1000000,(int)f) をだったのを端折ってあったり
Sleep するのは REALTIME_PRIORITY_CLASS にした後が正しいのであった。

まぁ相対時間の測定はほぼできてるからいいか。(^_^;)
0539デフォルトの名無しさんNGNG
>>528
えらく制限のあるmemcpyだなw
0540デフォルトの名無しさんNGNG
「はじめて読むMC680x0」って出ませんか?
かなり欲しいです。
0541デフォルトの名無しさんNGNG
>>536
> >>512と>>516を読んでないのか?

>>516 はキャッシュの容量を超えると変わらなくなると書いてあるが.
0542516NGNG
>531, >539
memcpyのようなものをSIMDで最適化する事に意味があるか、の検証だから。
>538
その為のSleepだったのか…他のスレッドに処理渡してキャッシュ関係の条件を揃えるためかと思ってマスタ。
勉強になりますた。
>533, >541
AthlonXPのL2が256kだから。
P4の場合はギリギリ収まるのかな?
でも結局L1に収まらなければ意味が無いという結果は出てるし、限定的な事に変わりない。
>ttp://hp.vector.co.jp/authors/VA003988/pentopt.htm#CACHE

>523
普通に命令並べてるだけですが何か?
汎用的で4倍速いmemcpyマダー?(・∀・ )っ/凵 ⌒☆チンチン
0543デフォルトの名無しさんNGNG
すいませんが場違いなのはわかりますが助けてください。
JPEG処理に使われる1次元8点DVTを実現するプログラムを
SH3-DSPのアセンブリ言語を用いてさくせいせよ。
変換行列の係数は計算済みとしてよい
ソースデータはメインメモリにおかれているとする
結果はメインメモリに格納する
0544デフォルトの名無しさんNGNG
>>543
宿題スレでどうぞ
0545デフォルトの名無しさんNGNG
>>543
ずばり、卒業研究かな?w
0546デフォルトの名無しさんNGNG
さくせいせよ。
が、平仮名なのが素敵。
0547デフォルトの名無しさんNGNG
さくせい 【▼鑿井】地下水や石油などを採取するために井戸を掘ること。
か、
さくせい 【削正】他人の詩文の語句を添削すること。斧正(ふせい)。
だったり。
0548デフォルトの名無しさんNGNG
>>544
アセンブラの宿題スレはないという罠
0549デフォルトの名無しさんNGNG
作れば?
0550デフォルトの名無しさんNGNG
>>543
step 1. Cでプログラムを書く
step 2. コンパイルしてアセンブリソースを出す
step 3. DSP命令を生成してくれなかったところだけ#pragma inline_asmを使って手で書く
0551デフォルトの名無しさんNGNG
        mov eax, sz
        mov esi, src
        prefetcht1 [esi + eax - 256]
        prefetcht1 [esi + eax - 192]
        sub eax, 128
        mov edi, dest
lab_1: prefetcht1 [esi + eax - 256]
        movaps xmm0, [esi + eax]
        movaps xmm1, [esi + eax + 16]
        movaps [edi + eax], xmm0
        movaps xmm2, [esi + eax + 32]
        movaps [edi + eax + 16], xmm1
        movaps xmm3, [esi + eax + 48]
        movaps [edi + eax + 32], xmm2
        prefetcht1 [esi + eax - 192]
        movaps xmm4, [esi + eax + 64]
        movaps [edi + eax + 48], xmm3
        movaps xmm5, [esi + eax + 80]
        movaps [edi + eax + 64], xmm4
        movaps xmm6, [esi + eax + 96]
        movaps [edi + eax + 80], xmm5
        movaps xmm7, [esi + eax + 112]
        movaps [edi + eax + 96], xmm6
        movaps [edi + eax + 112], xmm7
        sub eax, 128
        jnc lab_1
0552デフォルトの名無しさんNGNG
  memcpy_sse_a,       >551, memcpy

[8KB]         504,        506,       627
[256KB] 517900,   452702,   559928
[2MB]   2137066, 1789439, 2199712

これが限界だな。
0553デフォルトの名無しさんNGNG
環境も書けないのかよ。
SSEが動く全部のCPUで右より真ん中のが速いと思ってるの?
0554デフォルトの名無しさんNGNG
>>551
そこまでやっても2割増に届かないのか。
3〜4倍速いってどんなよ?

>>553
じゃあ遅くなるCPUの実測値キボンヌ。
0555デフォルトの名無しさんNGNG
キャッシュから外れてしまうような大量コピーの場合は、
ストアにmovntps等のノンテンポラル命令を使うと更に速くなるけど、
キャッシュヒットする場合に使うと逆にかなり遅くなってしまう。
0556デフォルトの名無しさんNGNG
1マシンサイクル以下のクロックで命令実行できるわけ無いじゃん
0557デフォルトの名無しさんNGNG
フルアセンブラで2chブラウザを作る猛者はいないのか?
0558デフォルトの名無しさんNGNG
作る意味が感じられない
0559デフォルトの名無しさんNGNG
どうせほとんどsocksやFILEIOのシステムコールで済むんだから大したことなさそう。
作っても面白くない。
0560デフォルトの名無しさんNGNG
>>559
htmlのパースはどうするんた?
0561デフォルトの名無しさんNGNG
試しに3DNow!用のmemcopy_amdと標準のmemcpyを比べてみました。
抜粋するとこんな感じ

void main()
{
unsigned long counter;
long i = 1000;
long j = i;
const long numbuffer = 64;
char *ch_src = malloc(sizeof(char)*1024*numbuffer*2);
char *ch_dst = ch_src+sizeof(char)*1024*numbuffer;
memset(ch_src, 0, sizeof(char)*1024*numbuffer*2);

counter = timeGetTime();
while(i--)
memcopy_amd(ch_dst, ch_src, sizeof(char)*1024*numbuffer);
counter = timeGetTime() - counter;
printf("memcopy_amd %d\n", counter);

counter = timeGetTime();
while(j--)
memcpy(ch_dst, ch_src, sizeof(char)*1024*numbuffer);
counter = timeGetTime() - counter;
printf("memcpy %d\n", counter);
free(ch_src);
}
0562デフォルトの名無しさんNGNG
numbufferの値をそれぞれ64、128、256、512、1024, 2048で実行すると

memcopy_amd:43, memcpy:63//1.5倍
memcopy_amd:93, memcpy:148//1.6倍
memcopy_amd:215, memcpy:1602//7.5倍!
memcopy_amd:1283, memcpy:3148
memcopy_amd:2514, memcpy:6027
memcopy_amd:4865, memcpy:11806

*結果は数回試しても大きなずれはない
といった結果、
環境に依存するんでなんともいえませんが
自分の環境では256KBのメモリ操作が異常に速いです。
(゚д゚)ウマーなので自分はいつも、それなりに大きいコードの場合
void *(* memcopy)(void *dest, void *src, int n)
↑を宣言して、memcpyと差し替えて使ってます。
0563デフォルトの名無しさんNGNG
私が519だとか520だとかはとりあえず置いておいて、
こういってはなんですが516さんのコードでは
速度が出るはずはありません。
バイト境界の設定やプリフェッチの設定が最低限必要なので
それらを満足にしてから、テストされた方がよろしいかと・・・orz
0564デフォルトの名無しさんNGNG
Athlon 1.33GHz DDR 2100? 256MB Win2k
0565560NGNG
dat直読みすれば大したことないな。
ごめん忘れてください。
0566デフォルトの名無しさんNGNG
ところでさー、memcpyなんか速くしたところで何か意味あんの?
0567デフォルトの名無しさんNGNG
自己満足は大事ですよ
0568デフォルトの名無しさんNGNG
>561-564
>抜粋するとこんな感じ
どいつもこいつもバカばっかりか?
抜粋するなら memcopy_amd を抜粋しろよ。
コードも晒さずそのスコアを信じろってか?
0569デフォルトの名無しさんNGNG
>561
それと、timeGetTime()使ってるのにtimeBeginPeriod()呼んでないのはネタか?
0570デフォルトの名無しさんNGNG
NT系なら不要なんじゃなかったっけ?
0571デフォルトの名無しさんNGNG
なんか攻撃的な猿が住み着いてるな。
0572デフォルトの名無しさんNGNG
アセンブラからはCOMとかDirectXは呼び出せないの?
0573デフォルトの名無しさんNGNG
呼べるよ
関数のポインタが並んでるだけなんで
0574デフォルトの名無しさんNGNG
バイト境界そろえる意味について分かってるヤシは >>563 以外にはいないのか?
0575デフォルトの名無しさんNGNG
手間さえ考えなければいくらでも呼べる。
0576デフォルトの名無しさんNGNG
>>574
shr ecx, 4しか見てなくて気付かなかったw
SSE使うなら16byte境界に合わせて余分なところをrep movsbするよな
0577デフォルトの名無しさんNGNG
>574=563 なのか?
じゃないと自分も解ってないという風に取れるが?

>576
お前は全然解って無いけどな。
movaps使ってる時点で16byte境界に調整されてるのに気付け。
563が言いたいのはALIGNディレクティブ使えって事だろ。
0578デフォルトの名無しさんNGNG
>>566
memcpyそのものには意味がないかもしれないが、それをテーマとして
メモリアクセス方法やコードの記述、測定方法について議論されるということに
充分な意味があるということが、このスレの流れからわかる・・・よね?
0579デフォルトの名無しさんNGNG
コードはAMDのサイトから拾ってきたのを改変した程度なんで
さらしてないだけなんです・・・orzすみません。
ところで私は574さんではないです・・・orzすみません。

説明するよりも実際に試走させてみる方が
わかりやすいと思うのでつくってみました。

ttp://www.uploda.org/file/0754.zip
0580デフォルトの名無しさんNGNG
実行するとこうなりました。
2048MB分のコピーを行います・・・
(´・ω・`)なにか・・押してください・・・

[1KB:2097152回] memcopy_amd: 341, memcpy:591
[2KB:1048576回] memcopy_amd: 290, memcpy:591
[4KB:524288回] memcopy_amd: 270, memcpy:571
[8KB:262144回] memcopy_amd: 270, memcpy:751
[16KB:131072回] memcopy_amd: 261, memcpy:561
[32KB:65536回] memcopy_amd: 280, memcpy:551
[64KB:32768回] memcopy_amd: 1302, memcpy:1722
[128KB:16384回] memcopy_amd: 1192, memcpy:1752
[256KB:8192回] memcopy_amd: 4277, memcpy:11286
[512KB:4096回] memcopy_amd: 4356, memcpy:11166
[1024KB:2048回] memcopy_amd: 3936, memcpy:11326
[2048KB:1024回] memcopy_amd: 4196, memcpy:11767
平均倍率: 2.205倍

ヽ(`Д´)ノなんか押せゴラァ
64KB, 128KBは境界の問題で遅いのかと思われます。
非常に汎用的に見えはするんですが、
エンコード・デコードなんかに用途は限られますね。
もはやベンチマークです・・・orz
3DNow!用に作ってありますが、3DNow!非対応でも
動くだけ動きます。動くだけですが・・・orz
0581デフォルトの名無しさんNGNG
キャッシュ越えで差が出るベンチなんて作るやつら, あほなのか?
0582デフォルトの名無しさんNGNG
キャッシュサイズがちゃんと分かるから便利じゃないかな
0583デフォルトの名無しさんNGNG
>>581
おまえがあほなだけ
0584デフォルトの名無しさんNGNG
>>579
実際にmemcpyしてる証拠も無いexe晒して意味あるの?
それとも逆アセンブルしろとでも?
568の言う通りですね・・・。
0585デフォルトの名無しさんNGNG
また猿が騒いでるが気にしないでくれ。
0586552NGNG
>553
説明と感想書いてたら長くなったからばっさり切っただけなんだがな。すまん。

AthlonXP 1900+、後に実行した方が速くなるから
memcpy_sse_aは公正を期すためのウォーミングアップ用ダミー。
指摘するならmemcpy_sse_aとmemcpyの比率が
>530と違うことくらい気づいてくれ。

もっとも、memcpyの速度はライブラリとコンパイルオプションに依存するけどな。

あと猿とか呼ばれてる奴は最速コードと参考実測値晒してみろ。
環境書いて無いの以下じゃねぇか。
0587デフォルトの名無しさんNGNG
>>579
>コードはAMDのサイトから拾ってきたのを改変した程度なんで
>さらしてないだけなんです・・・orzすみません。
別に晒せない理由にはならないと思うので、是非晒しキボン。
0588デフォルトの名無しさんNGNG
http://cdrom.amd.com/devconn/memcpy_amd.zip
0589デフォルトの名無しさんNGNG
>>584
それを言われると元も子もないですが
コード自体は相当短いんで
ollyなんかで展開してみてもわかります
・・・orzすみません
0590デフォルトの名無しさんNGNG
AMD Athlon1.2GHz 雷鳥コア
DDR1600-CL2.5 128MB
Windows2000

[1KB:2097152回] memcopy_amd: 392, memcpy:689
[2KB:1048576回] memcopy_amd: 343, memcpy:660
[4KB:524288回] memcopy_amd: 320, memcpy:647
[8KB:262144回] memcopy_amd: 310, memcpy:642
[16KB:131072回] memcopy_amd: 304, memcpy:636
[32KB:65536回] memcopy_amd: 311, memcpy:641
[64KB:32768回] memcopy_amd: 1474, memcpy:1995
[128KB:16384回] memcopy_amd: 1475, memcpy:2019
[256KB:8192回] memcopy_amd: 4295, memcpy:11251
[512KB:4096回] memcopy_amd: 4498, memcpy:12093
[1024KB:2048回] memcopy_amd: 4719, memcpy:11924
[2048KB:1024回] memcopy_amd: 4760, memcpy:12097
平均倍率: 2.086倍
0591デフォルトの名無しさんNGNG
テスト乙。やっぱり64KB、128KBか・・・・orz
0592デフォルトの名無しさんNGNG
memcpyって、転送元と転送先の領域が重なった場合でもきちんと
コピーできるように作ってあるんだけど・・・
0593デフォルトの名無しさんNGNG
>592
お前は議論に参加する資格が無いから黙ってろ。
0594デフォルトの名無しさんNGNG
>592
ttp://www.st.rim.or.jp/~phinloda/cqa/cqa16.html#Q8
ttp://www1.cts.ne.jp/~clab/hsample/Point/Point20.html
どこの規格のライブラリをご使用でつか?(プ
0595デフォルトの名無しさんNGNG
>>592
それは memmove だろ。。。
0596!516NGNG
>>563=>>574?
>>574

> _dest = (char *)( ( (DWORD)__dest & 0xfffffff0 ) + 16 );
> _src = (char *)( ( (DWORD)__src & 0xfffffff0 ) + 16 );
バイト境界合わせてるように見えるのは漏れだけですか・・・
0597デフォルトの名無しさんNGNG
>>592
VC6なんかだと、memcpyとmemmoveは同じルーチンつかっているから
問題ないようですけど、通常は保証されませんよ。
0598576NGNG
>>596
呼出直後とループの頭でevenなんだろ
0599デフォルトの名無しさんNGNG
C++のクラスとかどんなコードに変換されるの?
0600デフォルトの名無しさんNGNG
んな事聞かなくてもコンパイラオプション付けてコード吐かせりゃすぐ分かるだろ
0601デフォルトの名無しさんNGNG
>>596
貴方だけですな
0602デフォルトの名無しさんNGNG
>>601
16バイト境界に合わせようとしているようだが
バイト境界にも合っているように見えるが
0603デフォルトの名無しさんNGNG
x86系のプリフェッチについて詳しくかかれているページはありませぬか?
0604デフォルトの名無しさんNGNG
x86フェチのページはいっぱいあるんだけどなぁ
0605デフォルトの名無しさんNGNG
aling 16
lab_1:
prefetchnta [esi+320]
movaps xmm0, [esi+ 0]
movaps xmm1, [esi+16]
movntps [edi+ 0], xmm0
movntps [edi+ 16], xmm1
movaps xmm2, [esi+32]
movaps xmm3, [esi+48]
movntps [edi+ 32], xmm2
movntps [edi+ 48], xmm3
add esi, 64
add edi, 64
dec eax
jne lab_1

こっちの方がよくないか?というかプリフェッチのページおしえてくれ
0606デフォルトの名無しさんNGNG
ん?なんか間違ってるかな?
というかプリフェッチのページおしえてくれ
0607デフォルトの名無しさんNGNG
Pentium4のBTBについて語っているページも知りたいなぁ
0608デフォルトの名無しさんNGNG
>>605
>aling 16
w
0609デフォルトの名無しさんNGNG
あ、わりい8だ
0610デフォルトの名無しさんNGNG
コピペしたわけじゃないから許してくれ
で、551とくらべてどうなの?
0611デフォルトの名無しさんNGNG
アリング
0612デフォルトの名無しさんNGNG
あれ。16でよくねぇ。
0613デフォルトの名無しさんNGNG
ぐばらぁ。アリングって・・・吊ってきます。
でやっぱり16であってるわ、あたりまえだけど。
0614デフォルトの名無しさんNGNG
でもSSEなんて動かないぜ
                        ─
 、   l   _,                  -‐-、
  ヽ/⌒ヘ~    ,ヘ        ,rァ       l
  ., 't,_,ノ丶   / '、     ,/ ,i       '’
 /  !   '`  |   '──--'  {       つ
        ,/ ● L_/    'i,
       /     l ,/  ●   i,    -っ
       'i      しii     丿     / ゝ-
      |`:、\     'ii   __,/      `‐′
      'i、 ̄~~     ij  乙__ノi       ├
       ^-ァ        __,ノ       σ‐
     r^~"i'        'l
     !、 !         l          ─‐
      ~^''!,   ,_    ,!_        ー〜'ヽ
         \ l,~^''‐--::,,⊃ ) ) ) )       )
            `'‐’                ノ
おれはDuronなのさ...。
0615デフォルトの名無しさんNGNG
うちのDuronでは動くぞ
0616デフォルトの名無しさんNGNG
うちはG4だな
0617デフォルトの名無しさんNGNG
>579 を逆汗ったら確かに>588とほぼ同じコードだった。
ただ先頭部分に、
mov eax, edi
が追加されてるんだが、その後eaxにはアクセスされてない。
おまじないの一種?>579
0618デフォルトの名無しさんNGNG
>>617
関数の返り値じゃないか?
0619デフォルトの名無しさんNGNG
>618
あー! それか!!
0620デフォルトの名無しさんNGNG
GJ
0621デフォルトの名無しさんNGNG
逆汗�dクス(*´д`*)アハァ
まさにその通りで返り値です
0622デフォルトの名無しさんNGNG
>>600

VC7.1でも?
0623デフォルトの名無しさんNGNG
>>622
当たり前だろアフォ。MSDN読め。
0624デフォルトの名無しさんNGNG
http://www.cyborg.ne.jp/~xelf/developer/MemoryCopy.html
0625デフォルトの名無しさんNGNG
結局、特定CPUでしか高速じゃないor動作しないmemcpyじゃメリット無いな。
前段でCPUチェック入れてそれぞれのCPUで高速動作するmemcpyに分岐してもいいけど、
コピーサイズによってはそのオーバーヘッド自体が無視出来なくなる場合もあるだろうし。
0626デフォルトの名無しさんNGNG
一回チェックすりゃ済む話だろ…
0627デフォルトの名無しさんNGNG
625=夏房
なんもわかってねぇな。

>コピーサイズによってはそのオーバーヘッド自体が無視出来なくなる場合もあるだろうし

ってどんな状態だよ。
CPUID取得すんのはソフト起動時の1回だけだしな。













という答えのためだけの釣りだという事は言うまでもない。
0628デフォルトの名無しさんNGNG
うっひょう。頭が溢れてオーバーヘッドだぜ
                        ─
 、   l   _,                  -‐-、
  ヽ/⌒ヘ~    ,ヘ        ,rァ       l
  ., 't,_,ノ丶   / '、     ,/ ,i       '’
 /  !   '`  |   '──--'  {       つ
        ,/ ● L_/    'i,
       /     l ,/  ●   i,    -っ
       'i      しii     丿     / ゝ-
      |`:、\     'ii   __,/      `‐′
      'i、 ̄~~     ij  乙__ノi       ├
       ^-ァ        __,ノ       σ‐
     r^~"i'        'l
     !、 !         l          ─‐
      ~^''!,   ,_    ,!_        ー〜'ヽ
         \ l,~^''‐--::,,⊃ ) ) ) )       )
            `'‐’                ノ
アセンブラなんて触ったこともない癖にぃ→>>625

0629デフォルトの名無しさんNGNG
オーバーヘッドが無視できないサイズのコピーでmemcpy使うのか?
0630デフォルトの名無しさんNGNG
そんなサイズ使えないよ
0631デフォルトの名無しさんNGNG
    、     ,.   / _/{         /    /
     l゙、   ,/{  ,.r'i r":::/ /   ,.r   /    /     /
     ノ:::`、∧l:::゙、i"::::|/:":レ'"l、-''""/  /   /    /
    {:::::::、:::::::::∧'"゙`::::::::"::::{:::::::::::ノ     /   /
  ヽ、 ゙、:::/ヘ/:::゙、:::r"゙ヽ、::::::::,","/‐ニ="´     /
 __l゙=vニ-‐"~゙i、::゙,:::/:::::`ヽ‐-、_r、/-、    /
 ゙、:::::<,-‐''"~、 ゙'‐-=彡ゝ、_::::::::,.-''l    `''‐-、___,,.
  ):::::| ノ''''‐、 ,.〃-‐'''‐=、ヽ‐'゙'ゝ !、‐-、 _、-‐'''"´ ヤ・・・ヤベェ・・・
  〈:::r' "-‐‐'/,゙i、 _,.-‐-、ミ ゙、ノl  |\ >ニ=‐''"  ヤベェよ兄貴・・・・
  l/ 〃 ,.-‐   '、 ゙、 (・) }::::::/゙,〈  ゙、  ゙i、
  ,i"〃 r'"゙゙'ヽ,  ヽ `'‐-'::i、./::j `ヽ、ヽ  ヽ、_,. 叩かれ過ぎ ―― !!!
..y'i.   ノ" ̄`、l   ゙、=‐-''" ゙}:::l ヽ  `ヽ r‐''"
〈, i / i'::::::::::;;;;/    `‐'" r'‐、゙、 ゙、,.、‐'"
/゙l/  /、:::::::::;/  // / /ra } ヽ, \__
:::::'i/ ゙'‐、__r" ι   /="/゙ 、 `ヽ'/
,.r"l  `'‐   ι    /、__,,./   ヽ , '"
  !       __,,,,...ノ ゙i、,__゙‐、 ,.、‐'"
 / ゙'''-r==‐'''"/ / ./}''" |   ̄
‐'   l | | / / / l j ヽ、
"~゙> /  / /r''‐''" `'-‐''"`゙゙

CPUIDの取得でなくて。
if( amd3dnow ) memcpy_3dnow(...);
else if( sse ) memcpy_sse(...);
...
みたいな感じになるかと思ったけど、初期化時に関数ポインタ書き換えりゃいい話だな。スマソ。

>629
固定サイズのコピーだけしか存在しないとでも思ってんのか?
0632デフォルトの名無しさんNGNG
関数ポインタを介するようにしたら、
小さなサイズで大量の回数コピーした時に、
インライン展開されたmemcpyよりも、
関数ポインタ参照の分だけ遅くなっちゃうね。
memcpyの呼び出し回数が多いとコストが馬鹿にならないよ。
0633デフォルトの名無しさんNGNG
       |
       |
   ぱくっ|
     /V\
    /◎;;;,;,,,,ヽ   そんなエサで
 _ ム::::(,,゚Д゚)::|    俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::::.:..|) 
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U

てか、ポインタのサイズが32bitだから
最大メモリサイズも2~32byteだろ・・・・
0634デフォルトの名無しさんNGNG
>>632
経験上それは真っ赤な嘘。
無視できるほど小さい罠。
0635デフォルトの名無しさんNGNG
まぁ所詮脳内実験房ですからね。
0636デフォルトの名無しさんNGNG
「DLLにすると遅くなる」
「仮想関数にすると遅くなる」
と言ってるようなもんだな。
0637デフォルトの名無しさんNGNG
関係なくてすまないんですが
CrystalCPUIDが海外で微妙に人気があるのって笑えますよね。
多分作者も笑っているものかと。
0638デフォルトの名無しさんNGNG
海外は見た目から入るからね
0639デフォルトの名無しさんNGNG
>>637
いろんな言語に対応してるからという理由 だ ・ け だとおわれ
0640デフォルトの名無しさんNGNG
えっexcite翻訳でいいの?
0641デフォルトの名無しさんNGNG
>632
(´゚д゚`)えっ?
0642デフォルトの名無しさんNGNG
CnQ対応が評価されてんだろ
0643デフォルトの名無しさんNGNG
>>632
P6以降のCPUなら分岐予測とストアフォワード、アンド投機実行で、
分岐のスループットは消滅するだろうに。

・・・てな事位は教えてやれよ、皆。
0644デフォルトの名無しさんNGNG
スループットが消滅するとは、なんかわけわかな表現だ
0645デフォルトの名無しさんNGNG
(´゚д゚`)えっ?
0646デフォルトの名無しさんNGNG
帯域が消滅する?

普通はオーバーヘッドが消滅する?
0647デフォルトの名無しさんNGNG
そもそもmemcpy()インライン展開出来るのか?
ライブラリ関数だぞ?
0648デフォルトの名無しさんNGNG
rep movsXとかにはなるけど、ループは展開されませんとさ
0649デフォルトの名無しさんNGNG
ココハ
房ヲ
玄人カ
潰ストミセカケテ
釣ラレマクル
スレデスカ?゙
0650デフォルトの名無しさんNGNG
違うよ
0651デフォルトの名無しさんNGNG
(´゚д゚`)えっ?じゃ、これ真性房なの・・・・・・・・・・・
0652デフォルトの名無しさんNGNG
>>647
glibc/gcc だと __builtin_xxx に置換されて展開されるな







今月は釣られ月間
0653デフォルトの名無しさんNGNG
>>652
サイズが定数になってるmemcpyは展開されるよ。
0654デフォルトの名無しさんNGNG
浮動小数点の足し算1回に掛かるクロック数を求めたいんです。

Cコードです。
#include<stdio.h>
void main(void)
{
double a,b,c,i;
for(i = 1;i<10;i++)
{
a = 1;
b = 2;
c = a + b;
}

}

c = a + b のアセンブラです。
00401070 fld qword ptr [ebp-8]
00401073 fadd qword ptr [ebp-10h]
00401076 fstp qword ptr [ebp-18h]

上記アセンブラの命令3つのクロック数を知りたいんですが
intelの資料「IA-32命令のレイテンシとスループット」では
fld 載っていない
fadd スループット1
fstp 載っていない
という内容で、分からないのです。
実測すると2.5clk程なのですが、上記アセンブラのクロック数をおわかりの方はいらっしゃいますか。
0655デフォルトの名無しさんNGNG
化石どもが
0656デフォルトの名無しさんNGNG
>>654
Pentiumシリーズって並列化処理で
1命令のクロックというのはそのときの状況によるからわからない。
だいたいそのときのメモリキャッシュやOSの制御で正確なクロックは測れないよ。
0657デフォルトの名無しさんNGNG
>>656
もっとも良い状況での最短クロック数を知りたいんでしょ
0658デフォルトの名無しさんNGNG
つーか、PentiumシリーズってP5/P6/Netburst/Pentium Mで全部違う気がするが。
0659デフォルトの名無しさんNGNG
nasmの日本語訳希望します。
ホンヤクコンニャク食べたけど忌み分からなくて
みんなから意味きらわれました。
ジャーン!ジャーン!ジャーン!
ウゲエ!!masmだ
びっくりするほどMASMMASMMASMMASMMASMMASMMASMMASMMASM!!
0660デフォルトの名無しさんNGNG
OS板行ってMASK呼んでこい、さっきゅんでも可。
つーかさっきゅんはここに住み着いてるだろ。
0661デフォルトの名無しさんNGNG
>>660
>>MASK呼んでこい、さっきゅんでも

ええ〜MASKって誰ですか
っていうか青春とはなんぞや?
と日々思っとります臼vvvv
0662デフォルトの名無しさんNGNG
ぐぐれ、と一言で言いたいところだが、ことごとく消えちゃってるな…。・゚・(ノд`)・゚・。
とりあえず↓とか。
ttp://www.yuasa.kuis.kyoto-u.ac.jp/~nobu/study/nasm/nasm.html
0663デフォルトの名無しさんNGNG
>>662

( ゚w゚) >>662 あんた最高だよ。カール大帝なんか目じゃないね。

がんば、れがんばれ >>662
0664デフォルトの名無しさんNGNG
ところで、memcpyの結論としましては
MMX以降のSIMDが搭載されているCPUでは
汎用的に高速化され、実践的である。
ということでよろしいのでしょうか?
0665デフォルトの名無しさんNGNG
よろしくないです
0666デフォルトの名無しさんNGNG
>664
C3/Crusoe辺りのベンチ結果次第じゃね?
0667デフォルトの名無しさんNGNG
>>664
Pentium MMXの環境では、FPUかMMXで転送するのが速いという結果となっています。
このような環境では、長いデータ型が有利なのでしょうか。
 Pentium IIIの環境では、工夫のないFPUやMMXよりも、
「rep movsd」が速い結果になっています。命令のデコード時間の分だけ無駄があるのでしょうか。
0668デフォルトの名無しさんNGNG
最近のCPUはinc eax*4回のほうがadd eax,4より速いとか
もうワケワカラン。
0669デフォルトの名無しさんNGNG
>工夫のないFPUやMMXよりも
0670デフォルトの名無しさんNGNG
>>668
incは、フラグの依存関係ペナルティで遅くなる。
最適化マニュアル読め。(もしくはVTune使え)
0671デフォルトの名無しさんNGNG
何でも前らそんなに詳しいんだ。
どれだけ勉強したんだよ。
0672デフォルトの名無しさんNGNG
>>668
0673654NGNG

>>658
CPUはPentium4 2.8GHzです。

>>656
最短の理論値を知りたいです。

目的はCPUのFLOPSを測定したいのです。

c = a + b;
を100億回実行し、時間を計測すると9.1secかかります。
100億回/9.1sec=1207Mより
FLOPSは1207MFlopsと計算しました。
クロック数は
2.8GHz/1207MFlops=2.3
より2.3clkと求めました。
この浮動小数点足し算のクロック数の実測値と、理論値が等しいかを知りたいのです。
0674デフォルトの名無しさんNGNG
>>654
その命令列だと
ロード×2、fp加算×1、ストア×1
なので、ロード・ストアがボトルネックとなってしまい、
fp加算の理論最大性能は出せない。
0675デフォルトの名無しさんNGNG
>673
パイプライン技術の登場でMIPS/FLOPSの単位は意味を失ってると思うけど。
HDBENCHの値の方がよっぽど気が利いてる。
0676デフォルトの名無しさんNGNG
pen4はmipsだけは高いよな・・・
0677デフォルトの名無しさんNGNG
そのための20段パイプラインでつ。
0678654NGNG
>>674
どのような命令列がいいのでしょうか?
よろしければ教えていただけますか。

>>675
FLOPSの値が、あまり意味を成さない事は分かっていました。
ですが客先から値を
「FLOPSはいくつ?」と聞かれていまして・・。
0679デフォルトの名無しさんNGNG
>>678
>>414のリンク先
> 1.5GHz 動作時に単精度小数点なら最大6GFLOPS、
> 倍精度浮動小数点なら3GFLOPS の性能を達成しています。

なので
2.8GHzなら単精度11.2GFLOPS、倍精度5.6GFLOPS。
0680デフォルトの名無しさんNGNG
RDTSCでクロックははかれるんじゃ?
----------------------------------
//RSTSCs.s 整形は自分でしてね
.file"cputime.c"
.text
.globl _RDTSC
.def_RDTSC;.scl2;.type32;.endef
_RDTSC:
pushl%ebp
movl%esp, %ebp
RDTSC
movl%eax, %ebx
movl8(%ebp), %eax
movl%edx, (%eax)
movl8(%ebp), %eax
addl$4, %eax
movl%ebx, (%eax)
popl%ebp
ret

-------------------------------------
//使い方
int main(){
int i=0;
unsigned int x[2];
printf("%d\n",i);
RDTSC(x);
printf("%u %u\n",x[0] ,x[1]);
0681デフォルトの名無しさんNGNG
某ゲームの逆汗解析を行ってくれる猛者募集
勿論有償で

要アセンブラ、C++、Perlの各知識。
詳しくはメールで
0682デフォルトの名無しさんNGNG
>>681
いまどきのアセンブラプログラミングに嫌気がするヤツしか居ないスレで釣れないと思うがなw

ところでこの本って、どきブラって略せばいいの?
0683デフォルトの名無しさんNGNG
ところで、memcpyの結論としましては
SSE/3DNow!以降のSIMDが搭載されているCPUでは
汎用的に高速化されたことが証明され、実践的である。
ということでよろしいのでしょうか?
0684デフォルトの名無しさんNGNG
逆汗なんて別に簡単だと思うんだが
Perlの知識をいつ使うのかと・・・・
個人じゃないなら著作権もので犯罪の悪寒・・・・
0685デフォルトの名無しさんNGNG
レポート作成>Perl
0686デフォルトの名無しさんNGNG
え?てかCとGoogleが使えればPerlなんて
できてもできなくても(ry
0687デフォルトの名無しさんNGNG
Perlは一応出来無くても平気です
内容は、ソフト内で出力データに対し符号化を行っているルーチン部分の解析と抽出になります
0688デフォルトの名無しさんNGNG
>>687
>個人じゃないなら著作権もので犯罪の悪寒・・・・
って個人なの?
0689デフォルトの名無しさんNGNG
>687
「画像or音声のブッこ抜きアプリ集作るのに困っています、助けてください」って言い直せよ!
カッコつけるな
「今 僕は必死です」って
0690デフォルトの名無しさんNGNG
(´゚д゚`)えっ?じゃそんなことに金を・・・・個人の範疇をこえるんじゃ・・・・・
0691デフォルトの名無しさんNGNG
>>516なんだよこのくそおせぇSSEのmemcpyは、でかい口叩くんならまともなコードorバイナリ挙げやがれ
0692デフォルトの名無しさんNGNG
今日は猿と業者が一緒になって騒いでるな。
0693デフォルトの名無しさんNGNG
       |
       |
   ぱくっ|
     /V\
    /◎;;;,;,,,,ヽ   そんなエサで
 _ ム::::(,,゚Д゚)::|    俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::::.:..|) 
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U

でも、memcpyの件はいったいどうなったのかと少々気になるな。
0694デフォルトの名無しさんNGNG
>>530, >>551, >>580, >>588, >>624

3DNow!で最高3倍、P4は最高1.5倍。
0695デフォルトの名無しさんNGNG
汗の知識があまりないので知識有る方に依頼したいのです
一応算出部分のおおよその場所特定はできています
お互い秘密厳守できる方で宜しくお願いします
0696デフォルトの名無しさんNGNG
>>695
人に頼ってないで、ここでも読んで自分で勉強しろ
http://www.kusamado.com/contents/sc_baio04.html
0697デフォルトの名無しさんNGNG
普通、ターゲットのCPUくらい書かないか?

逆汗なんてのは暇つぶしの片手間にやるもんだ。
時間かけりゃなんとかなる類のものではあるが、
それだけに作業見積もり出来ないし、はした金に見合う作業でもない。
しかもそれで金儲けしようってんなら、法的にもヤバイだろ。
0698デフォルトの名無しさんNGNG
解析といえば、ちょい前のP5ペアリングを考慮して最適化をした
コードとか、ebpを使わずにespを生のまま使って変数アクセスしてるのが
糞めんどうだったな。
あれは割にはあわない仕事だったw

>>697
逆汗しても、フルスクラッチでコードを書き直せば法的には問題無いハズだが。
0699552NGNG
>>694
3DNow!のソースが出てすぐにSSEに持ってってみたけど速度は変わらなかった。
prefetch命令すらいらない。

結局高速化の1番のキモは、キャッシュに引き上げるために
prefetchではなくキャッシュライン間隔の無駄な転送をさせることで、
これだけで後の本意のコピーがmemcpyの2倍になる。

あとはmovntpsを使うことでプラスアルファして、計memcpyの3倍弱。
0700デフォルトの名無しさんNGNG
>698
リバースエンジニアリング自体を禁止してるとこもある。
ぶっちゃけ、コナミとの裁判沙汰なんかに巻き込まれた日にゃ・・・たまらんだろ。
0701デフォルトの名無しさんNGNG
まずはその契約の正当性から争おう。すんげえええええええええ金かかるけど。
0702デフォルトの名無しさんNGNG
おれ結構でかい逆汗してるけど、そんな時間かからんぞ。
時間かかるのはアセンブラからCとかに直したあとの
アルゴリズム解析が主だ。てかソースに起こしても著作権はもちろん
向こう側にあるんだがな
0703デフォルトの名無しさんNGNG
マヂレスするとアセンブラでオブジェクト指向は無理
そもそもクラスや継承を表現するような仕組みがマシン語レベルでは備わっていないしな
0704デフォルトの名無しさんNGNG
fork()
0705デフォルトの名無しさんNGNG
>>682
まさにタイトルにいつわりありな本だな
0706デフォルトの名無しさんNGNG
>>681
http://pc5.2ch.net/test/read.cgi/prog/1043334001/331
マルチウザイ
0707デフォルトの名無しさんNGNG
MASMにハマッテマス
0708デフォルトの名無しさんNGNG
マヂレスするとコンパイラでオブジェクト指向は無理
そもそもクラスや継承を表現するような仕組みがマシン語レベルでは備わっていないしな
0709デフォルトの名無しさんNGNG
>>706
氏ね
0710デフォルトの名無しさんNGNG
>>702
アルゴリズムには著作権は無いぞ

超引用@第十条
3 第一項第九号に掲げる著作物に対するこの法律による保護は、
その著作物を作成するために用いるプログラム言語、規約及び
解法に及ばない。
三 解法 プログラムにおける電子計算機に対する指令の組合せの方法をいう。
0711デフォルトの名無しさんNGNG
>709
業者必死だな(藁

>710
http://pc5.2ch.net/test/read.cgi/prog/1043334001/337
0712デフォルトの名無しさんNGNG
>>711
>710
>http://pc5.2ch.net/test/read.cgi/prog/1043334001/337
クリーンルームどうとかで回避できるんじゃなかったっけ。
0713デフォルトの名無しさんNGNG
>>712
http://pc5.2ch.net/test/read.cgi/prog/1043334001/337
のリンク先に書いてある。

http://www.venture.nict.go.jp/ipr/ken00002.html
> リバースエンジニアリングによって得られた情報を基に、プログラムを
>そのまま複製したり、改変してプログラムを作成した場合は著作権侵害
>となります。
> よって、リバースエンジニアリングを行う人と、プログラムを作成する人を
>別個に分け、プログラムを作成する人に、リバースエンジニアリングの情報
>が行かないようにして、プログラムを作成した場合は、例え、他人の著作権
>にかかる著作物と同一のものが出来たとしても、著作権侵害とはなりません。
> このように、プログラムを作成する人のところに、他人の著作権にかかる
>著作物の情報がいかないようにして、プログラムを作成する方式のことを
>一般にクリーンルームと言います。
0714712NGNG
>>713
Oh, Thanx.
0715デフォルトの名無しさんNGNG
>>713
でも、これじゃリバースエンジニアリングで情報を得てもそれをチームのソフト開発に使う事は出来ない、って事じゃないの?
よく分からん・・・
0716デフォルトの名無しさんNGNG
でも、MSだってJ#でJavaのクリーンルーム実装やってるしなぁ
0717デフォルトの名無しさんNGNG
Javaに関しては、仕様が予め公開されているのでちょっと別の話。
0718デフォルトの名無しさんNGNG
>>715
そこの記述、理解して無いのか間違ってるね。
クリーンルーム方式は、元のプログラムを複製していない事を明らかにするために
解析とコーディングを分担してるので、アルゴリズム等の解析情報はコーダーの
方にいってます。
0719デフォルトの名無しさんNGNG
>>715
>>718の簡潔に言うと、
解析チームがリバースエンジニアリングで解析する。
解析チームがCoderチームにインターフェースを教える。
そのインターフェースに基づいてCoderチームが作成する。

でもよく考えたらこの作業自体リバースエンジニアリングそのものじゃんw
0720デフォルトの名無しさんNGNG
インラインアセンブラしか使わないんですが、mmxやsseも含めて紹介しているお勧めの入門書とかありますか?
それぞれ別の本でもいいです。
0721デフォルトの名無しさんNGNG
IntelとAMDの資料。

効果的な使い方まで書かれていたような。
0722デフォルトの名無しさんNGNG
>>720
721+Googleで「アセンブラ x86」で
今ではすっかり/すっきりx86アセンブラマスターになれます
0723デフォルトの名無しさんNGNG
ここまで読んで有益な情報無し。
こんな糞板二度と来ねぇ。
0724デフォルトの名無しさんNGNG
このスレでもっとも無駄な情報 >723
0725デフォルトの名無しさんNGNG
>>719
やっぱり解析とコーディングの分担のとこが理解できないなぁ
通常の逆汗って

メモリからアセンブラ読む→asm表記じゃだるいからコードに起こす

ていう風なもんだけど、分担ってどういうこと?
メモリからasmに読むとこが解析?そりゃないよなぁ・・・

あ、
→コードの内容を評価、解析する
ここの分担か?
ってわかったわかった、718?も719もまちがっとるやん
逆汗したことを知らない状態で相手に作らせるんじゃん。
法の抜け穴的で実際にはありえないな、仕様書とか起こせないもんね。
巷には

逆汗→基本構造解析・ちょっとぱくる→売り出し

っての実際に多々あるしね
働いてる人でまともなもの作ってる人は、
大概逆汗からコード書き起こしたりしてるよ、法律的には違法でもね。
くわえて裁判でも判決は曖昧でなんともいえないなぁ・・・
大企業相手に勝ってる弱小企業もいれば逆もまた・・・
0726デフォルトの名無しさんNGNG
>>719
違う違う。
アルゴリズムをぱくる → 合法
コードをぱくる(複製する) → 違法

コードをぱくったのかアルゴリズムをぱくったのかを明確に区別するために、
コードからアルゴリズムに落とす人と、そのアルゴリズムを実装する人に
分かれてるわけ。
実装する人が元のコードを知らないと、コードをぱくる(複製)のは絶対に
不可能だからこういう作業分担になってるわけで。

719だと、「メモリからアセンブラ読む→asm表記じゃだるいからコードに
起こす→コードの内容を評価、解析する」までが一人(or チーム)の作業、
その評価解析されたアウトプットを利用してプログラムを作るのが別の人の
作業。

ちなみに、このアルゴリズムをぱくられる事から保護するのは著作権ではなく特許なわけ。
0727726NGNG
s/719/725/
の間違いだ・・・釣ってくるorz.
0728デフォルトの名無しさんNGNG
>>726
え!(´゚д゚ )結局違法なのわかってないのか
というか専門家でも意見がまちまちなんだ、726の方法でも
裁判に負ける場合もあるんだずぇ
というかアルゴリズムぱくるというのを平たく言えば
盗作なんだがな、ファイルフォーマットとかもろもろで、
しかも特許とってんのにまけてやがる判例まであるしな
もうむちゃくちゃだね。著作権
0729デフォルトの名無しさんNGNG
誤解が内容に書くけどアルゴリズムっていっても
非常に限定的な特殊なものもあるんだずぇ
0730デフォルトの名無しさんNGNG
プログラム全体の肝ともいえる

アルゴをぱくっても裁判に勝つやつ、負けるやついるし

デザインが似てるというだけで

意匠権の侵害だ!と訴えられて会社が傾いてるやつもいるし

まぁ結局のところ709氏ね
0731デフォルトの名無しさんNGNG
>>728
むちゃくちゃなのは君の日本語だと思う。
0732デフォルトの名無しさんNGNG
>>728
何の法律に対して違法なんよ?

クリーンルーム手法は、著作権の観点で合法。
アルゴリズムのパクりは特許の観点で考える
リバースエンジニアリングの可否は契約の観点で考える。
0733デフォルトの名無しさんNGNG
732の上げてるのは全てグレーゾーンだよ、せめて愚昏
0734デフォルトの名無しさんNGNG
クリーンルーム手法は確かに合法だよな?
個人的にはむちゃくちゃだと思うけどな。
だって要約すると

A君が最新のソフトを解析しまくる
そしてB君に
「おい、B君よ。おまえにいいもん教えてやるぜ」
「ここをこうしてこうすると、これが出来るんだ」
「仕様書もつけといてやるよ。おれってすげぇだろ。」
という

「A君凄すぎるよ、これ商売になるくらい凄いよ」
「僕がこれをつかってソフト作ってもいいの!うそ!」
とB君がソフトを作る

B君うはうは→A君に感謝で現金を(ry

こうみるとひでぇ話だけど
まぁグレーとするならその証明方法かな?
日誌でわかるって言う人もいるけど
実際に証拠として採用されない場合もあるし
なにより捏造もあるもんな、でも合法だよ。

とここで俺の考えたたわいもないことを聴いてくれ

ものすごい人数で逆汗にかかる(千以上→webで公開
→当然訴えられる→人数でどうにでもw→webを介してクリーンルーム手法をとる
→ソフトに著作権なんてねぇ

こんな可能性を想像した。
クリーンルームの話題でLinuxをおもい出しますた。
0735デフォルトの名無しさんNGNG
>>734
日本ではそういうのは不正競争防止法の守備範囲です。
0736デフォルトの名無しさんNGNG
その場合だれを取り締まるんだろうか、普通に謎だ・・・・・・・いいだしっぺとみた
0737デフォルトの名無しさんNGNG
>>734
クリーンルーム手法は確かに著作権から言ったら合法らしいが
特許権や意匠権からいったら違法だと思われ
0738デフォルトの名無しさんNGNG
むちゃくちゃなのは >>733 じゃないか?
0739デフォルトの名無しさんNGNG
>>737
>特許権や意匠権からいったら違法だと思われ
思うのは勝手ですね。

>>734
>クリーンルームの話題でLinuxをおもい出しますた。
私はエプソンの98互換機を思い出しました。
0740デフォルトの名無しさんNGNG
このスレは業者らしきものの逆汗依頼から
逆汗の法的にゃんらについて論議するすれでつか?
0741デフォルトの名無しさんNGNG
>>>737
>>特許権や意匠権からいったら違法だと思われ
>思うのは勝手ですね。

普通にワロタ
0742デフォルトの名無しさんNGNG
「思想・良心の自由」・・・・・・・・・・・・orz法律スレにきた悪寒
0743あぼーんNGNG
あぼーん
0744あぼーんNGNG
あぼーん
0745デフォルトの名無しさんNGNG
>>734
だから、そういうのを防ぐために特許で保護したりライセンスでリバー
スエンジニアリングを禁止するんでそ。

まあ、その例みたいに同時多数でやられちゃうと訴えきれないとは思うけど。
0746あぼーんNGNG
あぼーん
0747あぼーんNGNG
あぼーん
0748デフォルトの名無しさんNGNG
確かにグレーゾーンだが、
クリーンルーム手法は、現在のどこの大企業でも
暗黙の了解で行われている行為。
0749あぼーんNGNG
あぼーん
0750あぼーんNGNG
あぼーん
0751デフォルトの名無しさんNGNG
特許保護もライセンスでの禁止も国によってはまったく機能しなかったり
するんですよね・・・・・・・・・・orz
0752あぼーんNGNG
あぼーん
0753デフォルトの名無しさんNGNG
>>748
禿同、個人レベルではクリーンじゃないライブラリ使ってる香具師も多々
0754デフォルトの名無しさんNGNG
(´゚д゚ )こっこれは・・・・・・・・・コピペで流れをかえるき・・・・・なのか?
0755デフォルトの名無しさんNGNG
>>754
美しい亜線部羅のコードをさらして止めてくれ。
0756デフォルトの名無しさんNGNG
>>755
これって結構美しいよな
http://moech.net/imgboard5/src/1091446545743.gif
0757デフォルトの名無しさんNGNG
特許侵害してるならリバースエンジニアリングもクリーンルームも関係ないだろアホ
0758デフォルトの名無しさんNGNG
すげー。やってみたいけど相手居ない。
0759デフォルトの名無しさんNGNG
>>757
餅つけ、アイデアのための権利つぅことだから関係なくもない。
0760デフォルトの名無しさんNGNG
やねうらおの新刊はこのスレ的にどうよ?
0761デフォルトの名無しさんNGNG
読んでないし、今後読むこともないだろう
簡単に言うと興味ないねってところ
0762デフォルトの名無しさんNGNG
>>760
「いまどきのアセンブラプログラミング」と比較したら、
かなりの良書だと思うよ。
0763726NGNG
こんにちはマイコン > 解析魔法少女 > いまどきのアセンブラプログラミング
0764デフォルトの名無しさんNGNG
解析魔法少女 については
これ系の本最近出たばっかだしな
読むと後悔する位、アセンブラの程度が低いのは言うまでもない
このスレを読んでるようなひとがよむと・・・・orzっとなる
0765デフォルトの名無しさんNGNG
個人的には「ゲームプログラミングの神様」っていううたい文句は
「わたしはオタの上に勘違い野郎です」っていってるのと同値にみえるな。
秀丸尾氏が「おれってテキストプログラミングの神様」って言う方がまだまし。
0766デフォルトの名無しさんNGNG
(´゚д゚ )えっ!・・・・・・・・・・・・・・・魔法少女・・・・・・・・・・
0767デフォルトの名無しさんNGNG
プリンセス・メグ
0768デフォルトの名無しさんNGNG
>>765
このレビューは参考になりましたか?
◎はい ○いいえ
0769デフォルトの名無しさんNGNG
VisualStdio.net2002のLC.EXEでアセンブラのソース吐かせるオプションを教えてください
0770デフォルトの名無しさんNGNG
>>769
そんなオプション、ライセンスコンパイラにあるわけねーだろ!!!
0771ほんたまNGNG
>>752
>クラスと云うのはパラダイムに属するもの

おみゃ〜らよ、オブジェクト指向の利点をひとつだけ言うならば、
オブジェクト指向ならインスタンスをつかって表現できるものを、
非オブジェクト指向だと、配列や構造体をつかって表現しなければならないということだ。
その結果大きなプログラムだと、重〜い配列や構造体を使うから、コンパイラが自動的に確保してくれるヒープやスタック領域が足りなくなり、
たとえばリソースのために確保された領域を食いつぶしてしまってダイアログが出なくなるなどの不具合が生じるわけだ。
その都度インスタンスを確保するオブジェクト指向方式なら、この心配はないわけだ。
おみゃ〜らよ、これが唯一の現実的なオブジェクト指向の利点よ。自分じわかるかな?
まあこれはマシン語に熟知したおりならではの意見よ。他の誰にもこういう意見は出せないぞ!!
自分じわかるかな?
0772445NGNG
なんか発言がコピペに使われてるなw

>>771
自分でタコなコードしか組めない、と言ってる様なもんじゃん。
アセンブラで組むようなデリケートな(デバッグしにくい)作業で、
ヒープ圧迫するような実装をするのが悪い。
昔のマシンは、32kbとかで、ウインドウ処理から何から全部賄ってたぞ。
処理が複雑になって、OSが肥大化したからといって、
アセンブラで組むときにルーズな組み方をするなよ。
アセンブラで組むなら、リソースの管理は細部まで設計するのが普通。
出来ないなら、高級言語で組め。
0773デフォルトの名無しさんNGNG
GCCでJavaVMのアセンブリコードをはかせるオプションを教えてください。
0774デフォルトの名無しさんNGNG
CLじゃないの
0775デフォルトの名無しさんNGNG
ソースが公開されてるのに, なぜアセンブリ
0776デフォルトの名無しさんNGNG
>771
>おみゃ〜らよ、オブジェクト指向の利点をひとつだけ言うならば、
>オブジェクト指向ならインスタンスをつかって表現できるものを、
これだからアセンブラ *しか* 出来ないキチガイは嫌いなんだよ。
せめてOOPを少しでも勉強してから出直して来い。
0777デフォルトの名無しさんNGNG
沢村はアセも少しおかしいだろ。
いや、俺は決して嫌いじゃないんだが。
0778デフォルトの名無しさんNGNG
質問です。

GNU アセンブラ入門(GAS)
http://stoc.as.wakwak.ne.jp/assembler/gas.html

上にあるハローワールドを実行すると「セグメンテーション違反です」と出ます。
どうしたらエラーなしに出来るでしょうか?
アドバイスがありましたらお願いします。
0779デフォルトの名無しさんNGNG
とりあえず自分で色々考えて試してみ。
0780デフォルトの名無しさんNGNG
>>778
俺のところでは普通にできた。
そっちの環境は?

sys_writeはLinux(とか)のシステムコールだけど
それ以外のOSとか使ってない?
0781デフォルトの名無しさんNGNG
>>780

VineLinux使っています。
コードをコピペして実行しただけですが、HelloWorldとは
表示されるのですが、その下に「セグメンテーション違反です」と
出てしまいました。
こちらの環境の問題のようですので色々と調べて見ます。
ありがとうございました。
0782デフォルトの名無しさんNGNG
>>720-あたりの議論と関連して、なんですけど
GPLのコードを見ながらそっくりなコードをリライトしたら、そのコードを
GPLではなくCPLやMPLなんかでリリースすることも可能なんでしょうか?

そうだとすると、ライセンスって結構アホ臭いものという話になるんですが。
0783デフォルトの名無しさんNGNG
>>765
このレビューは参考になりましたか?
◎はい ○いいえ
0784デフォルトの名無しさんNGNG
関数型アセンブリプログラミング
0785デフォルトの名無しさんNGNG
あらためてクリーンルーム手法について考えてみました(鉄拳
こんなクリーンルーム手法は結局ダーティだ!

・逆汗のとこで懲役食らっちゃってる

・多重人格でクリーンだといいはる

・二人羽織で解析だ

・JADつかってる

・脳内クリーンだ

・GPLでソース読んだくせにクリーンだといいはる

(*´д`*)アハァ…
0786デフォルトの名無しさんNGNG
>>785
アニオタ?
0787デフォルトの名無しさんNGNG
>>765
そんなあなたがNAMCOゲットおめ。
0788デフォルトの名無しさんNGNG
>>776
まあまあ。
ここはアセンブラスレですし。
つーか、OOPしか出来ないのも結構キチガイだと思う。
別にアレが究極のプログラミングパラダイムってわけでもないし。
0789デフォルトの名無しさんNGNG
>>782

全く問題無い。
0790デフォルトの名無しさんNGNG
>>789
実は大いに問題あるんだけど、みんな見て見ぬふりさ
0791デフォルトの名無しさんNGNG
>>790
確か80年代BSDがUnixから完全に分離した時に、本家Unixのソースを使ってる部分は
全部リライトしてライセンス上全てのコードをクリアにしたんだよね。この場合でも元ソースを
全く見てないわけはないんだし、半分丸コピーが行われたんだろう。
MozillaのライセンスをMPL/GPL/LGPLのトリプルライセンスに変更する際にも
全ての開発者の同意を得て行われたわけだけど、連絡が取れなかった開発者が
書いたコードについてはリライトすることで回避されたはず。

事実上、全てのオープンソース(GPLの場合はフリーソフトウェア)ライセンスを無効化して
勝手にプロプラに使うことだって出来るわけで。
0792デフォルトの名無しさんNGNG
GPLの魔女算ネタだとGPLコードをリライトしてもGPLからは逃げられないらしいが
0793デフォルトの名無しさんNGNG
GPLすらむちゃくちゃな悪寒・・・・・
0794デフォルトの名無しさんNGNG
http://www.linux24.com/linux/news/today/2002/12/25/640902-001.html
このへんか。

自分の事を棚に上げて騒ぎ立てる声だけデカい連中(/.とか)に見つからないようにさえ
注意すれば大体なんでもありってのが現状だろうな。ProGやエレコムについては
『よくある悲しい事』ってわけで、運が悪かったんだろう。
0795デフォルトの名無しさんNGNG
GPLの寄せ集めだ!と裁断された
ProGのソース読んだけど別にコードとしてたいしたことなかったりw
0796デフォルトの名無しさんNGNG
まあスレ違いなんだが、Elecomの 金輪際Linuxは使わん って判断は賢明だと思う。
ライセンス関連調査&交渉なんて厄介ごとを抱え込むよりはBSD系ライセンスの物を
使ったほうがはるかに低コストで済むから。最初からその危険ぐらい分かって使うのが
当たり前ではあるんだがな。
0797デフォルトの名無しさんNGNG
プログラマであれば他人のコードみるだろ。ふつー
例え小さいコードだろうがそれを平気で使いまわすじゃん。
GPL以外でもみんなやってるくせに、
自分の事は棚にあげないように。
0798デフォルトの名無しさんNGNG
ライセンス違反で騒ぎ立てるのはガキや無職だけだと思う今日この頃
0799デフォルトの名無しさんNGNG
んなこたーない
0800デフォルトの名無しさんNGNG
GPL厨はうざいから他所いこうな?
0801デフォルトの名無しさんNGNG
と、無職が言いました。
0802デフォルトの名無しさんNGNG
ここはアセンブルァーが使えるか使えないかを話し合うスレですか?
0803デフォルトの名無しさんNGNG
アセンブラで (;´Д`) ハァハァするスレです。
0804デフォルトの名無しさんNGNG
斡旋ブラを使っていかにTCOを削減するかを語るスレです
0805デフォルトの名無しさんNGNG
私は無職ですがお金持ちです。語ってもいいですか?
0806デフォルトの名無しさんNGNG
どうぞ一人で勝手に語っててください
0807デフォルトの名無しさんNGNG
>>796
GPL違反は当事者同士の問題なのでどうでもいいとしても
ネットワーク機器にバックドアを仕込むようなメーカーの製品は使わない方が賢明だろうな
0808デフォルトの名無しさんNGNG
>>807
それってM$の製品でつか?
0809デフォルトの名無しさんNGNG
>>808
Elecomの製品

バックドアがばれたのもLinuxに騙されたようなものと言っている
0810デフォルトの名無しさんNGNG
バックドアっつうか、デバッグ用を残してただけでしょ。
0811デフォルトの名無しさんNGNG
>>810
それを利用して誰かに侵入されちゃったりなんかしたらこまる。
0812デフォルトの名無しさんNGNG
>>810

ちがうちがう。
デバッグ用じゃなくて、将来フォームウェアなどをメーカーが
バージョンアップしてあげるための穴だよ。
サイトでいくらアナウンスしてもバージョンアップをしないユーザーが大勢いるから。
0813デフォルトの名無しさんNGNG
それってやっぱり M$ の製品じゃん
0814デフォルトの名無しさんNGNG
>>812

そんな機能はそこらへんのADSLモデムに付いてますよ.
0815デフォルトの名無しさんNGNG
パイプラインストールって略すとパンストだよな。
0816デフォルトの名無しさんNGNG
>815
パイプラをインストールするんだからパイインでね?
0817デフォルトの名無しさんNGNG
このスレっていつもこんな展開だよな
たまぁ〜にアセンブラの話がでるんだけど
批判からの粘着とか、ソコから負けても負けを認めないとかそんな
もうほんとグダグダの展開で、結局うやむやのまま
またスレとまったく関係のない話にグダグダと・・・・・・・・・・・・・・・・・
0818デフォルトの名無しさんNGNG
>>817
皆その事はわかってて書かないんだよ。2chで書いても仕方ないだろ。
敢えて書いたお前も夏房の仲間。
0819デフォルトの名無しさんNGNG
ここは負け犬が必死に話をごまかす様を楽しむスレです
0820デフォルトの名無しさんNGNG
パンストってなに?
0821デフォルトの名無しさんNGNG
>>820
俺が今履いてるヤツ
0822デフォルトの名無しさんNGNG
エロティカ7
0823デフォルトの名無しさんNGNG
>>817
2chは一切有益な情報を提供しないので、貴方の知的欲求を満たすことはないでしょう
0824デフォルトの名無しさんNGNG
まともっぽいスレもあるのにな。
0825デフォルトの名無しさんNGNG
最近の流れ

久々にアセンブラてき流れで
拡張命令を使ったmemcpyの是非について問われる
「限定的過ぎて使えない」発言の516に対し
519・520が反旗を翻し、memcpy大戦勃発
523がSSEで3倍だ!と発言
516がへたれコードで実測するもそれにはいたらず(あたりまえだ
563で3DNow!用が実測され場合によっては3倍以上を記録する
肝心な部分のソースを晒さないので非難をサルに浴びる
後に逆汗でも確かに3DNow!のコードだと判明
516の発言は見事に弾き飛ばされたわけだが
516はなんということもなくうやむやに消えてへたれぶりを残す。
ここで
夏房が襲来し、無知な問題点を指摘、ことごとく撃破される。
浮動小数点の足し算1回に掛かるクロックを実測したいものが現れるが
実測方法に無理があることを指摘されたのち
RDTSCによる実測方法を載せられるも、レスは途絶える
房業者登場、逆汗の依頼をし、法的問題論争へ
クリーンルーム手法の是非を問うも
逆汗自体の法的曖昧さから完全潔白はありえないにもかかわらず
延々と無知な論議が繰り返され、
このながれを断ち切るためかひつこいコピペ房があらわれる
当然無視され、、話はGPLの法的効力へ
法的に効力を発揮しないGPLは実際あってないようなもの
という一般的な結論に一時的に達する
それに関してProGやエレコムらGPL違反問題が取りざたされる
泥沼的にGPL論議が再開する、
突如として「パイプラインストールって略すとパンストだよな。」
という書き込みがあらわれ今にいたる・・・・・・・・・・・・
0826デフォルトの名無しさんNGNG
普通は夏厨というのに夏房などというから誰だか分かってしまう。
0827デフォルトの名無しさんNGNG
勝手にわかってろよ
0828デフォルトの名無しさんNGNG
>>827
むなしくないか?
0829デフォルトの名無しさんNGNG
むなしいさ、もう涙でてるよ
0830827NGNG
  ヘ( `Д)ノ  モーコネーヨ ウワァァァン!!
≡ ( ┐ノ
:。;  /
0831デフォルトの名無しさんNGNG
蒙古は無いだろうなぁ。
0832デフォルトの名無しさんNGNG
6502
0833デフォルトの名無しさんNGNG
6809
0834デフォルトの名無しさんNGNG
6502
0835デフォルトの名無しさんNGNG
SC/MP III
0836デフォルトの名無しさんNGNG
68008
0837デフォルトの名無しさんNGNG
TLCS-12A
0838デフォルトの名無しさんNGNG
>825
そして口だけは達者な825が降臨してスレは荒れましたとさ。
0839デフォルトの名無しさんNGNG
EICARのウィルステストファイルってASCII文字だけで実行ファイル作ってるんですね。
http://www.eicar.org/anti_virus_test_file.htm
ちょっと感動。
0840デフォルトの名無しさんNGNG
THIS IS NOT A VIRUS. The EICAR Test File is an internationally
recognized, non-virus code string included for analysis purposes
only. Again, THIS IS NOT A VIRUS
0841デフォルトの名無しさんNGNG
>>842 のせいでこのスレがウィルスチェックに引っかかる
ようになったりしてな。
0842デフォルトの名無しさんNGNG
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
と貼り付けるのを期待してるの?
0843デフォルトの名無しさんNGNG
↑タイーホ
0844デフォルトの名無しさんNGNG
21164
0845839NGNG
逆アセンブル結果
debug eicar.com
-u100,11b
0100 POP AX
0101 XOR AX,214F
0104 PUSH AX
0105 AND AX,4140
0108 PUSH AX
0109 POP BX
010A XOR AL,5C
010C PUSH AX
010D POP DX
010E POP AX
010F XOR AX,2834
0112 PUSH AX
0113 POP SI
0114 SUB [BX],SI
0116 INC BX
0117 INC BX
0118 SUB [BX],SI
011A JGE 0140
-u140,143
0140 DEC AX
0141 SUB CX,[BX+SI+2A]
0846839NGNG
自己書換えでINT 21Hを実現 (;´Д`) ハァハァ
もっとコンパクトにできるつわものいませんか?
0847デフォルトの名無しさんNGNG
俺はeicar.comを実行した事がある。
0848839NGNG
>>847
びっくらこきましたよね
0849デフォルトの名無しさんNGNG
次スレは
「アセンブラ… キタ━(゚∀゚)━!!」
でお願いします。
0850デフォルトの名無しさんNGNG
アセンブラ… (;¬_¬)ぁゃιぃ

ところでスレ番がないとよく分からん。
0851デフォルトの名無しさんNGNG
アセンブラにはスレ番という概念が無いので仕方ありません。
0852デフォルトの名無しさんNGNG
斉藤由貴?
0853デフォルトの名無しさんNGNG
スケ番ちがい
0854726NGNG
( ´・ω・)ノ―――――――@"キュイイイン

( ´・ω・)ノ@"パシッ

( ´・ω・)ノ―――――――@"キュイイイン

( ´・ω・)ノ―――――――@ヽ(・ω・` ) パシッ

( ´・ω(@"バシッ        ヽ(・ω・` ) ポイッ
0855デフォルトの名無しさんNGNG
こんなこと言うのは非常になんだけど、
懐石・蔵系の掲示板で
さもわかったように解析結果を説明する香具師って
非常に極悪だと思うんだよ。
なにが極悪ってね、まず第一に
「デバッガ丸投げ」のコードを読んでるだけであって
しかもそれも全体の数千・数万分の一程度のコードしか
読んでいない(読めない)のに、いったいおまえは何様だと。
もう馬鹿かと。もう氷使ってる時点でオワットル、捕まってくれ。

そんな香具師は少なからず優越感に浸ってよろこんでいるが、
自分の会社で売り出した商品の
尻だし部分だけ懐石されてみろってんだ!
どれだけの2chネラーが食いつくか・・・・もうほんと進でくれ。

でも、そんなやつらの中に明らかにそれが仕事の香具師が
まぎれているのもまた事実・・・・・・・・・・・・・・
投稿するのは解析結果だけってのに多い希ガス。
ドンぐるくらぁっく!してみたり。
直書きの部分を足してバイパスさせてみたり、
そんなことしてるやつ数限られてるってんだまったく・・・・・・・・・・
0856デフォルトの名無しさんNGNG
こんなこと言うのは非常になんだけど、

の部分まで読んだ
0857デフォルトの名無しさんNGNG
内容は要点をまとめて簡潔に。
0858デフォルトの名無しさんNGNG
結局なにが言いたいのか分からなかった
0859デフォルトの名無しさんNGNG
インラインアセンブラ内でカスタムリソースを読みたいんですが、
どうもうまくいきません。

if(h_res1 = LoadResource(NULL,FindResource(NULL,TEXT("#100"),TEXT("BINARY"))))
table1 = (LPSTR)LockResource(h_res1);

で、バイナリを読み込んで

MOV EBX,dword ptr[table1+EDI+1000h]

で、バイナリデータの一部を読みたいんですが、例外が出て止まってしまいます。
ちなみにEDI+1000hはオフセット値なんですが、何がいけないんでしょうか?

というかこういう質問はアセンブラスレ行きですかね・・・
0860デフォルトの名無しさんNGNG
俺は懐石が解析の誤字であることまでつきとめた。えらいだろ
0861デフォルトの名無しさんNGNG
>860
エロイな。
おめでとう。
0862デフォルトの名無しさんNGNG
>>859
MOV EBX,dword ptr[table1+EDI+1000h]
は
EBX = *(int *)(((char *)&table1)+EDX+0x1000)
だから
0863デフォルトの名無しさんNGNG
>>839
そういえば昔com2txtってのがあったよ。
0864デフォルトの名無しさんNGNG
>>859
個人的にバイナリデータならLPSTRよりLPBYTEにしろと言いたい。
0865デフォルトの名無しさんNGNG
>>863
そういう問題じゃなくて、コード全部がASCII文字の中でも特に
表示可能文字の範囲に入ってることがすごいっていう話なんだが?
0866デフォルトの名無しさんNGNG
>>865
com2txtは表示可能文字でSTUBが書かれていて自己展開でそのまま起動可能なんだよ
0867865NGNG
>>866
それは分かってる
0868デフォルトの名無しさんNGNG
>>867
そんなに驚くことかね?
DOS時代は
echo ほげほげほげほげ>a.com
とかやって COM ファイル作ったもんだけどね。
EXE ファイル作れたらさすがに神だとは思うけど。
0869839NGNG
>>863
知らなかった…
Vectorからダウンロードしてソース見てみたら
「ヘッダ部はほとんどハンドアセンブルによって作った」そうで。
>>868
だからそれはcom2txtとかのユーティリティがあるから簡単にできるってだけでしょ。
0870デフォルトの名無しさんNGNG
つか、com2txtみたいの使って作ったんじゃないのかと。
0871デフォルトの名無しさんNGNG
>>869
868じゃないけど補足しとくと、日本語だとカタカナとか漢字が使えるので、
ASCIIに比べて使用できるコードの範囲が広くて、 int 21(cd 21)が
「ヘ!」で表せたりするんで、そんなソフトを使わなくても簡単なプログラムなら
テキスト表記可能な範囲で実装出来ちゃうわけなんで。
確かawkだか何だかの256本でも、数文字の簡単なコードが一つ紹介されてた希ガス
0872865NGNG
>>868
驚いているのは私ではないんだが・・・
良く読んでくれ。
0873847NGNG
>>848
むしろ調子に乗って表示する文字列を書き換えたら、
McAfeeが別のウイルスとして検出して回収していったのに驚いた。
0874デフォルトの名無しさんNGNG
先週ぐらいからアセンブラを勉強しはじめたものです。
マイクロチップ社純正のアセンブラ「MPASM」を使用しています。
アセンブラで正確なストップウォッチみたいなものを作ろうとしているところで、
ひとつお聞きしたいのですが、
16F84(A)の動作クロックが8MHzの場合、1命令サイクルは0.5μsですが、
COUNT=3 として、以下の命令文では
LOOP NOP          (1)   (6)   (11)
    NOP          (2)   (7)   (12)
    DECFSZ COUNT,1  (3)   (8)   (13)(14)
    GOTO  LOOP    (4)(5)  (9)(10)
    RETURN                 (15)(16)
と、この場合、16命令サイクルになりますが、ここから本題、
割り込みを使用した場合、
START NOP (1)
     NOP (2)
     NOP (3)                    ORG   0
     NOP (4)                    START
     NOP (5)                    ORG   4
           ←ここで割り込みが発生 →  NOP (?)
     NOP (6)                    NOP (?+1)
     NOP (7)                    NOP (?+2)
? はいくらになるのでしょうか。
初めてプログラムしたり、回路を組むので、
どれだけの誤差が出るかわかりませんが、
できるだけ正確に組んでいきたいですので、
ご教授お願いします。
0875デフォルトの名無しさんNGNG
PICアセンブラ統一スレッド
http://pc5.2ch.net/test/read.cgi/tech/1060182978/
0876デフォルトの名無しさんNGNG
x86でpushfは、flagレジスタと全ての汎用レジスタを退避するんだっけ?
0877デフォルトの名無しさんNGNG
フラグだけだったような。
全レジスタのpushは別にあったと思う。
0878デフォルトの名無しさんNGNG
pushaとpopaはamd64で変わったんだっけ。
0879デフォルトの名無しさんNGNG
>>878
変わりません。使用できます。
ちなみにopcodeは、60
0880デフォルトの名無しさんNGNG
勝手に命令追加するなや
PDFよく嫁
0881デフォルトの名無しさんNGNG
amd64ってもうみんな当たり前の知識になってるの?

ちなみにAMD64のマニュアル第三巻には、こんな風に書いてあります。
Pushes the contents of the eAX, eCX, eDX, eBX, eSP (original value), eBP, eSI, and
eDI general-purpose registers onto the stack in that order.
This instruction decrements the stack pointer by 16 or 32 depending on operand size.

Using the PUSHA or PUSHAD instruction in 64-bit mode generates an invalid-opcode
exception.
0882879NGNG
>>880
amd64上で32bitモードで実行するならpusha、popaが使える。
64bitモードではpusha、popaのコードは無いので使用できない。
0883デフォルトの名無しさんNGNG
>amd64上で32bitモードで実行するならpusha、popaが使える。

こんなの当たり前なのでは。あと「32bitモード」じゃ
CompatibilityモードなのかLegacyモードか判別できないから
ちゃんと分けて使うべきでは。
0884デフォルトの名無しさんNGNG
>勝手に命令追加するなや
>PDFよく嫁
全然、その命令が無いみたいに言ってるではないか。
0885デフォルトの名無しさんNGNG
無いわけ無い
0886デフォルトの名無しさんNGNG
ぬるぽ
0887デフォルトの名無しさんNGNG
>>885
F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
0888デフォルトの名無しさんNGNG
879は放置でよろしく
0889デフォルトの名無しさんNGNG
Linux上でnasmを使いアセンブラの勉強をしたいと思っています。その際の教科書とする書籍なのですが、

はじめて読む8086
  http://www.amazon.co.jp/exec/obidos/ASIN/4871482456/249-8419394-4696315
はじめて読む486
  http://www.amazon.co.jp/exec/obidos/ASIN/4756102131/249-8419394-4696315

このふたつは内容が古いという話も聞きますけど、同じx86である以上本質はそんなに変わらないと思うのであまり問題ないですよね?
あと486の方は8086を読んだという前提の元話が展開されていくのですか?

#「こっちの方がお薦めだ!」というのがあるのならそれも教えていただけると嬉しい。
0890デフォルトの名無しさんNGNG
先にマセンブラをやっといたほうが良いよ
0891デフォルトの名無しさんNGNG
はじめて読む486はOSつくるんでもなければ用は無い。
0892デフォルトの名無しさんNGNG
>>890-891
ありがとうございます。(マセンブラ、ですか??)

486は少々高度な内容になるんですね。
でも私はまさしくOSをつくるとは言わなくても、Linux Kernelを完全に理解できるくらいを目指しているので読んでみようと思います。

アセンブラの勉強を一通りできたらMinix本も読もうかと。
0893デフォルトの名無しさんNGNG
486は堅実に読んでいけば難しくない
8086の知識はないと、やや読みがたい
0894デフォルトの名無しさんNGNG
読みにくいとは思うが、読みがたいとは思わないな。
0895デフォルトの名無しさんNGNG
386以前だと思うんですが
INT 50hって何をする割り込みなんでしょう?
ユーザ定義の割り込みでしょうか

>はじめて読む486
386よりかっこいいと思って買ってしまった苦い思い出
0896デフォルトの名無しさんNGNG
ありゃりゃ、癖でsageてしまった
0897デフォルトの名無しさんNGNG
>>894
俺は読みムズいと思うな。
0898デフォルトの名無しさんNGNG
ここってアセンブラの質問していいとこですかね?質問したいんですけど。
http://wisdom.sakura.ne.jp/programming/asm/assembly7.html
ここでやってるようにdebugコマンドで勉強してるんですが、

-A 100
34EE:0100 MOV BYTE PTR [0200], 41
34EE:0105 MOV WORD PTR [0300], 4342
34EE:010B
-d 200 200
34EE:0200 42 B
-d 300 301
34EE:0300 00 00 ..

これっておかしいですよね?なんで0200がいきなり42なんでしょうか・・・。
0300,0301なんて00って問題外です。

アドレスは違うんですが、こんな感じでやってみてるんですが、
0899デフォルトの名無しさんNGNG
DSはどこ指してんのよ
0900898NGNG
>>899
セグメントレジスタは全部34EE指してます・・・。
0901デフォルトの名無しさんNGNG
895はスルー?
0902デフォルトの名無しさんNGNG
-G =100 10B
0903898NGNG
>>902
(;゚д゚)ァ.... ・・・・・・。
実行してませんでした・・・・(〃▽〃)キャッ
今日の昼からはじめたばかりで・・・。
アセンブラって無償コンパイラすらまともにみつからないほどマイナーなんですね・・・。
0904デフォルトの名無しさんNGNG
Intel書式さえ捨てればgasがある
0905デフォルトの名無しさんNGNG
つーかnasmあるじゃん
0906デフォルトの名無しさんNGNG
tasmってフリーのセットに含まれてないんだっけ?
0907デフォルトの名無しさんNGNG
今はCコンパイラについてこない、市販のみ
0908906NGNG
ちなみに、 gas(cygwin, mingwとか)が吐くオブジェクトファイルは
MicrosoftのPE COFFリンカが喰えたりするので、
gas syntaxで書くのも一興

俺のばあい、フロントエンドがC++Builderだったりするので、
gas で書いたコードをわざわざobjdump して、
db $XX とかが含まれた .asm を吐いてたりする。
0909デフォルトの名無しさんNGNG
>>895
ソフト割り込みだから、とくに決まってない。
0910デフォルトの名無しさんNGNG
>895
ttp://www.ctyme.com/intr/int-50.htm
0911デフォルトの名無しさんNGNG
>895
The x86 Interrupt List
ttp://www-2.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
0912デフォルトの名無しさんNGNG
俺もつい最近cygwinのspecsを眺めて知ったんだけど
x86用のgcc/gasって、intel形式でも出力できるよ。
(linux上だとレジスタに%がついてたけど)

gcc -S -masm=intel xxxx.c
で試してみそ。

ソースの先頭の方に.intel_syntaxがあると
intel形式のソースとして解釈されるみたい。
まあ、セグメント/ラベル/データ等の記述はmasm系と同じにはならないんだけどね。
0913このスレの名づけ親NGNG
900超えたので

次スレは私に立てさせてください。
「アセンブラ… キタ━(゚∀゚)━!!」
0914デフォルトの名無しさんNGNG
いいやまだまだ。980超えたら立てるがよい。
0915このスレの名づけ親NGNG
>>914
950を目安にします。
0916デフォルトの名無しさんNGNG
>>912
初めて知った
0917895NGNG
ありがとうございます
0918デフォルトの名無しさんNGNG
次スレ建てますた。
http://pc5.2ch.net/test/read.cgi/tech/1093519463/

0919デフォルトの名無しさんNGNG
早杉。吊れ。
0920デフォルトの名無しさんNGNG
>>919


    §,; ________§; ,
  || §; /    § ヽ  ||
  |~~~§~     §'~~~~~~~|  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  | ____§/"""ヽ,§_____  | < すいませんでした・・
  |__|///(§  §)ノ////|__|///\________
 ⊆___)///ゝ___§ノ/////(____⊇////
 ///////////////ジュ〜////////////
 /////////////////////////////
0921デフォルトの名無しさんNGNG
次スレはもう1年近く前から立ってるわけだが・・・

http://pc5.2ch.net/test/read.cgi/tech/1065535118/
0922このスレの名づけ親NGNG
>>918
・・・
0923デフォルトの名無しさんNGNG
>>43
もうそろそろだ準備しとけ。
0924デフォルトの名無しさんNGNG
重複すいません。
ちょっと、聞きたいのですが、アセンブラーで3000ステップあるソースをCOBOLに移行したら、
だいたい何ステップぐらいになるもんですかね?
0925デフォルトの名無しさんNGNG
1000
0926デフォルトの名無しさんNGNG
1000ステップ
0927デフォルトの名無しさんNGNG
次のタイトルは

「 アセンブラ… 。・゚・(ノД`)・゚・。 ウエーン 」

でお願いします
0928デフォルトの名無しさんNGNG
アセンブラ… (;゚Д゚) ハァ?
0929デフォルトの名無しさんNGNG
アセンブラ… (°Д°)ハァ?
http://pc5.2ch.net/test/read.cgi/tech/1093519463/
0930デフォルトの名無しさんNGNG
責任もって埋めろよ
0931デフォルトの名無しさんNGNG
>>927
じゃ、950過ぎたら次スレ立ててみるよ
0932埋めNGNG
アセンブラ… (°Д°)ハァ?
http://pc5.2ch.net/test/read.cgi/tech/1093519463/
0933デフォルトの名無しさんNGNG
NOP
NOP
NOP
0934デフォルトの名無しさんNGNG
無意味に埋めるな。
ここはdelay slotじゃない。
0935デフォルトの名無しさんNGNG
label000:
jmp label000
0936デフォルトの名無しさんNGNG
永久機関
そは空洞なり
そは空洞なり〜
0937デフォルトの名無しさんNGNG
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
90 90 90 90 90 90 90 90 90 90^C
0938デフォルトの名無しさんNGNG
PREFETCH命令を使うと、心持ち早くなってるように感じるのは気のせいですか?
0939デフォルトの名無しさんNGNG
うん
0940デフォルトの名無しさんNGNG
HLT
0941デフォルトの名無しさんNGNG
っていうか、次スレってマジで、
アセンブラ… (°Д°)ハァ?
http://pc5.2ch.net/test/read.cgi/tech/1093519463/l50
なのか?
なんかバカにされてるようなスレタイなんだが。
0942デフォルトの名無しさんNGNG
mov a,aがあるんだから、
mov m,mも在るだろうと思った昔が懐かしい。
0943デフォルトの名無しさんNGNG
>>941
そっちは削除依頼
次スレはおれが950過ぎたら立てる
0944デフォルトの名無しさんNGNG
>>943
頼むよマジで。
0945デフォルトの名無しさんNGNG
アドレス生成インターロックやレジスタストールを検出できて
警告を出したりできるアセンブラがあれば便利だと思う。
そして、それを見て人間がその箇所に手を入れると。
このアイデアどお?
0946デフォルトの名無しさんNGNG
>>945

|つ[VTune]
0947デフォルトの名無しさんNGNG
アイディアは悪くないだろうけど

プロセッサが変わったら
無意味な警告でいっぱいになるよ。

今、「UパイプとVパイプが有効利用できません」なんて警告が出ても
どれほど役に立つと。
0948デフォルトの名無しさんNGNG
>>947
まず最初に、CPUIDで検査してだな...
対応してない場合は、このCPUは未対応ですっていうメッセージをだしてだな...
バージョンでアップで対応するCPUを増やしてだな...

っていうか、検出自体のプロセスはそれほど難しくないはずなんで、
バージョンアップで対応はそれほど困難ではないような気がするのだが。
0949デフォルトの名無しさんNGNG
>>947
>今、「UパイプとVパイプが有効利用できません」なんて警告が出ても
>どれほど役に立つと。
「ああ、今はUパイプとVパイプが有効利用できないんだな」って事が知ることができる。
0950デフォルトの名無しさんNGNG
>>948
>まず最初に、CPUIDで検査してだな...
他のCPUのはできないのかよw
0951デフォルトの名無しさんNGNG
>>946
VTuneってどうなの?

値段が高いので、おいそれと手が出せない。
職場に古いバージョンが転がってたけど、遊ぶ暇なかったし・・・。
0952デフォルトの名無しさんNGNG
CPUIDで検査できるのは、
「アセンブルを実行している環境のCPU」であって、
「アセンブルされたプログラムが実際に動作するCPU」を
アセンブラ自身が判別するのは不可能なわけだが。

だいたい、今現在だって
P6/NetBurst/K7/K8環境が混在していて
それぞれ得手不得手があるのに。
0953デフォルトの名無しさんNGNG
>>950
イソテルの辞書には、CPUIDの無いCPUは無いって書いてありました。w
0954デフォルトの名無しさんNGNG
>>952
うむ。
0955デフォルトの名無しさんNGNG
バイナリフォーマットにそういう情報あればいいのかな?
このバイナリは、P6で最適化されてます、みたいな情報。
...むりっぽいね、忘れてくれ。
0956デフォルトの名無しさんNGNG
自動判定がダメなだけで、
手動でターゲットを指定すれば出来ないことはないけどさ。
今だって、コンパイラが、特定のプロセッサに特化した最適化をしているでしょ。

ただ、アーキテクチャが変わるごとに警告内容が陳腐化して役に立たなくなるし
全ての環境に最適なコードというのが存在しないのだから
労力の割に効果が期待できなくて、どこも作ろうとしないのではないかと。

intelはVTune等の別ツールでの対応が本道だと考えているだろうし
MSはアセンブラじゃなくてコンパイラの最適化に力を入れるだろうしね。
0957デフォルトの名無しさんNGNG
011010111111001001010111
010110000000000010111100
0958デフォルトの名無しさんNGNG
アセンブラ… (°Д°)ハァ?
http://pc5.2ch.net/test/read.cgi/tech/1093519463/
0959デフォルトの名無しさんNGNG
AMDのCodeAnalyst使ったことある香具師いるか?
感想きぼんぬ
0960デフォルトの名無しさんNGNG
アセンブラの仕事してる人いる?
0961デフォルトの名無しさんNGNG
8ビットですがノシ
0962デフォルトの名無しさんNGNG
>>960

128bitですが のし
0963デフォルトの名無しさんNGNG
>>962
しかもLIWだろ?
0964デフォルトの名無しさんNGNG
LIWじゃないよ、VLIWでもないよ
0965デフォルトの名無しさんNGNG
>>964
ちごたか(てへっ

# ただいまAMD最適化厨
0966デフォルトの名無しさんNGNG
MMX命令で32Bit符号付き整数の飽和減算をやりたいけどどの命令を使えばいい?
8Bit 16Bitはあるけど32Bitが見あたらないYO
0967デフォルトの名無しさんNGNG
>966
ftp://download.intel.co.jp/jp/developer/jpdoc/24547103_j.pdf
0968デフォルトの名無しさんNGNG
>>967
名前的にPSUBSDになりそうな命令はやっぱり見つからないよー
0969デフォルトの名無しさんNGNG
>968
じゃあねぇんだろ。
こんなとこで喚いてないで、黙って他の方法考えろ。
0970デフォルトの名無しさんNGNG
アセンブラを使った開発の仕事をしたいのですが、
実際にどのような仕事になるんでしょうか?
ちなみに私は昔ゲームボーイソフト開発でZ80アセンブラ
(正確には違うらしいが)使ってました。
0971デフォルトの名無しさんNGNG
いまどきアセンブラなんて情報家電くらいじゃない?
0972デフォルトの名無しさんNGNG
>>970
これなら大半はアセンブラばかりだって仕事は、
PIC とか使った¥500位のおもちゃ製造くらいじゃないかな〜。
あとパチンコのプログラム。

アナログ回路技術者よりもさらに需要が少ない。
0973デフォルトの名無しさんNGNG
>>971
情報家電、携帯電話のソフト開発は大体Cでは?
ごくごく一部 Java もあるけど。
低〜中級技能者の大量投入でこなすパターンが多いし。
0974デフォルトの名無しさんNGNG
そこでBasicですよ
0975デフォルトの名無しさんNGNG
>>974
ワロタ、アセンブラですらないし
0976デフォルトの名無しさんNGNG
>>970
漏れ8ビットのゲーム系で仕事してるよ。フルアセンブラ。
0977デフォルトの名無しさんNGNG
アセンブラ… (°Д°)ハァ?
http://pc5.2ch.net/test/read.cgi/tech/1093519463/
0978デフォルトの名無しさんNGNG
DOSプログラムの逆アセンブラで良いものがあれば教えてください
PeRdr、dispe、objdumpあたりは対応していないようです
0979デフォルトの名無しさんNGNG
>>978
vectorに色々あるだろう。
Sourcerつーのが強力でよかったが、もう手に入らんよなあ。

0980970NGNG
なるほど、アセンブラはもうあまり需要ないんですね。
ありがとうございました。
0981デフォルトの名無しさんNGNG
>DOSプログラムの逆アセンブラで良いものがあれば教えてください
漏れが作った奴。
問題は、n88basicで書かれていることだな。
0982デフォルトの名無しさんNGNG
>>980
正確に言うと、ズブの素人にゃ仕事は残されていないが
逝くとこに逝きゃ引く手あまた

次スレは、早く立ちすぎたアレでもよい?
0983デフォルトの名無しさんNGNG
うん
0984デフォルトの名無しさんNGNG
結局、反対してるのはスレタイを思い通りに付けられなかった一部の厨の罠。
真のあせんぶら使いは、スレタイなどのような細かい事にはこだわらない。
ところで、次々スレは「アセンブラ・・・ ( ・∀・)つ〃∩ ヘェーヘェーヘェー」でお願いします。
0985デフォルトの名無しさんNGNG
厨臭いタイトルつけることに意味あんの?
0986デフォルトの名無しさんNGNG
「アセンブラ・・・ ( ´∀`) <ぬるぽ」
にして、1000まで ガッ しつづけるってのはどう?
0987デフォルトの名無しさんNGNG
ただの荒らしか
0988デフォルトの名無しさんNGNG
スレタイに拘ることに意味あんの?
0989デフォルトの名無しさんNGNG
意味もなく厨房がよってくる
0990デフォルトの名無しさんNGNG
スレタイ決めたい厨が五月蝿いスレだな
0991デフォルトの名無しさんNGNG
100000000000000000ゲット
0992デフォルトの名無しさんNGNG
次スレ

アセンブラ総合スレ Part7
http://pc5.2ch.net/test/read.cgi/tech/1094271973/
0993デフォルトの名無しさんNGNG
>>992
忠告しとく。自作自演でもなんでもしてスレを伸ばしておかないと重複でそっちが消されるぞ。
0994デフォルトの名無しさんNGNG
>>992
重複スレ立てるなよ。
0995デフォルトの名無しさんNGNG
梅
0996デフォルトの名無しさんNGNG
竹
0997デフォルトの名無しさんNGNG
皆さんにお願いがあります。
俺、1度でいいから1000とって見たいんです。
999で放置してもらえませんか?
一度でいいからとりたい・・・
0998デフォルトの名無しさんNGNG
だが、断る。
0999デフォルトの名無しさんNGNG
そこをなんとか・・・
1000デフォルトの名無しさんNGNG
アセンブラ… (°Д°)ハァ?
http://pc5.2ch.net/test/read.cgi/tech/1093519463/
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。