アセンブラ… (;´Д`) ハァハァ
レス数が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デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGこの人でつね?
0005デフォルトの名無しさん
NGNGマムコ(;´Д`) ハァハァ
0006デフォルトの名無しさん
NGNG[あせん] ぶりゃー!]
http://pc5.2ch.net/test/read.cgi/tech/1087618810/
0007デフォルトの名無しさん
NGNG妙齢の女性の、たっぷりと汗を含んだ純白のブラジャーのことを言う
するとアセンブルとは
アセンブラを十分に振り切って汗をおとすことでなければならない
したがって、マクロアセンブラとは
黒いアセンブラのことである
では、ニモニックとは何か
これが諸君への課題である。
回答を提示した結果、不都合が生じても
当局は一切関知しないからそのつもりで
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG胸も肉、つまり
「なんでおっぱいにハァハァするのですか? 肉です。」
という意味だ。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG人なら一人くらいいそうだがw
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGおお、頑張ってください。
アセンブラで開発されたWindowsアプリケーションといえば…
http://www.vector.co.jp/soft/win95/hardware/se254476.html
0014デフォルトの名無しさん
NGNG面倒なだけで、やることはCで作るのと大してかわらんからな。
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGcrt0を自前で用意して、標準ライブラリを一切使わない。
0017デフォルトの名無しさん
NGNGこれで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デフォルトの名無しさん
NGNGWinMainのlpCmdLineはGetCommandLine()から自分自身のプログラムのパスの部分を抜いたものってことになっているんで
直接GetCommandLine()を渡すわけには行かないんだな
0019デフォルトの名無しさん
NGNGなんでCRTが処理すんだよOSの仕事だろ
0020デフォルトの名無しさん
NGNGCommandLineToArgvW() では不満かえ?
0021デフォルトの名無しさん
NGNGありが�d
0022デフォルトの名無しさん
NGNGおよそアセンブラを扱うスレで聞くようなコメントではないなw
評価ボードかってきて動くものを作ってみればいかにWin環境が恵まれているが
恐竜のように肥大化しているかがわかると思うよ
0023デフォルトの名無しさん
NGNG>コメントはずせば警告がでるが、2.0kになる。
まだ甘いな。
/merge:.data=.text /merge:.rdata=.text /section:.text,erw
にすれば1.0KBか1.5KBになるはず。
/section:.text,erwをつけておかないとNT4.0では動かない。
0024デフォルトの名無しさん
NGNG確かに。
今そのコマンドラインを渡す側をアセンブラで作ってるとゆーことで今日のところは簡便してくだちい
0025デフォルトの名無しさん
NGNGそれやったら、WInXP SP2で動かない予感がするのだが・・・
0026デフォルトの名無しさん
NGNGまたハァハァシリーズかよ!!
キモい
0027デフォルトの名無しさん
NGNG_ _/ _ _/ _ /
/ / /
__/ __/ _/
0028デフォルトの名無しさん
NGNGそうか? XP SP2 では実行可能属性が付いていないメモリからのコード実行が
できなくなるわけだろ。/section:.text,eで実行可能属性を付けているのだが。
今XP SP1aで試してみたが、/section:.text,rwとして実行可能属性を外して
コンパイルしても問題なく実行できたが、SP2だとこれは動かんのだろうな。
0029さっきゅん
NGNG0030デフォルトの名無しさん
NGNGそうだったのか…
実行可能属性が付いてるメモリは書き込み付加、
書込可能属性が付いてるメモリは実行不可能
と勘違いしていたようだ、すまんかった。
0031デフォルトの名無しさん
NGNG汗かいてるし。 アセンブラだけに。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG30代のセンスネタキタ─wwヘ√レvv〜(゚∀゚)─wwヘ√レvv〜─ !!
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG何のメリットもない単なるオナニーにしか思えないんだが。
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGこれに関してはメリット大有り
0040デフォルトの名無しさん
NGNGでもメリットなんて無いよ。
高速化したければその部分だけインラインアセンブラ使えばいい。
0041デフォルトの名無しさん
NGNG「 アセンブラ… 。・゚・(ノД`)・゚・。 ウエーン 」
でお願いします
0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < >>950盗り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
0044デフォルトの名無しさん
NGNGアセンブラを学習することのメリットはあるんだが、説明するのはメンドウだな。
0045デフォルトの名無しさん
NGNG8Bit、16Bit全盛のころはアセンブリ言語で書くのが普通だったのが、32Bitの高速CPUが出てきたころには
Cなどの高級言語で書くのが一般的になった。
今時、アセンブリ言語でプログラムを組む機会はほとんどない。
このまま、CPUの速度が向上すれば、VM上で動作する言語でほとんどのアプリが作成されるようになるんじゃないの?
要するに、ハードウェアの進歩によって、実行速度よりも、簡単に開発できることが優先されるようになるってこと。
0046デフォルトの名無しさん
NGNGないですかね?
0047デフォルトの名無しさん
NGNGって10年前もいってたな。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG1スレ目の最初の方で結論出てると思ったが。
アセンブリ書いて得するのは書いている本人。
コンピュータの動作等に対する理解が深まる。
まあ、やってる人は殆ど趣味でやってるんだろうから
ほっとけってこった。
0050デフォルトの名無しさん
NGNGこんなんだから、この板じゃまともなネタ師が
育たない、なんて言われるんだ。
0051デフォルトの名無しさん
NGNG>8Bit、16Bit全盛のころはアセンブリ言語で書くのが普通だったのが
(16bit ってのは見なかったことにするとして)
それはリーズナブルな価格のコンパイラが無かったからであって
速度云々ではない。
0052デフォルトの名無しさん
NGNG趣味なんだよオタクなんだよ俺は
口出しするなあああああああああああああきええええええええええええええ
0053デフォルトの名無しさん
NGNGそこへいくと低級言語は、古式ゆかしい木造建築に通じるものがある。
無論、99%は風化し忘れ去られるだろうが、1000年経っても生き残るのは我々なのさ。
そのうち伝統工芸に指定されるかもしれんぞ。
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG後世の人間は「あぁ、昔の人は力押しの人海戦術で大変だったんだなぁ」と思いながら、土産物のZ80饅頭を売りさばき、
C+++++++くらいの超高級言語でプログラムを組むのさ。
0056デフォルトの名無しさん
NGNGerror: invalid lvalue in increment
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNGメインフレーム遺跡ではオープンリール磁気テープ型バームクーヘンが人気だそうだ。
0060デフォルトの名無しさん
NGNGCやJAVAしか書けない低能はそれだけ
0061デフォルトの名無しさん
NGNG共生できなきゃプログラマじゃねーよ
0062デフォルトの名無しさん
NGNGアセンブラが必要になることはたまにはあるよ。
0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGアセンブラさえあれば全てが可能なわけだろ
他の言語はただのアホ用ラッパーに過ぎない
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNGアセンブラでの問題ではないな
OSとかそういうレベルのような
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNGところで最近のx86 CPUでは、Decoderがネックとなる場面がもっとも
多い感じがするな、つぎにLoad/Store Unitあたりか?
と寝た振りしてみる
0073デフォルトの名無しさん
NGNGコンパイラ作者でも無い限り。
0074デフォルトの名無しさん
NGNGしかしアセンブラが必要な場面が減っているのは確かだな
qemuはダイナミックリコンパイラすらCで書いているし
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGまあそれでもインラインアセンブラまでだけどな。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNGは、普通じゃないよ(w
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGSSE2とかもしばらくはicc買うかインラインで手書きしかなかったし
AMDになると尚更
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGアセンブラー使いは知能が高く判断する目があるからからセルシオやシーマ乗ってると
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNGアセンブラだけを最後に使ったのは何年前のことか…
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGアセンブラはせいぜいCでラッピングしてもらわなきゃろくに使えないね。
0099デフォルトの名無しさん
NGNGアセンブラをCでラッピングってどうやるんですか?
0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGインラインに放り込むってことでしょ
0102デフォルトの名無しさん
NGNGCの規格書のどこにそんな事が書いてありました?
該当箇所をおしえてください。
0103デフォルトの名無しさん
NGNG特権命令はどうすんの?
0104デフォルトの名無しさん
NGNG無理?
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGいいたいコトの意味がわからない。
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG>いいたいコトの意味がわからない。
>>108もそう思っています。
0112デフォルトの名無しさん
NGNGんなもん、Cでもできるだろが。
0113デフォルトの名無しさん
NGNGprivateという概念自体はその言語の文法上の
問題でしょ。
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGむしろ意味わからん。
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNGまあ細胞なんて愛せないから分かる気はする
0119デフォルトの名無しさん
NGNG直接ハードを制御するってのが面白いし、何より具体的でイメージがわきやすい。
学生の時、CやらJavaやったけど、イメージがわきにくかった。
0120デフォルトの名無しさん
NGNG気持ち悪くなって、アセンブラで書きたくなってくるから。
0122デフォルトの名無しさん
NGNG今時どのような用途で使われているのでしょうか?
それともアセンブラしか使えない初期のプログラマの救済措置として
やむを得ず使っているのでしょうか?
よろしくお願いします。
0123デフォルトの名無しさん
NGNG1から10までフルアセンブルしているやつはそんないないだろ。
高速化する部分をアセンブリして最適化することが多いんじゃないの
0124デフォルトの名無しさん
NGNGやむを得ずつかってます。
Athlon/Pentiumで数値演算にMMXつかったり
とか(10倍になったけどまだ不足・・・)
マイコンとかではIO制御とか割り込み応答部とか
表示回りのごく一部とか・・・
どこもあと100倍位速度向上してくれたらもうちょっ
とアセンブラ使う局面はへるかも
0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNGアセンブリもできないでプログラマ名乗ってる香具師なんているの?
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGしかしアセンブラ出来る香具師より食いっぱぐれ安い罠。
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNGC言語も低級言語。
ライブラリとかが充実しているだけ。
0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNGあ、今そやよ
0134デフォルトの名無しさん
NGNGできる
CのプリプロセッサはCのソースをアセンブラに置き換えるだけの機能。
後はアセンブラがマシン語を作り出す仕組。
そのアセンブラに置き換える部分をCASL-IIに直していけば移植も簡単。
しかもプリプロセッサのソースコードはCと来たもんだ。
(だから、C言語は普及した)
0135デフォルトの名無しさん
NGNGCのプログラムをここに書けば、書き換えてもらえますか?
CASLさっぱりわからなくて
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNGもらえません
0138デフォルトの名無しさん
NGNG(゚Д゚)ハァ?
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNGなんてのを数百〜数千行のソースで置換してくれるのがプリプロセッサ。
0141デフォルトの名無しさん
NGNGFILE=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デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNGそのアセンブラに置き換える部分をCASL-IIに直していけば移植も簡単。
アセンブラに置き換える作業がわかんないんですよ。
誰かヘルプを。
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG変なこと考えずにCASLで書いた方が早い。
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG>今時どのような用途で使われているのでしょうか?
こういうこと言う奴ってさ、電子回路の世界で言えば
「いまどきトランジスタ単体で回路を組む人がいると聞いて驚いています」
とか言っているのと同じような感じだな。
秋葉には今でもトランジスタ単体を売っている店が山ほどあるが。
そういうのがなぜ存在するのか、頭悪すぎて想像できないんだろうな。
あるいは、
「いまどき徒歩や自転車で通勤する人がいると聞いて驚いています。
文明人なら自動車で通勤すべきではないでしょか?」
とか言っているようなもんかも。
0149デフォルトの名無しさん
NGNGひがむなよ時代遅れw
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNGまだCコンパイラがないとか・・・ね。
0152デフォルトの名無しさん
NGNGいつになったら進歩するんだろね。
0153デフォルトの名無しさん
NGNGもしFORTRANで出来なければ、アセンブリ言語でやる。
アセンブリ言語で出来なきゃ、それはやる価値がないのだ。
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNGもしプログラミング以外に職が無いならば、そこは彼らの生きるべき世界ではないのだ。
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGキチガイ専用だな
0159デフォルトの名無しさん
NGNG胃袋でアセンブルした物がありますが、あげましょうか?
ゲロゲロゲロゲロ
0160デフォルトの名無しさん
NGNG最近だと、対象環境用のアセンブラをCで書いてクロスコンパイル?
>>159
そりゃアセンブルじゃなくてコアダンプだろ。
0161デフォルトの名無しさん
NGNGアセンブラを作らなきゃ、Cツクレネーってことだよ。
プログラムが作れるようになるのはどう考えても先に完成するのはアセンブラだ。
ソース書くだけならどっちでも好きな方ですぐ始められるが。
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG対象環境用のアセンブラ必要ないの? 旧世代の汚物なんで良く判らんがw
0165デフォルトの名無しさん
NGNGもちろんアセンブリコード生成もオプションでサポートするが。
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNGあれは国産マイコンが使われてるので、C言語なかったりするかな。
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNGそんな君におすすめ
ttp://alumweb.mit.edu/clubs/boston/events/auction2002/photos/museum07.jpg
0171デフォルトの名無しさん
NGNGぉぉ、なんか感動した。
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG>>160は「対象環境用のアセンブラを」Cで書く、と書いてるんだから、アセンブラ書くんだよ。
別にアセンブラそのものが対象環境で動く必要はないでしょ。
組み込みだと、実機で開発環境動くほどリッチとも限らんし。
・・・もしかして、「アセンブラ」と「アセンブリ言語」の区別がついてない?
0175デフォルトの名無しさん
NGNG「アセンブラ」と「アセンブリ言語」の区別 って何だかよくわからんから教えてくれ
0176デフォルトの名無しさん
NGNGアセンブリ言語 = C言語でいうところの、C言語
0177デフォルトの名無しさん
NGNGクロスアセンブ{ル|ラ}って言葉はまず使わないよね。
0178デフォルトの名無しさん
NGNGよく使ってますたが。
0179デフォルトの名無しさん
NGNGaskaとか
0180デフォルトの名無しさん
NGNGなんすかそれ?
漏れ定義は、括弧付きの式を直接書けなければアセンブラ。
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG昔何かのソースコードのドキュメントで見た名前だな。
ブツは書籍に付いてるとかなんとか。
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGしかしアセンブリソースは変に抽象化されると逆に読み辛い
0186デフォルトの名無しさん
NGNGそうそう。結局Cと綺麗に棲み分けが出来てるわけで、
それをぶち壊して、新たなタイプのツールを作っても
違和感だけが強調されちゃう。
0187デフォルトの名無しさん
NGNG便利ですよ。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG今時フルアセンブラでIA32用のOSを組み上げようという変態だから仕方無い…
度忘れしたけど、フルアセンブラで各種サーバ(Web、FTP、IRC等々)まで動くOSがあったな…
0190デフォルトの名無しさん
NGNGどのthunkの事かしらんが、Win16→win32のAPI呼び出しに変換する
レイヤーの事か?
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNG>どのthunkの事かしらんが、Win16→win32のAPI呼び出しに変換する
>レイヤーの事か?
すいません。thunk自体よくわかっていません。
変換するレイヤー?うーむ。
thunkで使用するx86命令ってあるんですか?
0193デフォルトの名無しさん
NGNGしかしサンクするための専用命令はない
0194188
NGNG0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG少なくとも>>188には必要のない知識だと思うが。
0197デフォルトの名無しさん
NGNGhttp://info.astrian.net/jargon/terms/t/thunk.html
・・・??(;´Д`)
0198デフォルトの名無しさん
NGNGに書いてあるサンクのことか?
0199188
NGNGありがとうございました。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGデータアドレスが偶数番地から始まっている場合の方が奇数番地から始まっているよりも
早くアクセスできるということなのですが、なぜでしょうか?
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デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNG7 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デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG偶数アドレスにある2バイトは同じワードアドレスなので一度に転送できる。
奇数アドレスにある2バイトは1バイト目と2バイト目が別のワードアドレスになるので
それぞれのワードアドレス毎に転送しないといけない。そのため転送は二倍のサイクルがかかる。
なんで偶数奇数になるかっていうとバイトアドレスをワード数の2で割ると
偶数はあまりが0になる=ワードアドレスとしてみると綺麗
奇数はあまりが1になる=ワードアドレスとしてみると中途半端
0206デフォルトの名無しさん
NGNG取り出して、2回目のアクセスで$0002の前半(0002から1バイト)を取り出すという
ことなんでしょうか?
自分が読んでいる本には、早くアクセスできる要因は、8086が常に偶数番地と次の
奇数番地の2バイトをデータとしてアクセスすることから生じる。
これのいってることがよく分からないです。
0207デフォルトの名無しさん
NGNG8086以外の奇数アドレスからByte以外のデータをアクセスしようとすると
バスエラーを起こすCPUの例を考えてみた方がいいかも。
0208デフォルトの名無しさん
NGNGいやむしろ逆に、“ワード境界をまたいだアクセスの場合にペナルティーが生じる”と、普通は考える訳だが。
それプラス「一度に16bitのデータをまとめて取得できる」とすればいいのかな。
0209デフォルトの名無しさん
NGNGまあ、そうゆう事。
“速い”と言ってるのは多分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デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG知ってる奴は多いと思うぞ。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNG統一的にコンパイルと言うべきだ。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG返還後は別にマシン語やアセンブラで無くても良い。
0221デフォルトの名無しさん
NGNGほぼ現役(汗
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNGpen4は64bit幅と聞いたけどアドレスが8の倍数でないと遅くなるの?
0227デフォルトの名無しさん
NGNG見てコンパイルするのですができないのです。教えてください!!
1
∫ e^-x^2dxをといてください!お願いします
0
0228デフォルトの名無しさん
NGNG最近のCPUはメモリとCPUの間にキャッシュがあるからもっと複雑
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG結論から言うと、Pentium4の内部データバスは64bitではなく32bitなので、
「アクセスするアドレスが4の倍数でないとペナルティが付く」が正解、のはず。多分。
外部データバスってのは、メインメモリ(DRAM)とCPU内のキャッシュを繋ぐバス。
内部データバスってのは、CPU内のキャッシュとレジスタを繋ぐバス。
>>201からの話題で単純にデータバスと言ってるのは、厳密に言えば内部データバスの話。
8086〜80486までは内部も外部も差はなかったんだけど、
Pentiumからは内部32bit・外部64bitと違うサイズになってしまった。
0231デフォルトの名無しさん
NGNG内部外部の区別そのものがなかった、というべきか。
ちなみに、アライメント境界を跨ぐペナルティは2〜3クロック程度なので、
アプリケーションレベルの話になればたいしたものではない、とは言えなくもない。
Pentium時代にまでくれば、アライメント境界なんかよりも、
キャッシュミスとかページフォルトとか、もっとダメージのでかい要素があるしね。
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNGキャッシュが絡むとどうなるのか分からないんで
「この説明でいいのかなぁ」等と思いながら書いてました。
キャッシュを持たない16bit外部バスのイメージで書いてました。
キャッシュなしで32bit外部バスで、2byte目と3byte目を
組み合わせた16bitを取ってくる場合などを考えてみると
奇数バイトから始まってはいても
境界をまたいでないから
ペナルティーはつかないだろうと思います。
0234デフォルトの名無しさん
NGNG> 内部外部の区別そのものがなかった
これ間違ってたので訂正。
8086の廉価版である8088は内部16bitで外部8bitだから、内部外部の概念は昔からあったんだった。
16bit(1word)読むのに8bit x 2でやってたらしいけど、それでも速度低下は2割くらいだったらしいから、
いかに昔のCPUのロジックが遅い(クロックペナルティがでかい)かが分かる。
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG023768K + 68881/2
NGNGentry
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,fp1
か。レジスタ間違えた。
“幅で割る”じゃなくて、幅をかける、若しくは分割数で割る、だね。
最終結果はfp0じゃなくてfp1に入ってる、です。
0239デフォルトの名無しさん
NGNGこれで>>227の宿題もバッチリだね( ´ー`)b
0240デフォルトの名無しさん
NGNG, ´, ヽ
! ! !リノ从ハ.〉
l r! krェ rァ|.| <又吉イエス!!又吉イエス!!
| | l、 ー .ィ!l
| /'\V/、ヽl.|
! i く小> リ
0241デフォルトの名無しさん
NGNGではないと思う。
0242デフォルトの名無しさん
NGNG実際にベンチマークとって最適なコードを選択・出力するコンパイラとかできないのかね。
0243デフォルトの名無しさん
NGNGJava の JIT コンパイラではわりとふつーではないかと。
0244デフォルトの名無しさん
NGNG//´≠`ヾ彡三=三≠=・/=三=・∀\
//彡ヽヾ)))三=.ノ─ヽ、─=≠三 ミ ミ 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エントリが読み込まれるのか、それとも1つだけ読み込まれるのか?
どうなんでしょう。
0246デフォルトの名無しさん
NGNGそのうちの1エントリがTLBに読み込まれる、じゃないかな??
0247246
NGNG0248デフォルトの名無しさん
NGNGメモリアクセスのストライドを4、8、12KB・・・と、それぞれ時間を計測して
みれば分かるんじゃない?
0249デフォルトの名無しさん
NGNGメリットほとんどないから、そんなことしないと思う。
4Kおきに連続してアクセスするような稀なアプリの性能上げても無意味。
他のページにアクセスに行ったりしたら、
エントリを余計につぶしておいても損する可能性大。
それより、x86じゃ広すぎ。
0250デフォルトの名無しさん
NGNGメモリから直接TLBに値が入るということはないとおもう。
AMDはL2にTLB用のキャッシュがあったような。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGといっても外から見りゃ普通のメモリアクセスと区別出来ないのでは?
このへんはデータシートに書いてあると思うが。
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNGこれの4,5ページを見ると、命令用のTLBはL2からデータをもらっている
ようですね。
P4のデータ用TLBってこの図から見られないんだけど、L1と共用なのかな?
0255デフォルトの名無しさん
NGNGftp://download.intel.co.jp/jp/developer/jpdoc/vol6iss1_art01_j.pdf
DTLB はアドレスを物理アドレスに変換します。
DTLB には完全にアソシアティブな64のエントリが
用意されており、各エントリは4K または4MB の
ページのいずれかをマッピングできます。
0256デフォルトの名無しさん
NGNGの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デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNGal = 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デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNGmov eax,[si]
mov [di],eax
の間違いじゃなくて。
関係ないけど、そのページ、内容が古すぎてあまり役に立たないと思う・・・
この前ここに張って有った入門�nより多少ましな感じはするが、どっこいどっこい。
0261デフォルトの名無しさん
NGNG練習問題までのページを5回、他HPも読み返しているのですがマジでアホでごめんなさい。
>>258
はい。字詰め表示になってしまいました。その通りです。
>>259
4バイトだから4バイト分づらす?う〜んどういうことだろ・・
0262デフォルトの名無しさん
NGNGぇ
そうなのですか。
確かにdosのシステムコールなんてもう使わないような気もします
32bitではなく16bitCPU用に書いてあるとも思うのですが
アセンブルに関する資料がネット、書籍ともに少なくて。
0263デフォルトの名無しさん
NGNGDATA1db'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デフォルトの名無しさん
NGNGDATA1 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
0265262
NGNGご説明ありがとうございます。
dbというニモニックは1バイトの文字を
メモリアドレスのどこかに一行目A 二行目B 三行目C 4行目Dのような形で
順次連番アドレスで一つ一つ格納していくものである。
ラベルはそのdbで定義されたデータの先頭アドレスを示すものである。
よってABCDを求めたいのであればラベルの示す行から3行目、全部で4行を
指定してやる必要がある。
こう言う解釈でよろしいでしょうか?
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNGttp://www.ascii.co.jp/books/detail/4-7561/4-7561-4466-7.html
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG0271ぽろじょあ ◆niBmDfC40k
NGNG|・ ・|
ノ( 。3。)ヽ エルァー ボクちょっとしか真面目じゃないYO
0272ほんたま
NGNGおみゃ〜らよ、おれはほんたまよ。
おみゃ〜らよ、おれがほんたまになった件わかるか?
おみゃ〜らよ、「Visual E++」が「Slim de Can」になった件わかるか?
「Slim de Can」は限りなくマシン語に近いアセンブラよ。
疎いな…おみゃ〜らは…詳しくはここだ↓
http://hp.vector.co.jp/authors/VA015412/
自分じ見ちみれ♪
0273デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNGNASMの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こないだから質問してる人かな? CPUのマニュアルもっとよく読んだほうがいいよ。
高級言語と違って「よしなに」はやってくれないからね。
0277デフォルトの名無しさん
NGNGmov ax, SEG data
では?
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG考えまとまってから書けよ
0281デフォルトの名無しさん
NGNGお前には無理だ。
0282デフォルトの名無しさん
NGNG物理的には別かも知らんけど、な。
わかるやろ?
0283デフォルトの名無しさん
NGNGスルーしなって。
この手の人にはいくら言っても無駄だから。
0284デフォルトの名無しさん
NGNGコンパイラってなに使うのx86系で。
Cとかとリンカで混合して使うのそれともフルアセンブラ?
0285デフォルトの名無しさん
NGNG聞きたいことがわからん。もう一度整理してくれ
0286デフォルトの名無しさん
NGNG用語と日本語文法の勉強して出直せ。
0287デフォルトの名無しさん
NGNG買ったけど意味不明
0288デフォルトの名無しさん
NGNG私はx86系でインラインアセンブラを使っているのですが、
皆さんはソフトウェアを作るときアセンブラをどのように使っているのですか。
(例えば一部Cなどで書いて、それとアセンブラのコードとはリンカで1つにリンクしているなど)
それとも全てアセンブラだけで書き上げたりするものなのでしょうか?
0289デフォルトの名無しさん
NGNGit is an INRAIN assembler-only user -- ど
and KOMPAIRA って -- what -- the x86 system of 使う
C -- と -- using by RINKA, mixing, or a full assembler
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNGアセンブラの方がよっぽど簡単。いざとなったら動かして試せるし。
0295デフォルトの名無しさん
NGNGこの業界で仕事してると、ほんとそう思うよ名
「プログラムって簡単!」
0296デフォルトの名無しさん
NGNGよくあるけれど、既出をがいしゅつと読んだり、
巣窟をすくつと読んだりするの、やめよう・・ね?
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG0304ほんたま
NGNGスリムドカンはおれのページにあるから見ちみれ?
http://hp.vector.co.jp/authors/VA015412/
おみゃ〜らよ、おれはいまリソースエディタをつくってるのよ。
スリムドカンに装備させるためよ。
おみゃ〜らよ、アセンブラをつくるのはいいが、リソースエディタのないアセンブラはアセンブラとはいわんぞ!
自分じわかるかな?
0305デフォルトの名無しさん
NGNG行いたいのです.しかも,僕は 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デフォルトの名無しさん
NGNG0307306
NGNG0308デフォルトの名無しさん
NGNG>これってどうなのでしょう...
何をする関数なのか仕様を書いておかないと
ソースから仕様を分析せなならんので俺はスルーしたくなる。
0309305
NGNG上記の関数 scan_three_integers() は,3つの int 引数からなる 96 bit 列
を左から走査し,ビットの立っている位置 {i|0,1,...,95} を返すようになっ
ている筈です.但し,引数 96 bit のうち,少なくとも 1 つのビットは立って
いることを仮定しています.
パイプライン・条件分岐等のことは一切考えず(いや,むしろ考えられず),
ただただ動くように命令を並べただけです(汗).
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
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デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG役に立つ書籍等があれば教えてください
0316デフォルトの名無しさん
NGNGお約束だが
0317デフォルトの名無しさん
NGNG21364は、SMPとメモリコントローラ周りの統合がメインで、
コアは、21264からほとんど変更無いから
英語本で良ければ21264の文献はいくつか見つかる。
0318ほんたま
NGNGおりはよ、「Slim de Can」を使ってやっとメインウィンドウにコントロールをつけるサンプルの作成に成功したぜ。わはは♪
「Slim de Can」ってすげ〜な〜、イベントドリブンプログラムが作成できるとこまでついに進化したよ。
おりはもう神だね♪どうよ?
http://hp.vector.co.jp/authors/VA015412/
0319305
NGNG> 確率が高いほうから調べる
なるほど.どの bit が立っている確立が高いか考えて順番を入れ替えて
見ます.
> まずバイト単位で0じゃないバイトを探してからビットを探すっての
> はどう?
C でプログラムを書く場合,上記のような方法も考えました.8 bit 単
位で bit の立っている位置,もしくはどこも立っていないという情報を
格納した 256 要素からなるテーブルを参照する方法です.しかし,
inline assembly で bsr 命令を使うと,32 ビット単位の bit scan
をしつつ,どの bit もたっていなければフラグを立ててくれるのです.
0320デフォルトの名無しさん
NGNGbit scan命令が遅いのは知ってる?
0321305
NGNG知りませんでした.情報ありがとうございます.ただ,bit scan 命令より
も速い手法を知らないのです.
Inline assembly での bsr 命令使用以外で試したのが,bit が見つかるまで
ループさせる方法と,テーブルを数回参照する方法です.
テーブル参照の方法で試したのは,要素数 256 のテーブル 12回参照と,要素数
65536 のテーブル 6回参照の2通りです.
PentiumIII では bsr 命令のほうが効率が良かったです.
0322デフォルトの名無しさん
NGNGbit scan命令が遅いって
いつの時代のCPUですか?
0323デフォルトの名無しさん
NGNG0324おばかさん
NGNGもしまず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おばかさん
NGNGint 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モード切り替えには物理アドレスと仮想アドレスが同じとなるメモリ領域を確保する
必要があると思うのですが、どのようにしたのでしょうか?
お願いします。
0327デフォルトの名無しさん
NGNG微妙に重いね
0328デフォルトの名無しさん
NGNGP5で7〜71クロック。
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGMOV 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デフォルトの名無しさん
NGNGVectorPathだから一番いい状態のときのものだと思う。
0332ほんたま
NGNGおりはよ、「Slim de Can」を使ってあるボタンをクリックしたらある処理を行わせ、別のボタンをクリッしたら別の処理をおこなわせるプログラムの作成についに成功したよ。
つまり「Slim de Can」はすでにイブントドリブンプログラムがつくれる環境になっているということを自ら証明したという次第よ。
おい、「Slim de Can」はすでに簡単なゲームくらいはころっとつくれるぞ。誰かつくらんか?
「Slim de Can」ってすげ〜な〜。
おりはもう神だね♪どうよ?
http://hp.vector.co.jp/authors/VA015412/
0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG__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>SHL EAX,5
のところは
SHL EAX,5
ADD EAX,95
の間違い
0336デフォルトの名無しさん
NGNGcmov の第二オペランドって imm を食ったっけ?
rm16/32 だけっぽいんだが。
0337305
NGNGは上手くいきませんでした.入力 bit 列は比較的乱雑なようです.
jecxz を用いて bsr と mov 命令をバイパスする手法は数%速くなりま
した.早速採用です.おばかさんありがと〜〜〜
>>330, 334
なにをしたいのか理解するだけで小一時間かかりました...
なんと,条件分岐を一度も使っていないのですね.しかも
__declspec(naked)といい,参考になりました.かなりそそられるの
ですが,gcc の inline assembly 形式で上手くいかなさそうなので
後ずさり気味です.この形式では関数の引数が 4(%eps) とかとは限
らないみたいなのです...
>> 336
Intel のホームページで配布している Manual をよむと,確かに r/m16
と r/m32 だけみたいです.
0338デフォルトの名無しさん
NGNGint 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{
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
}
カコワルイ
0340339
NGNGmov ebx, i2
mov ecx, i1
mov eax, 31
mov esi, 63
mov edi, 95
上の6行修正
0341305
NGNG条件分岐なし,さらにレジスタも edx と eax しか使ってなくて
良さげです.早速試してみました.しかし,どうもダメです...
条件分岐して,実行命令の数を減らすおばかさんさんの方法がよい
みたいです.インプットデータ列は乱雑なので,分岐予測はなかなか
難しそうだと思ったのは素人考えだったのかなぁ... それとも多少
分岐の予測が外れてもかまわないのだろうかぁ...
>>339
上の6行は
mov edx, i3
mov ebx, i2
mov ecx, i1
mov eax, 95
mov esi, 63
mov edi, 31
だと思います.そして,実行結果は遅かったです.Bsr はそもそも
速度のボトルネックではない,若しくはレジスタの待避で遅くなった,
のどちらかかのような気がします.たぶん.
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG何のためにアセンブラが必要と思ったか、その動機かな。
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNGがんばれ〜
0347デフォルトの名無しさん
NGNG>Windows用ソフトを逆アセンブルしてCのソースに起こしたいんです
それ限定ならインテルのマニュアル(PDF)があれば、全部終わる。
といいつつ、種別によってはインラインアセンブラとかで書かれてる場合が
あるから、逆汗も何もCに直すとひどいぞ。
0348デフォルトの名無しさん
NGNG手作業でやると軽く死ねるよ
0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGところで>>348さんはIDA Proとか使ってるんでしょうか?
自分はまずdispeあたりで解析を始めようと思うんですが。
0351デフォルトの名無しさん
NGNGまず、Cで何か簡単な関数を書いて、コンパイラでアセンブリコードを
出力して見比べてみたら?
0352344
NGNG>>351
今はMinGWで適当にコンパイルしたものをgdbで追ってるような段階です。
眺めてるだけではまだスタックの積み下ろし、レジスタ保存やジャンプ等も
よく分かりません。これから慣れていけば少しはすっと頭にはいってくるかと
思いますが・・・。
0353344
NGNG∧||∧あびゃびゃーん
0354素人
NGNGアセンブラを始めるにはどうすればよろしいか?
やっぱり本か?
0355デフォルトの名無しさん
NGNGCコンパイラにアセンブラ吐かせて、対応を見る
まずはそこからやれ。
0356デフォルトの名無しさん
NGNG% 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デフォルトの名無しさん
NGNGdispeを使うよりもPeRdrを使ったほうがいいよ。
出力した逆汗コードが分かりやすい。
http://hp.vector.co.jp/authors/VA028184/
0359デフォルトの名無しさん
NGNGhttp://www.ascii.co.jp/books/detail/4-7561/4-7561-4466-7.html
0360デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4839912025/249-1151012-7179501
0361デフォルトの名無しさん
NGNG0362素人
NGNG図書館でもあさってみる
どうもありがとう
0363デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNGつか、アセンブラ入門なんて今時の本じゃないから、むしろ図書館の方が見つけやすいぞ。
大学図書館あたりがお勧め。
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNGP6やP7(Pentium4)世代でもleaは1クロックで実行できるの?
0374デフォルトの名無しさん
NGNGP6は1クロック。
Pentium4はleaの種類による。
Northwoodの場合、簡単なleaは0.5クロック。
lea eax,[eax+eax*4+3]みたいな複雑な物は5クロックぐらい(
Northwoodはシフトが遅いせいだとおもう)。
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNGワンクロック以下で出来る処理なんてあるわけ無いじゃん
CPUの仕組みからやり直せ
0377デフォルトの名無しさん
NGNG最低、ロード、デコード、演算、ストアの4クロックは必要なのが常識
0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNGPentium4は倍速で動く部分があって、そこは当然0.5クロック。
>>377
パイプラインのない時代の人ですか
0380デフォルトの名無しさん
NGNGパイプラインなかった筈
0381デフォルトの名無しさん
NGNGちゃんと時代についていきましょう。
いまどき、1クロックで4命令同時実行なんてのもあるのに。
0382デフォルトの名無しさん
NGNG演算ユニット(ALU)の演算結果をALUに渡す場合にのみ倍速になるとかなんとか。DDR動作なのかね。
>>376は基本的には間違いではないけど、少なくともPentium4に関してはあてはまらない場合もある。
>>378をかみ砕くと、パイプラインで走ってるCPUの場合、
1命令が実際には何クロックで処理できるか(レイテンシ)だけでなく、
何クロックで処理できているように見えるか(スループット)も判断材料になるってこと。
というか、普通はレイテンシではなく、スループットを話題にするね、最近は。
まーPen4の場合はパイプライン20段+α、単純演算でも合計レイテンシ20を越える化け物だから、
パイプラインストールのケースを考えると(ひきつり)笑いたくなる設計思想なのは確か。
高クロックでカバーしてるとはいえ、あれも恐竜的進化の一形態なんだろうねえ。
0383デフォルトの名無しさん
NGNGクロックの数字がでかいほうが一見速く見えるわけで。
結果営業が客を騙しやすくなると。
0384デフォルトの名無しさん
NGNG20クロックおきに条件分岐で飛びまくるようなプログラムを走らせると、分岐無しのリニアな実装をしたものを
走らせた場合の1/2ぐらいで動くことになるのかな?実測してみると面白そうだけどあいにくP4持ってない。
0385デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNGパフォーマンスカウンタにあったっけ?
あ、P4じゃないから無理だ。
0388デフォルトの名無しさん
NGNG>クロックの数字がでかいほうが一見速く見えるわけで。
>結果営業が客を騙しやすくなると。
こうなってくると、もう終わりだな。
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNGその理論だとの一握りのマニア以外の消費者全てが終わった事になるが?
笑止千万(w
0393デフォルトの名無しさん
NGNG最近のCPUはまったく理解不可能な世界にまで進歩しているのかと。
理屈が分かれば「なーるほど」なんだけど。
0394デフォルトの名無しさん
NGNGなんすかそれ?
0395デフォルトの名無しさん
NGNGあったとしてもパイプラインとかちょっとしたトリックでそう見えるだけで
0396デフォルトの名無しさん
NGNGそんな事、どうだっていい話。
0397デフォルトの名無しさん
NGNG非同期回路で1マシンサイクルの前半50%で1命令処理する
とかすれば一応できるのでは?
今のところはこんなことするなら内部pllで倍クロックつくるほう
が設計的にも効率がいいからそうなってるだけで
0398デフォルトの名無しさん
NGNG0.5クロック相当にするのは、スーパースカラ(スーパースケーラ)です。
なつかしいなぁ、PentiumのUとVのパイプライン。
0399デフォルトの名無しさん
NGNGhttp://school4.2ch.net/test/read.cgi/qa/1089468329/622
0400393
NGNGえとね、絶対分岐する命令あるでしょ、条件分岐じゃないやつ。
ジャンプどこそこっていう。
あれが命令キューの中にあったらジャンプ先の命令を取って来て
分岐命令と入れ替えちゃうの。
それで分岐命令の実行分はゼロサイクルというしかけ。
PowerPCね。
ちょっとした小手先の技術みたいなのにちょっと大袈裟な名前だーね。
0401デフォルトの名無しさん
NGNGP4の倍速ユニットは、マシンクロックの倍の周波数で動いている。
mov eax,ebx
add edx,eax
のように依存関係のある命令の並びでも1クロックで処理できる。
スーパースカラだったら2クロックかかるでしょ?
0402デフォルトの名無しさん
NGNG倍速? ナニソレ? 状態なのであった。
倍クロックが中で走り回ってるとは(ブロックダイアグラム見ても)
考えられないので、きっと、「依存関係のあるmicrocodeのみ」
ネガティヴエッヂで続けざまに実行できる、とかそんな実装なんだろう。
0403デフォルトの名無しさん
NGNGP4コアの良否はわからんが、倍速ユニットがCPUクロックの倍の
クロックで動作しているのは事実だよ。
実は、この倍速ユニットもP4のクロック上昇の妨げになっているんだよね。
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG>>403
チミはDDR SDRAMが倍速クロックで動いてると思ってるでしょう?
倍速ALUにクリティカルパスが存在するかもしれないというのには同意。
ていうか、元々実行ユニットスカスカなんだから、もっと単純な
ALUに実装し直してもいいのにね。
>>404
ブロックダイアログって、何の対話を求めるんだよ?
マジレスすると、実装のヒミツを妄想する手がかりの一つにはなる。
0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNG淫��必死だな
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNGそういうのは違うところでやったほうがいいんじゃないの?
0411デフォルトの名無しさん
NGNGhttp://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スーパースカラは複数命令を同時実行する。
全然別物。どちらも、1クロック以下にしてしまう技術。
0413デフォルトの名無しさん
NGNGP4の倍速ALUは倍の周波数で動いているね。↑の8ページから仕組みが書いてある。
0414デフォルトの名無しさん
NGNGこっちに日本語版があるよ
http://www.intel.co.jp/jp/developer/technology/itj/2001/q12001/articles/p05_microarchitecture.htm
0415デフォルトの名無しさん
NGNGPentiumMは686ファミリーでいいのでしょうか?
基本的な質問で申し訳ありません。
0416デフォルトの名無しさん
NGNG概ね合ってる
0417ほんたま
NGNGおみゃ〜らよ、しばらくお別れだ…
心残りはリソースエディタが間に合わなかったことだ。ダイアログの部分だけでも完成してUPしておきたかったんだが…
今度のお別れは長いかもしれないよ。
というのは、ハードディスクから異音が聞こえ出したからよ。マイPCも風前のともしびのようだ…
PC買い換えて、電話つながるまでお別れだな…自分じわかるかな?
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG1 8086/186
2 286
3 386
4 486
5 Pentium
6 PentiumPro/II/III
7 Pentium4
だっけ?
PentiumMはIIIをベースにいじくりまわしたら別物になった代物だった気がするから、
6系でいいのかなあ。
っていうか、最近アセンブラじゃなくてCPUのスレになってるね、ここ。面白いからいいけど。
0420デフォルトの名無しさん
NGNGそれのことなら、Pentium M は 6 です。
0421デフォルトの名無しさん
NGNG>>最近はFPUの方が計算速い事多いよな
これ本当ですか?
0422デフォルトの名無しさん
NGNGP4の資料は少ないし、うるおぼえで、今更だけど、
その場合のP4で0.5とか5とかって言うのは、μopじゃない?
0423デフォルトの名無しさん
NGNG今まで見たことないから釣りでもネタでもないと思って一言。
「汎用」は「はんよう」と読むのであって、「ぼんよう」と読むんじゃないぞ。
それはいいとして、ここ最近の話題はアセンブラから離れすぎてないかい?
#ま、いいけどね。
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG>>最近はFPUの方が計算速い事多いよな
これ本当ですか?
0426デフォルトの名無しさん
NGNG自分でCPUのマニュアルでも読んでみれば?
0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNGソースは?
だれが言ってたの?
0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNGEBPになって、すっかり凡庸レジスタになってしまったな。
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG最近のCPUでは、汎用レジスター側の命令セットは只のコントローラで
計算の主力は別ユニットが担ってます、
解説付きのチップの写真をみれば判りますが、キャッシュを除けばチップ面積の殆どがFPUやマルチメディア命令用ユニットで埋まっています。
整数ユニットで主力の計算をするというのは、ロケットで言えばメイン推進エンジンを使わずに、姿勢制御用の補助エンジンで動かすようなものです。
0433デフォルトの名無しさん
NGNGCPU最適化を積極的に行う場合、という但し書きが必要では?
でも、汎用レジスタが、現在では姿勢制御エンジンに近い、
というのは確かにうまい比喩だと思う。
SIMD演算機の一般化で、実質、CPUの内部演算幅はどんどん長くなって、
アーキテクチャを表す指針には使いにくくなってるから、
アドレスバスとか制御データ幅が、CPUのビット幅だという考え方の方が一般的になってきたしね。
ついでに、アドレス参照までSIMDで動けば、もっと面白いんだけど、
(4つのテーブル参照一発とか)バス機構が複雑怪奇になるから無理かな。
0434デフォルトの名無しさん
NGNG少なくとも比較命令に関してはFPUをわざわざ使うと相当遅いね32bitでは
3DNow!とかSSEとかを使うとまた話は別になるけど
最近スレ違いはなはだしいぞ。
CPUを知らなければ〜なんていってるけど、
アセンブラならではのトリッキー技をあげてからそれに則してCPUの
解説をするべきだ、藻前ら勝手もいいかげんに汁。
0435デフォルトの名無しさん
NGNG0436デフォルトの名無しさん
NGNGんじゃCASLで。
0437デフォルトの名無しさん
NGNGMicrochipのPICマイコン。
こいつには条件分岐命令がないんだ。
条件でパイプライン中の次の命令を破棄することしかできない。
その破棄される次の命令を無条件ジャンプにして分岐するんだ。
条件で分ける処理が1命令で済むなら、ジャンプすら必要ないんだ。
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGARMはopコードの頭4bitが実行条件指定になってて、フラグの状態によって
実行されたりされなかったりする。パイプラインストールを起こさない工夫だあね。
(標準命令セットのみ。Thumb命令セットでは無効)
>>437のはパイプラインうんぬんというよりは、CPU自体の規模を抑える工夫なんだろうね。
マイコンつってるくらいだし。
0440デフォルトの名無しさん
NGNGなーに、命令長が長くなるのを嫌っただけだが。
つーか、ジャンプ命令自体1バイトのオフセットしか持たないというとんでもない仕様だった。
0441デフォルトの名無しさん
NGNG0442デフォルトの名無しさん
NGNG(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デフォルトの名無しさん
NGNGCなら、
FRT = FRA >= 0 ? FRC : FRB;
ってな感じか。
ところで、FRC, FRB の並びなのはなんで?
サンプルなら FRB, FRC の方が自然な感じがするんだけど。
0444442
NGNGマニュアルをそのまま書き写したもんで。
要はアセンブリで書く場合は
ターゲットレジスタ,条件判断用,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デフォルトの名無しさん
NGNGCPUを作る記事が一杯載ってるのがあったんですが、
そこに、一命令CPUってのの案が有りましたね。
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNGトラ技Special「作れば解るCPU」?
0448デフォルトの名無しさん
NGNGこれ読んどけってチュートリアエウある?
0449445
NGNGつくるシリーズ2 「つくるコンピュータ」
1976/5/10 初版
ISBN不明・・・。
だった。
0450デフォルトの名無しさん
NGNG「この命令でこの変数の値が変われば
このCPUはこの命令に対応してますっ」っていう感じの記事だった。
もう一回くらい連載してくれないかな。
0451デフォルトの名無しさん
NGNGいまどき本はよ駆逐しないと。
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG2)マクロですら大変だと感じてきたので、独自のパーサとか
プリプロセッサを作成する。
3)開発規模が大きくなって、生産性が悪いと感じてきたので、
抽象性の高い言語仕様とアセンブリ言語への変換ソフトを作成する。
4)変換ソフトが書き出すコードの出来が悪いことに気が付き、
asm{}命令で直接コードを書くようになる
最初に戻る
0454デフォルトの名無しさん
NGNG日々自分がラベルとインストラクションとデータの塊と意識しつづければいつの日か自然と・・・
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG「いまどきのアセンブラプログラミング」って本、
アセンブラ関連の掲示板でも、ゲーム改造関連の掲示板でも、
クズ扱いですね。
立ち読みして、内容のあまりのひどさに呆れましたよ。
0457デフォルトの名無しさん
NGNG0458450
NGNG#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デフォルトの名無しさん
NGNGDEBUG?nasm?
0460デフォルトの名無しさん
NGNGなんだ、CPUIDの話か。
てっきり、80186/286/386/486/コプロ有無/Pen〜を見分ける方法かと思った。
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGむかし、Oh!Xにそういう記事あったね。
0464デフォルトの名無しさん
NGNG0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNG8080のエミュレーション
0468デフォルトの名無しさん
NGNG俺が思いついたもの。
・多倍長演算で、ADC命令とADC命令の間で、
キャリーフラグが変化してしまう命令を使用したい時。
・算術フラグをサブルーチンの戻り値として使いたい時。
0469デフォルトの名無しさん
NGNG>>467さんと同じくエミュレータの作成用
0470445
NGNGクラスと云うのはパラダイムに属するものだから、
旧来のアセンブラ処理系では、実装にその概念は無い。
まあ、概念は実現出来るだろうけどね。
(オブジェクトメンバーのローカルラベルを作って、
メソッドはローカル関数で・・・という感じ、
継承は言語の機構上の機能だから、手動でやるしかないかな。)
まあ、必要とあれば、充分に学習した上で、
クラスの概念を実装したアセンブラを自分で作ればいいと思う。
言語作るスキルが無い、とか、もっと簡単に実現したい。
とかなら、逆手を取って、C++とかDelphiのインラインアセンブラを使えばいい。
ちなみに上記は、「それに実用上の意味があるか」は考慮していないので、あしからず。
0471デフォルトの名無しさん
NGNG8080→8086コンバート時に必要
0472デフォルトの名無しさん
NGNGLinuxが安上がりで、かつはじめから環境が揃っていていいかも。
0473デフォルトの名無しさん
NGNGLinuxでプログラミングを始められる環境を構築する労力が計算されて無い希ガス。
CUIでいいならgccでいいんだろうけど、それならWinでもそう変わらないし。
0474デフォルトの名無しさん
NGNG0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNGこれからプログラム始めようっていうユーザがPC持ってないわけねぇし、
持っててもたいていWinが入ってる。
そんな状況下、パティション切るなり、HDD買い足すなりして〜
なんてやってんならdjgppでも入れた方がよっぽど早いと思うけど。
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNGAT&Tとx86は相性が悪い。
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNGAT&T vs Intel
このスレにいるのに、分からないならやばいぞ。
もう一度勉強しなおしだ。>>479
0482デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNG代入が左から右か 右から左かの違いだけじゃないの?
0484デフォルトの名無しさん
NGNGアセンブラやるためだけにLinuxやるなら、
Windows上でVMwareやVirtualPCを使ってLinux動かしたほうがいいと思う。
こいつらにICE機能までついてれば、言う事なしなんだろうけど・・・
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNGその所為か、gccの吐いたアセンブリ出力とVCの吐いたアセンブリ出力を普通に見比べていたのだが、
ふと気付いたら代入方向が違ってたんだな。
0487デフォルトの名無しさん
NGNGやっぱり Intel 式なの?
0488デフォルトの名無しさん
NGNGZ80で書いてi8080Aでデバッグ・・・はPC-8801ですか?
>>487
GCCコンパチをうたってるので、Intel式ではないと思う。
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNGVMwareは、別にPCを1台用意するよりも、開発者にはメリットありますよ。
パーティション切れないくらい沢山の環境を用意しておけたり、
OSを再インストールしなきゃならないヘマをしてもUndoですぐに戻せたり。
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNGPersonal版なら無償
0493デフォルトの名無しさん
NGNGきずいたらgasもnasmも普通に混ぜて読み書きできるようになってたな・・・
0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG変換ツールですか?よければそれのリンクを示してもらえれば助かります
0497デフォルトの名無しさん
NGNG「アセンブラという言語はない。8086用とかPowerPC用とかCPUと対の言語だから
一緒くたにすることは間違っている。」
と言われましたが本当ですか?
0498デフォルトの名無しさん
NGNGまあ、CPUによって仕様は違うよ。
0499デフォルトの名無しさん
NGNG定まった仕様があるわけじゃないし呼び名がなかったら不便だろ?
0500497
NGNGどうも
その先輩がいうには「アセンブラといわずに86アセンブラとかPowerPCアセンブラという風に
頭にCPU名を付けろ。アセンブラに対して失礼だと!」
このクソ暑い中熱弁をふるっていたので軽く殺意が沸いたところです。
0501デフォルトの名無しさん
NGNG先輩さん、変。
それは、VC++とか、GNUC++とか、CodeWarriorC++とか、
Borland C++という風に、プラットホームやOS、実装が異なる系があるから、
C++という言語が無い。といっているようなもの。
アセンブラは存在する。ただ、アセンブラが単一の基準を持たないだけ。
でも、共通の概念はあるし、パラダイムも全般的に共通なものが多い。
例えばISO規格の有る無しを元に、ある言語が存在しないとか言うのは、
その人の技量の狭さが伺える発言だね。
0502デフォルトの名無しさん
NGNGアセンブラ>http://yougo.ascii24.com/gh/07/000714.html
「空港と言わずに成田空港、羽田空港という風に(ry」
っつってるもんだ。
暑いしムカムカするから、とりあえずヌッ頃してヨシ!
0503デフォルトの名無しさん
NGNG0504497
NGNGUNIXというOSはあるけど中身はSystemVとかBSDに分かれてるってことなんですかね
>502
ヌッ頃したいんですが身長185、体重110キロ(推定)の巨漢デブなので無理です。
0505デフォルトの名無しさん
NGNG「ブリ」のあたりがくさいから
0506デフォルトの名無しさん
NGNGアセンブリ言語よりもアセンブラの方が短いからかな?
それともassemblyには一般的な意味が多いから嫌ったのか。
http://dictionary.goo.ne.jp/search.php?MT=assembly
http://dictionary.goo.ne.jp/search.php?MT=assembler
>505
臭いかよ!
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNG/ノ 0ヽ
_|___|_ わたしが訓練教官のハートマン先任軍曹である
ヽ( # ゚Д゚)ノ 話しかけられたとき以外は口を開くな
| 个 | 口でクソたれる前と後にCPU名を言え
ノ| ̄ ̄ヽ 分かったか、ウジ虫ども!
∪⌒∪
「86アセンブラ86」
という風なシーンを想像してしまった・・・
0511デフォルトの名無しさん
NGNGそれなりに売れてる企業でもろに使ってるのを目にしたときはワロタ。
しかもAMDとかIntelで出してる
サンプル?ソース(CPU毎に最適化されてるコード)を
わざわざコメントアウトしてあったときにはマジで噴出しそうになった。
にもかかわらずCPUID取得してたり、もう馬鹿かとアボカド。
0512デフォルトの名無しさん
NGNGC++ソースで実装したときにMMX最適化とか自動でしてくれますか?
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNGっつってるもんだ。
暑いしムカムカするから、とりあえずヌッ頃してヨシ!
0515494じゃないけど
NGNGhttp://www.niksula.cs.hut.fi/~mtiihone/intel2gas/
0516デフォルトの名無しさん
NGNGメモリ転送系はキャッシュ周りがネックになるから、実はそう変わらない。
・キャッシュに収まる範囲のサイズ
・キャッシュヒット率が高い(よく使う)
場合に限りAthlonのSSE命令で実験したら1.5倍くらい早い結果が得られたけど、
限定的過ぎて使えない。
256kByte超えるサイズの転送実験だとmemcpyとたいして変わらないスコアになった。
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG藻前も知ったかの房か・・・・orz
まともなソース嫁・・・orz
0520デフォルトの名無しさん
NGNGゼンゼン違いますよ
0521デフォルトの名無しさん
NGNG詳細キボン
0522デフォルトの名無しさん
NGNG解説キボンヌ
0523デフォルトの名無しさん
NGNGSSE最適化って、どんなコード書いたか知らないけど
キャッシュラインやCPUポート、演算ユニットの構造や
動作を考慮して組むと、Pentium系なら、
通常ライブラリの3-4倍は軽く出る。
ふつーに命令並べて書いても最適化とは言わんのだが、
そこら辺は考慮して書いてるのかな?
0524デフォルトの名無しさん
NGNG是非とも『動作を考慮して組んだ』と『ふつーに命令並べて書いた』例を挙げていただきたい
勿論ターゲットも明確にして
0525デフォルトの名無しさん
NGNG>>516の主題は「転送速度はメモリ周りに依存する」ってことだろ。
倍率の数字なんて環境に依存するんだし、突っ込んだところで無意味とまでは言わないが、
環境明示しない数値なら無益。
>>519-520の書き方だと「516には原理的なレベルの間違いがある」
くらいのポカがあると期待するんだが、そのへんどうよ。
0526デフォルトの名無しさん
NGNG>>516はメモリアクセス速度の話になってる。
memcpy()の実装はCPU毎に最適化されていて
メモリアクセス速度だけでなく、アルゴリズムにも依存する話だ。
C++でmemcpy()風な記述をしても、バイト単位のコピーしかしないでしょ。
Z80なら、DJNZループしつつLDするとか。でも、LDIR使うよね。
0527516
NGNG#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 );
}
0528516
NGNG__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;
}
0529516
NGNG__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;
}
0530516
NGNG>トリッキーなコード その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知らない
NGNG0532デフォルトの名無しさん
NGNGintにキャストすればintのサイズずつコピーするし、
doubleにキャストすればdoubleのサイズずつコピーするし、
long longとかにキャストすればlong longのサイズずつコピーするよ。
0533デフォルトの名無しさん
NGNGで何で256KBなの?
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNGスコアって小さいのとでかいのどっちが強いの?
ソース解凍するのマンドクセ
0537デフォルトの名無しさん
NGNGSRCとDSTがcharであっても、コピーするサイズが多い場合には
32Bit単位でコピーするってのもありだよね。
128BitCPUなら16byte単位でコピーだ!もちろん端数処理するけど。
memcpy()は内部でそういうことしてるから、C++記述だけでは限界がある。
0538トリッキー2の129
NGNGどっちが強いって、、、
数字はかかった時間だよ。
すなわち小さいほうが速い。
しかしあのソースはもともと
CPU の周波数測定のために書いたやつを引っ張り出してきたのだが
MulDiv((int)(e-s),1000000,(int)f) をだったのを端折ってあったり
Sleep するのは REALTIME_PRIORITY_CLASS にした後が正しいのであった。
まぁ相対時間の測定はほぼできてるからいいか。(^_^;)
0539デフォルトの名無しさん
NGNGえらく制限のあるmemcpyだなw
0540デフォルトの名無しさん
NGNGかなり欲しいです。
0541デフォルトの名無しさん
NGNG> >>512と>>516を読んでないのか?
>>516 はキャッシュの容量を超えると変わらなくなると書いてあるが.
0542516
NGNGmemcpyのようなものをSIMDで最適化する事に意味があるか、の検証だから。
>538
その為のSleepだったのか…他のスレッドに処理渡してキャッシュ関係の条件を揃えるためかと思ってマスタ。
勉強になりますた。
>533, >541
AthlonXPのL2が256kだから。
P4の場合はギリギリ収まるのかな?
でも結局L1に収まらなければ意味が無いという結果は出てるし、限定的な事に変わりない。
>ttp://hp.vector.co.jp/authors/VA003988/pentopt.htm#CACHE
>523
普通に命令並べてるだけですが何か?
汎用的で4倍速いmemcpyマダー?(・∀・ )っ/凵 ⌒☆チンチン
0543デフォルトの名無しさん
NGNGJPEG処理に使われる1次元8点DVTを実現するプログラムを
SH3-DSPのアセンブリ言語を用いてさくせいせよ。
変換行列の係数は計算済みとしてよい
ソースデータはメインメモリにおかれているとする
結果はメインメモリに格納する
0544デフォルトの名無しさん
NGNG宿題スレでどうぞ
0545デフォルトの名無しさん
NGNGずばり、卒業研究かな?w
0546デフォルトの名無しさん
NGNGが、平仮名なのが素敵。
0547デフォルトの名無しさん
NGNGか、
さくせい 【削正】他人の詩文の語句を添削すること。斧正(ふせい)。
だったり。
0548デフォルトの名無しさん
NGNGアセンブラの宿題スレはないという罠
0549デフォルトの名無しさん
NGNG0550デフォルトの名無しさん
NGNGstep 1. Cでプログラムを書く
step 2. コンパイルしてアセンブリソースを出す
step 3. DSP命令を生成してくれなかったところだけ#pragma inline_asmを使って手で書く
0551デフォルトの名無しさん
NGNGmov 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[8KB] 504, 506, 627
[256KB] 517900, 452702, 559928
[2MB] 2137066, 1789439, 2199712
これが限界だな。
0553デフォルトの名無しさん
NGNGSSEが動く全部のCPUで右より真ん中のが速いと思ってるの?
0554デフォルトの名無しさん
NGNGそこまでやっても2割増に届かないのか。
3〜4倍速いってどんなよ?
>>553
じゃあ遅くなるCPUの実測値キボンヌ。
0555デフォルトの名無しさん
NGNGストアにmovntps等のノンテンポラル命令を使うと更に速くなるけど、
キャッシュヒットする場合に使うと逆にかなり遅くなってしまう。
0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNG作っても面白くない。
0560デフォルトの名無しさん
NGNGhtmlのパースはどうするんた?
0561デフォルトの名無しさん
NGNG抜粋するとこんな感じ
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デフォルトの名無しさん
NGNGmemcopy_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こういってはなんですが516さんのコードでは
速度が出るはずはありません。
バイト境界の設定やプリフェッチの設定が最低限必要なので
それらを満足にしてから、テストされた方がよろしいかと・・・orz
0564デフォルトの名無しさん
NGNG0565560
NGNGごめん忘れてください。
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNG>抜粋するとこんな感じ
どいつもこいつもバカばっかりか?
抜粋するなら memcopy_amd を抜粋しろよ。
コードも晒さずそのスコアを信じろってか?
0569デフォルトの名無しさん
NGNGそれと、timeGetTime()使ってるのにtimeBeginPeriod()呼んでないのはネタか?
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNG関数のポインタが並んでるだけなんで
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNGshr ecx, 4しか見てなくて気付かなかったw
SSE使うなら16byte境界に合わせて余分なところをrep movsbするよな
0577デフォルトの名無しさん
NGNGじゃないと自分も解ってないという風に取れるが?
>576
お前は全然解って無いけどな。
movaps使ってる時点で16byte境界に調整されてるのに気付け。
563が言いたいのはALIGNディレクティブ使えって事だろ。
0578デフォルトの名無しさん
NGNGmemcpyそのものには意味がないかもしれないが、それをテーマとして
メモリアクセス方法やコードの記述、測定方法について議論されるということに
充分な意味があるということが、このスレの流れからわかる・・・よね?
0579デフォルトの名無しさん
NGNGさらしてないだけなんです・・・orzすみません。
ところで私は574さんではないです・・・orzすみません。
説明するよりも実際に試走させてみる方が
わかりやすいと思うのでつくってみました。
ttp://www.uploda.org/file/0754.zip
0580デフォルトの名無しさん
NGNG2048MB分のコピーを行います・・・
(´・ω・`)なにか・・押してください・・・
[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デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGおまえがあほなだけ
0584デフォルトの名無しさん
NGNG実際にmemcpyしてる証拠も無いexe晒して意味あるの?
それとも逆アセンブルしろとでも?
568の言う通りですね・・・。
0585デフォルトの名無しさん
NGNG0586552
NGNG説明と感想書いてたら長くなったからばっさり切っただけなんだがな。すまん。
AthlonXP 1900+、後に実行した方が速くなるから
memcpy_sse_aは公正を期すためのウォーミングアップ用ダミー。
指摘するならmemcpy_sse_aとmemcpyの比率が
>530と違うことくらい気づいてくれ。
もっとも、memcpyの速度はライブラリとコンパイルオプションに依存するけどな。
あと猿とか呼ばれてる奴は最速コードと参考実測値晒してみろ。
環境書いて無いの以下じゃねぇか。
0587デフォルトの名無しさん
NGNG>コードはAMDのサイトから拾ってきたのを改変した程度なんで
>さらしてないだけなんです・・・orzすみません。
別に晒せない理由にはならないと思うので、是非晒しキボン。
0589デフォルトの名無しさん
NGNGそれを言われると元も子もないですが
コード自体は相当短いんで
ollyなんかで展開してみてもわかります
・・・orzすみません
0590デフォルトの名無しさん
NGNGDDR1600-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デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNGコピーできるように作ってあるんだけど・・・
0593デフォルトの名無しさん
NGNGお前は議論に参加する資格が無いから黙ってろ。
0594デフォルトの名無しさん
NGNGttp://www.st.rim.or.jp/~phinloda/cqa/cqa16.html#Q8
ttp://www1.cts.ne.jp/~clab/hsample/Point/Point20.html
どこの規格のライブラリをご使用でつか?(プ
0595デフォルトの名無しさん
NGNGそれは memmove だろ。。。
0596!516
NGNG>>574
> _dest = (char *)( ( (DWORD)__dest & 0xfffffff0 ) + 16 );
> _src = (char *)( ( (DWORD)__src & 0xfffffff0 ) + 16 );
バイト境界合わせてるように見えるのは漏れだけですか・・・
0597デフォルトの名無しさん
NGNGVC6なんかだと、memcpyとmemmoveは同じルーチンつかっているから
問題ないようですけど、通常は保証されませんよ。
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNG貴方だけですな
0602デフォルトの名無しさん
NGNG16バイト境界に合わせようとしているようだが
バイト境界にも合っているように見えるが
0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGlab_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デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG>aling 16
w
0609デフォルトの名無しさん
NGNG0610デフォルトの名無しさん
NGNGで、551とくらべてどうなの?
0611デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNGでやっぱり16であってるわ、あたりまえだけど。
0614デフォルトの名無しさん
NGNG─
、 l _, -‐-、
ヽ/⌒ヘ~ ,ヘ ,rァ l
., 't,_,ノ丶 / '、 ,/ ,i '’
/ ! '` | '──--' { つ
,/ ● L_/ 'i,
/ l ,/ ● i, -っ
'i しii 丿 / ゝ-
|`:、\ 'ii __,/ `‐′
'i、 ̄~~ ij 乙__ノi ├
^-ァ __,ノ σ‐
r^~"i' 'l
!、 ! l ─‐
~^''!, ,_ ,!_ ー〜'ヽ
\ l,~^''‐--::,,⊃ ) ) ) ) )
`'‐’ ノ
おれはDuronなのさ...。
0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG0617デフォルトの名無しさん
NGNGただ先頭部分に、
mov eax, edi
が追加されてるんだが、その後eaxにはアクセスされてない。
おまじないの一種?>579
0618デフォルトの名無しさん
NGNG関数の返り値じゃないか?
0619デフォルトの名無しさん
NGNGあー! それか!!
0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNGまさにその通りで返り値です
0622デフォルトの名無しさん
NGNGVC7.1でも?
0623デフォルトの名無しさん
NGNG当たり前だろアフォ。MSDN読め。
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNG前段でCPUチェック入れてそれぞれのCPUで高速動作するmemcpyに分岐してもいいけど、
コピーサイズによってはそのオーバーヘッド自体が無視出来なくなる場合もあるだろうし。
0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNGなんもわかってねぇな。
>コピーサイズによってはそのオーバーヘッド自体が無視出来なくなる場合もあるだろうし
ってどんな状態だよ。
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デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNGl゙、 ,/{ ,.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経験上それは真っ赤な嘘。
無視できるほど小さい罠。
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG「仮想関数にすると遅くなる」
と言ってるようなもんだな。
0637デフォルトの名無しさん
NGNGCrystalCPUIDが海外で微妙に人気があるのって笑えますよね。
多分作者も笑っているものかと。
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNGいろんな言語に対応してるからという理由 だ ・ け だとおわれ
0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNG(´゚д゚`)えっ?
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNGP6以降のCPUなら分岐予測とストアフォワード、アンド投機実行で、
分岐のスループットは消滅するだろうに。
・・・てな事位は教えてやれよ、皆。
0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNG普通はオーバーヘッドが消滅する?
0647デフォルトの名無しさん
NGNGライブラリ関数だぞ?
0648デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNG房ヲ
玄人カ
潰ストミセカケテ
釣ラレマクル
スレデスカ?゙
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNGglibc/gcc だと __builtin_xxx に置換されて展開されるな
今月は釣られ月間
0653デフォルトの名無しさん
NGNGサイズが定数になってるmemcpyは展開されるよ。
0654デフォルトの名無しさん
NGNGCコードです。
#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デフォルトの名無しさん
NGNG0656デフォルトの名無しさん
NGNGPentiumシリーズって並列化処理で
1命令のクロックというのはそのときの状況によるからわからない。
だいたいそのときのメモリキャッシュやOSの制御で正確なクロックは測れないよ。
0657デフォルトの名無しさん
NGNGもっとも良い状況での最短クロック数を知りたいんでしょ
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNGホンヤクコンニャク食べたけど忌み分からなくて
みんなから意味きらわれました。
ジャーン!ジャーン!ジャーン!
ウゲエ!!masmだ
びっくりするほどMASMMASMMASMMASMMASMMASMMASMMASMMASM!!
0660デフォルトの名無しさん
NGNGつーかさっきゅんはここに住み着いてるだろ。
0661デフォルトの名無しさん
NGNG>>MASK呼んでこい、さっきゅんでも
ええ〜MASKって誰ですか
っていうか青春とはなんぞや?
と日々思っとります臼vvvv
0662デフォルトの名無しさん
NGNGとりあえず↓とか。
ttp://www.yuasa.kuis.kyoto-u.ac.jp/~nobu/study/nasm/nasm.html
0664デフォルトの名無しさん
NGNGMMX以降のSIMDが搭載されているCPUでは
汎用的に高速化され、実践的である。
ということでよろしいのでしょうか?
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNGC3/Crusoe辺りのベンチ結果次第じゃね?
0667デフォルトの名無しさん
NGNGPentium MMXの環境では、FPUかMMXで転送するのが速いという結果となっています。
このような環境では、長いデータ型が有利なのでしょうか。
Pentium IIIの環境では、工夫のないFPUやMMXよりも、
「rep movsd」が速い結果になっています。命令のデコード時間の分だけ無駄があるのでしょうか。
0668デフォルトの名無しさん
NGNGもうワケワカラン。
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNGincは、フラグの依存関係ペナルティで遅くなる。
最適化マニュアル読め。(もしくはVTune使え)
0671デフォルトの名無しさん
NGNGどれだけ勉強したんだよ。
0672デフォルトの名無しさん
NGNG0673654
NGNG>>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その命令列だと
ロード×2、fp加算×1、ストア×1
なので、ロード・ストアがボトルネックとなってしまい、
fp加算の理論最大性能は出せない。
0675デフォルトの名無しさん
NGNGパイプライン技術の登場でMIPS/FLOPSの単位は意味を失ってると思うけど。
HDBENCHの値の方がよっぽど気が利いてる。
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG0678654
NGNGどのような命令列がいいのでしょうか?
よろしければ教えていただけますか。
>>675
FLOPSの値が、あまり意味を成さない事は分かっていました。
ですが客先から値を
「FLOPSはいくつ?」と聞かれていまして・・。
0679デフォルトの名無しさん
NGNG>>414のリンク先
> 1.5GHz 動作時に単精度小数点なら最大6GFLOPS、
> 倍精度浮動小数点なら3GFLOPS の性能を達成しています。
なので
2.8GHzなら単精度11.2GFLOPS、倍精度5.6GFLOPS。
0680デフォルトの名無しさん
NGNG----------------------------------
//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いまどきのアセンブラプログラミングに嫌気がするヤツしか居ないスレで釣れないと思うがなw
ところでこの本って、どきブラって略せばいいの?
0683デフォルトの名無しさん
NGNGSSE/3DNow!以降のSIMDが搭載されているCPUでは
汎用的に高速化されたことが証明され、実践的である。
ということでよろしいのでしょうか?
0684デフォルトの名無しさん
NGNGPerlの知識をいつ使うのかと・・・・
個人じゃないなら著作権もので犯罪の悪寒・・・・
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNGできてもできなくても(ry
0687デフォルトの名無しさん
NGNG内容は、ソフト内で出力データに対し符号化を行っているルーチン部分の解析と抽出になります
0688デフォルトの名無しさん
NGNG>個人じゃないなら著作権もので犯罪の悪寒・・・・
って個人なの?
0689デフォルトの名無しさん
NGNG「画像or音声のブッこ抜きアプリ集作るのに困っています、助けてください」って言い直せよ!
カッコつけるな
「今 僕は必死です」って
0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNG|
ぱくっ|
/V\
/◎;;;,;,,,,ヽ そんなエサで
_ ム::::(,,゚Д゚)::| 俺様が釣られると思ってんのか!!
ヽツ.(ノ:::::::::.:::::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U
でも、memcpyの件はいったいどうなったのかと少々気になるな。
0695デフォルトの名無しさん
NGNG一応算出部分のおおよその場所特定はできています
お互い秘密厳守できる方で宜しくお願いします
0696デフォルトの名無しさん
NGNG人に頼ってないで、ここでも読んで自分で勉強しろ
http://www.kusamado.com/contents/sc_baio04.html
0697デフォルトの名無しさん
NGNG逆汗なんてのは暇つぶしの片手間にやるもんだ。
時間かけりゃなんとかなる類のものではあるが、
それだけに作業見積もり出来ないし、はした金に見合う作業でもない。
しかもそれで金儲けしようってんなら、法的にもヤバイだろ。
0698デフォルトの名無しさん
NGNGコードとか、ebpを使わずにespを生のまま使って変数アクセスしてるのが
糞めんどうだったな。
あれは割にはあわない仕事だったw
>>697
逆汗しても、フルスクラッチでコードを書き直せば法的には問題無いハズだが。
0699552
NGNG3DNow!のソースが出てすぐにSSEに持ってってみたけど速度は変わらなかった。
prefetch命令すらいらない。
結局高速化の1番のキモは、キャッシュに引き上げるために
prefetchではなくキャッシュライン間隔の無駄な転送をさせることで、
これだけで後の本意のコピーがmemcpyの2倍になる。
あとはmovntpsを使うことでプラスアルファして、計memcpyの3倍弱。
0700デフォルトの名無しさん
NGNGリバースエンジニアリング自体を禁止してるとこもある。
ぶっちゃけ、コナミとの裁判沙汰なんかに巻き込まれた日にゃ・・・たまらんだろ。
0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG時間かかるのはアセンブラからCとかに直したあとの
アルゴリズム解析が主だ。てかソースに起こしても著作権はもちろん
向こう側にあるんだがな
0703デフォルトの名無しさん
NGNGそもそもクラスや継承を表現するような仕組みがマシン語レベルでは備わっていないしな
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNGまさにタイトルにいつわりありな本だな
0706デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/prog/1043334001/331
マルチウザイ
0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNGそもそもクラスや継承を表現するような仕組みがマシン語レベルでは備わっていないしな
0709デフォルトの名無しさん
NGNG氏ね
0710デフォルトの名無しさん
NGNGアルゴリズムには著作権は無いぞ
超引用@第十条
3 第一項第九号に掲げる著作物に対するこの法律による保護は、
その著作物を作成するために用いるプログラム言語、規約及び
解法に及ばない。
三 解法 プログラムにおける電子計算機に対する指令の組合せの方法をいう。
0711デフォルトの名無しさん
NGNG業者必死だな(藁
>710
http://pc5.2ch.net/test/read.cgi/prog/1043334001/337
0712デフォルトの名無しさん
NGNG>710
>http://pc5.2ch.net/test/read.cgi/prog/1043334001/337
クリーンルームどうとかで回避できるんじゃなかったっけ。
0713デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/prog/1043334001/337
のリンク先に書いてある。
http://www.venture.nict.go.jp/ipr/ken00002.html
> リバースエンジニアリングによって得られた情報を基に、プログラムを
>そのまま複製したり、改変してプログラムを作成した場合は著作権侵害
>となります。
> よって、リバースエンジニアリングを行う人と、プログラムを作成する人を
>別個に分け、プログラムを作成する人に、リバースエンジニアリングの情報
>が行かないようにして、プログラムを作成した場合は、例え、他人の著作権
>にかかる著作物と同一のものが出来たとしても、著作権侵害とはなりません。
> このように、プログラムを作成する人のところに、他人の著作権にかかる
>著作物の情報がいかないようにして、プログラムを作成する方式のことを
>一般にクリーンルームと言います。
0715デフォルトの名無しさん
NGNGでも、これじゃリバースエンジニアリングで情報を得てもそれをチームのソフト開発に使う事は出来ない、って事じゃないの?
よく分からん・・・
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNGそこの記述、理解して無いのか間違ってるね。
クリーンルーム方式は、元のプログラムを複製していない事を明らかにするために
解析とコーディングを分担してるので、アルゴリズム等の解析情報はコーダーの
方にいってます。
0719デフォルトの名無しさん
NGNG>>718の簡潔に言うと、
解析チームがリバースエンジニアリングで解析する。
解析チームがCoderチームにインターフェースを教える。
そのインターフェースに基づいてCoderチームが作成する。
でもよく考えたらこの作業自体リバースエンジニアリングそのものじゃんw
0720デフォルトの名無しさん
NGNGそれぞれ別の本でもいいです。
0721デフォルトの名無しさん
NGNG効果的な使い方まで書かれていたような。
0722デフォルトの名無しさん
NGNG721+Googleで「アセンブラ x86」で
今ではすっかり/すっきりx86アセンブラマスターになれます
0723デフォルトの名無しさん
NGNGこんな糞板二度と来ねぇ。
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNGやっぱり解析とコーディングの分担のとこが理解できないなぁ
通常の逆汗って
メモリからアセンブラ読む→asm表記じゃだるいからコードに起こす
ていう風なもんだけど、分担ってどういうこと?
メモリからasmに読むとこが解析?そりゃないよなぁ・・・
あ、
→コードの内容を評価、解析する
ここの分担か?
ってわかったわかった、718?も719もまちがっとるやん
逆汗したことを知らない状態で相手に作らせるんじゃん。
法の抜け穴的で実際にはありえないな、仕様書とか起こせないもんね。
巷には
逆汗→基本構造解析・ちょっとぱくる→売り出し
っての実際に多々あるしね
働いてる人でまともなもの作ってる人は、
大概逆汗からコード書き起こしたりしてるよ、法律的には違法でもね。
くわえて裁判でも判決は曖昧でなんともいえないなぁ・・・
大企業相手に勝ってる弱小企業もいれば逆もまた・・・
0726デフォルトの名無しさん
NGNG違う違う。
アルゴリズムをぱくる → 合法
コードをぱくる(複製する) → 違法
コードをぱくったのかアルゴリズムをぱくったのかを明確に区別するために、
コードからアルゴリズムに落とす人と、そのアルゴリズムを実装する人に
分かれてるわけ。
実装する人が元のコードを知らないと、コードをぱくる(複製)のは絶対に
不可能だからこういう作業分担になってるわけで。
719だと、「メモリからアセンブラ読む→asm表記じゃだるいからコードに
起こす→コードの内容を評価、解析する」までが一人(or チーム)の作業、
その評価解析されたアウトプットを利用してプログラムを作るのが別の人の
作業。
ちなみに、このアルゴリズムをぱくられる事から保護するのは著作権ではなく特許なわけ。
0727726
NGNGの間違いだ・・・釣ってくるorz.
0728デフォルトの名無しさん
NGNGえ!(´゚д゚ )結局違法なのわかってないのか
というか専門家でも意見がまちまちなんだ、726の方法でも
裁判に負ける場合もあるんだずぇ
というかアルゴリズムぱくるというのを平たく言えば
盗作なんだがな、ファイルフォーマットとかもろもろで、
しかも特許とってんのにまけてやがる判例まであるしな
もうむちゃくちゃだね。著作権
0729デフォルトの名無しさん
NGNG非常に限定的な特殊なものもあるんだずぇ
0730デフォルトの名無しさん
NGNGアルゴをぱくっても裁判に勝つやつ、負けるやついるし
デザインが似てるというだけで
意匠権の侵害だ!と訴えられて会社が傾いてるやつもいるし
まぁ結局のところ709氏ね
0731デフォルトの名無しさん
NGNGむちゃくちゃなのは君の日本語だと思う。
0732デフォルトの名無しさん
NGNG何の法律に対して違法なんよ?
クリーンルーム手法は、著作権の観点で合法。
アルゴリズムのパクりは特許の観点で考える
リバースエンジニアリングの可否は契約の観点で考える。
0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNG個人的にはむちゃくちゃだと思うけどな。
だって要約すると
A君が最新のソフトを解析しまくる
そしてB君に
「おい、B君よ。おまえにいいもん教えてやるぜ」
「ここをこうしてこうすると、これが出来るんだ」
「仕様書もつけといてやるよ。おれってすげぇだろ。」
という
「A君凄すぎるよ、これ商売になるくらい凄いよ」
「僕がこれをつかってソフト作ってもいいの!うそ!」
とB君がソフトを作る
B君うはうは→A君に感謝で現金を(ry
こうみるとひでぇ話だけど
まぁグレーとするならその証明方法かな?
日誌でわかるって言う人もいるけど
実際に証拠として採用されない場合もあるし
なにより捏造もあるもんな、でも合法だよ。
とここで俺の考えたたわいもないことを聴いてくれ
ものすごい人数で逆汗にかかる(千以上→webで公開
→当然訴えられる→人数でどうにでもw→webを介してクリーンルーム手法をとる
→ソフトに著作権なんてねぇ
こんな可能性を想像した。
クリーンルームの話題でLinuxをおもい出しますた。
0735デフォルトの名無しさん
NGNG日本ではそういうのは不正競争防止法の守備範囲です。
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNGクリーンルーム手法は確かに著作権から言ったら合法らしいが
特許権や意匠権からいったら違法だと思われ
0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNG>特許権や意匠権からいったら違法だと思われ
思うのは勝手ですね。
>>734
>クリーンルームの話題でLinuxをおもい出しますた。
私はエプソンの98互換機を思い出しました。
0740デフォルトの名無しさん
NGNG逆汗の法的にゃんらについて論議するすれでつか?
0741デフォルトの名無しさん
NGNG>>特許権や意匠権からいったら違法だと思われ
>思うのは勝手ですね。
普通にワロタ
0742デフォルトの名無しさん
NGNG0743あぼーん
NGNG0744あぼーん
NGNG0745デフォルトの名無しさん
NGNGだから、そういうのを防ぐために特許で保護したりライセンスでリバー
スエンジニアリングを禁止するんでそ。
まあ、その例みたいに同時多数でやられちゃうと訴えきれないとは思うけど。
0746あぼーん
NGNG0747あぼーん
NGNG0748デフォルトの名無しさん
NGNGクリーンルーム手法は、現在のどこの大企業でも
暗黙の了解で行われている行為。
0749あぼーん
NGNG0750あぼーん
NGNG0751デフォルトの名無しさん
NGNGするんですよね・・・・・・・・・・orz
0752あぼーん
NGNG0753デフォルトの名無しさん
NGNG禿同、個人レベルではクリーンじゃないライブラリ使ってる香具師も多々
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNG美しい亜線部羅のコードをさらして止めてくれ。
0756デフォルトの名無しさん
NGNGこれって結構美しいよな
http://moech.net/imgboard5/src/1091446545743.gif
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNG餅つけ、アイデアのための権利つぅことだから関係なくもない。
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNG簡単に言うと興味ないねってところ
0762デフォルトの名無しさん
NGNG「いまどきのアセンブラプログラミング」と比較したら、
かなりの良書だと思うよ。
0763726
NGNG0764デフォルトの名無しさん
NGNGこれ系の本最近出たばっかだしな
読むと後悔する位、アセンブラの程度が低いのは言うまでもない
このスレを読んでるようなひとがよむと・・・・orzっとなる
0765デフォルトの名無しさん
NGNG「わたしはオタの上に勘違い野郎です」っていってるのと同値にみえるな。
秀丸尾氏が「おれってテキストプログラミングの神様」って言う方がまだまし。
0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNGこのレビューは参考になりましたか?
◎はい ○いいえ
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNGそんなオプション、ライセンスコンパイラにあるわけねーだろ!!!
0771ほんたま
NGNG>クラスと云うのはパラダイムに属するもの
おみゃ〜らよ、オブジェクト指向の利点をひとつだけ言うならば、
オブジェクト指向ならインスタンスをつかって表現できるものを、
非オブジェクト指向だと、配列や構造体をつかって表現しなければならないということだ。
その結果大きなプログラムだと、重〜い配列や構造体を使うから、コンパイラが自動的に確保してくれるヒープやスタック領域が足りなくなり、
たとえばリソースのために確保された領域を食いつぶしてしまってダイアログが出なくなるなどの不具合が生じるわけだ。
その都度インスタンスを確保するオブジェクト指向方式なら、この心配はないわけだ。
おみゃ〜らよ、これが唯一の現実的なオブジェクト指向の利点よ。自分じわかるかな?
まあこれはマシン語に熟知したおりならではの意見よ。他の誰にもこういう意見は出せないぞ!!
自分じわかるかな?
0772445
NGNG>>771
自分でタコなコードしか組めない、と言ってる様なもんじゃん。
アセンブラで組むようなデリケートな(デバッグしにくい)作業で、
ヒープ圧迫するような実装をするのが悪い。
昔のマシンは、32kbとかで、ウインドウ処理から何から全部賄ってたぞ。
処理が複雑になって、OSが肥大化したからといって、
アセンブラで組むときにルーズな組み方をするなよ。
アセンブラで組むなら、リソースの管理は細部まで設計するのが普通。
出来ないなら、高級言語で組め。
0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG>おみゃ〜らよ、オブジェクト指向の利点をひとつだけ言うならば、
>オブジェクト指向ならインスタンスをつかって表現できるものを、
これだからアセンブラ *しか* 出来ないキチガイは嫌いなんだよ。
せめてOOPを少しでも勉強してから出直して来い。
0777デフォルトの名無しさん
NGNGいや、俺は決して嫌いじゃないんだが。
0778デフォルトの名無しさん
NGNGGNU アセンブラ入門(GAS)
http://stoc.as.wakwak.ne.jp/assembler/gas.html
上にあるハローワールドを実行すると「セグメンテーション違反です」と出ます。
どうしたらエラーなしに出来るでしょうか?
アドバイスがありましたらお願いします。
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNG俺のところでは普通にできた。
そっちの環境は?
sys_writeはLinux(とか)のシステムコールだけど
それ以外のOSとか使ってない?
0781デフォルトの名無しさん
NGNGVineLinux使っています。
コードをコピペして実行しただけですが、HelloWorldとは
表示されるのですが、その下に「セグメンテーション違反です」と
出てしまいました。
こちらの環境の問題のようですので色々と調べて見ます。
ありがとうございました。
0782デフォルトの名無しさん
NGNGGPLのコードを見ながらそっくりなコードをリライトしたら、そのコードを
GPLではなくCPLやMPLなんかでリリースすることも可能なんでしょうか?
そうだとすると、ライセンスって結構アホ臭いものという話になるんですが。
0783デフォルトの名無しさん
NGNGこのレビューは参考になりましたか?
◎はい ○いいえ
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNGこんなクリーンルーム手法は結局ダーティだ!
・逆汗のとこで懲役食らっちゃってる
・多重人格でクリーンだといいはる
・二人羽織で解析だ
・JADつかってる
・脳内クリーンだ
・GPLでソース読んだくせにクリーンだといいはる
(*´д`*)アハァ…
0786デフォルトの名無しさん
NGNGアニオタ?
0787デフォルトの名無しさん
NGNGそんなあなたがNAMCOゲットおめ。
0788デフォルトの名無しさん
NGNGまあまあ。
ここはアセンブラスレですし。
つーか、OOPしか出来ないのも結構キチガイだと思う。
別にアレが究極のプログラミングパラダイムってわけでもないし。
0789デフォルトの名無しさん
NGNG全く問題無い。
0790デフォルトの名無しさん
NGNG実は大いに問題あるんだけど、みんな見て見ぬふりさ
0791デフォルトの名無しさん
NGNG確か80年代BSDがUnixから完全に分離した時に、本家Unixのソースを使ってる部分は
全部リライトしてライセンス上全てのコードをクリアにしたんだよね。この場合でも元ソースを
全く見てないわけはないんだし、半分丸コピーが行われたんだろう。
MozillaのライセンスをMPL/GPL/LGPLのトリプルライセンスに変更する際にも
全ての開発者の同意を得て行われたわけだけど、連絡が取れなかった開発者が
書いたコードについてはリライトすることで回避されたはず。
事実上、全てのオープンソース(GPLの場合はフリーソフトウェア)ライセンスを無効化して
勝手にプロプラに使うことだって出来るわけで。
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNGこのへんか。
自分の事を棚に上げて騒ぎ立てる声だけデカい連中(/.とか)に見つからないようにさえ
注意すれば大体なんでもありってのが現状だろうな。ProGやエレコムについては
『よくある悲しい事』ってわけで、運が悪かったんだろう。
0795デフォルトの名無しさん
NGNGProGのソース読んだけど別にコードとしてたいしたことなかったりw
0796デフォルトの名無しさん
NGNGライセンス関連調査&交渉なんて厄介ごとを抱え込むよりはBSD系ライセンスの物を
使ったほうがはるかに低コストで済むから。最初からその危険ぐらい分かって使うのが
当たり前ではあるんだがな。
0797デフォルトの名無しさん
NGNG例え小さいコードだろうがそれを平気で使いまわすじゃん。
GPL以外でもみんなやってるくせに、
自分の事は棚にあげないように。
0798デフォルトの名無しさん
NGNG0799デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNGGPL違反は当事者同士の問題なのでどうでもいいとしても
ネットワーク機器にバックドアを仕込むようなメーカーの製品は使わない方が賢明だろうな
0808デフォルトの名無しさん
NGNGそれってM$の製品でつか?
0809デフォルトの名無しさん
NGNGElecomの製品
バックドアがばれたのもLinuxに騙されたようなものと言っている
0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNGそれを利用して誰かに侵入されちゃったりなんかしたらこまる。
0812デフォルトの名無しさん
NGNGちがうちがう。
デバッグ用じゃなくて、将来フォームウェアなどをメーカーが
バージョンアップしてあげるための穴だよ。
サイトでいくらアナウンスしてもバージョンアップをしないユーザーが大勢いるから。
0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNGそんな機能はそこらへんのADSLモデムに付いてますよ.
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNGパイプラをインストールするんだからパイインでね?
0817デフォルトの名無しさん
NGNGたまぁ〜にアセンブラの話がでるんだけど
批判からの粘着とか、ソコから負けても負けを認めないとかそんな
もうほんとグダグダの展開で、結局うやむやのまま
またスレとまったく関係のない話にグダグダと・・・・・・・・・・・・・・・・・
0818デフォルトの名無しさん
NGNG皆その事はわかってて書かないんだよ。2chで書いても仕方ないだろ。
敢えて書いたお前も夏房の仲間。
0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG俺が今履いてるヤツ
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG2chは一切有益な情報を提供しないので、貴方の知的欲求を満たすことはないでしょう
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNG久々にアセンブラてき流れで
拡張命令を使ったmemcpyの是非について問われる
「限定的過ぎて使えない」発言の516に対し
519・520が反旗を翻し、memcpy大戦勃発
523がSSEで3倍だ!と発言
516がへたれコードで実測するもそれにはいたらず(あたりまえだ
563で3DNow!用が実測され場合によっては3倍以上を記録する
肝心な部分のソースを晒さないので非難をサルに浴びる
後に逆汗でも確かに3DNow!のコードだと判明
516の発言は見事に弾き飛ばされたわけだが
516はなんということもなくうやむやに消えてへたれぶりを残す。
ここで
夏房が襲来し、無知な問題点を指摘、ことごとく撃破される。
浮動小数点の足し算1回に掛かるクロックを実測したいものが現れるが
実測方法に無理があることを指摘されたのち
RDTSCによる実測方法を載せられるも、レスは途絶える
房業者登場、逆汗の依頼をし、法的問題論争へ
クリーンルーム手法の是非を問うも
逆汗自体の法的曖昧さから完全潔白はありえないにもかかわらず
延々と無知な論議が繰り返され、
このながれを断ち切るためかひつこいコピペ房があらわれる
当然無視され、、話はGPLの法的効力へ
法的に効力を発揮しないGPLは実際あってないようなもの
という一般的な結論に一時的に達する
それに関してProGやエレコムらGPL違反問題が取りざたされる
泥沼的にGPL論議が再開する、
突如として「パイプラインストールって略すとパンストだよな。」
という書き込みがあらわれ今にいたる・・・・・・・・・・・・
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNGむなしくないか?
0829デフォルトの名無しさん
NGNG0830827
NGNG≡ ( ┐ノ
:。; /
0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNGそして口だけは達者な825が降臨してスレは荒れましたとさ。
0839デフォルトの名無しさん
NGNGhttp://www.eicar.org/anti_virus_test_file.htm
ちょっと感動。
0840デフォルトの名無しさん
NGNGrecognized, non-virus code string included for analysis purposes
only. Again, THIS IS NOT A VIRUS
0841デフォルトの名無しさん
NGNGようになったりしてな。
0842デフォルトの名無しさん
NGNGと貼り付けるのを期待してるの?
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNG0845839
NGNGdebug 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]
0846839
NGNGもっとコンパクトにできるつわものいませんか?
0847デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG「アセンブラ… キタ━(゚∀゚)━!!」
でお願いします。
0850デフォルトの名無しさん
NGNGところでスレ番がないとよく分からん。
0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNG0854726
NGNG( ´・ω・)ノ@"パシッ
( ´・ω・)ノ―――――――@"キュイイイン
( ´・ω・)ノ―――――――@ヽ(・ω・` ) パシッ
( ´・ω(@"バシッ ヽ(・ω・` ) ポイッ
0855デフォルトの名無しさん
NGNG懐石・蔵系の掲示板で
さもわかったように解析結果を説明する香具師って
非常に極悪だと思うんだよ。
なにが極悪ってね、まず第一に
「デバッガ丸投げ」のコードを読んでるだけであって
しかもそれも全体の数千・数万分の一程度のコードしか
読んでいない(読めない)のに、いったいおまえは何様だと。
もう馬鹿かと。もう氷使ってる時点でオワットル、捕まってくれ。
そんな香具師は少なからず優越感に浸ってよろこんでいるが、
自分の会社で売り出した商品の
尻だし部分だけ懐石されてみろってんだ!
どれだけの2chネラーが食いつくか・・・・もうほんと進でくれ。
でも、そんなやつらの中に明らかにそれが仕事の香具師が
まぎれているのもまた事実・・・・・・・・・・・・・・
投稿するのは解析結果だけってのに多い希ガス。
ドンぐるくらぁっく!してみたり。
直書きの部分を足してバイパスさせてみたり、
そんなことしてるやつ数限られてるってんだまったく・・・・・・・・・・
0856デフォルトの名無しさん
NGNGの部分まで読んだ
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
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デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNGエロイな。
おめでとう。
0862デフォルトの名無しさん
NGNGMOV EBX,dword ptr[table1+EDI+1000h]
は
EBX = *(int *)(((char *)&table1)+EDX+0x1000)
だから
0863デフォルトの名無しさん
NGNGそういえば昔com2txtってのがあったよ。
0864デフォルトの名無しさん
NGNG個人的にバイナリデータならLPSTRよりLPBYTEにしろと言いたい。
0865デフォルトの名無しさん
NGNGそういう問題じゃなくて、コード全部がASCII文字の中でも特に
表示可能文字の範囲に入ってることがすごいっていう話なんだが?
0866デフォルトの名無しさん
NGNGcom2txtは表示可能文字でSTUBが書かれていて自己展開でそのまま起動可能なんだよ
0868デフォルトの名無しさん
NGNGそんなに驚くことかね?
DOS時代は
echo ほげほげほげほげ>a.com
とかやって COM ファイル作ったもんだけどね。
EXE ファイル作れたらさすがに神だとは思うけど。
0869839
NGNG知らなかった…
Vectorからダウンロードしてソース見てみたら
「ヘッダ部はほとんどハンドアセンブルによって作った」そうで。
>>868
だからそれはcom2txtとかのユーティリティがあるから簡単にできるってだけでしょ。
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNG868じゃないけど補足しとくと、日本語だとカタカナとか漢字が使えるので、
ASCIIに比べて使用できるコードの範囲が広くて、 int 21(cd 21)が
「ヘ!」で表せたりするんで、そんなソフトを使わなくても簡単なプログラムなら
テキスト表記可能な範囲で実装出来ちゃうわけなんで。
確かawkだか何だかの256本でも、数文字の簡単なコードが一つ紹介されてた希ガス
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デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1060182978/
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG全レジスタのpushは別にあったと思う。
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNG変わりません。使用できます。
ちなみにopcodeは、60
0880デフォルトの名無しさん
NGNGPDFよく嫁
0881デフォルトの名無しさん
NGNGちなみに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.
0883デフォルトの名無しさん
NGNGこんなの当たり前なのでは。あと「32bitモード」じゃ
CompatibilityモードなのかLegacyモードか判別できないから
ちゃんと分けて使うべきでは。
0884デフォルトの名無しさん
NGNG>PDFよく嫁
全然、その命令が無いみたいに言ってるではないか。
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNGF4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNGはじめて読む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デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNGありがとうございます。(マセンブラ、ですか??)
486は少々高度な内容になるんですね。
でも私はまさしくOSをつくるとは言わなくても、Linux Kernelを完全に理解できるくらいを目指しているので読んでみようと思います。
アセンブラの勉強を一通りできたらMinix本も読もうかと。
0893デフォルトの名無しさん
NGNG8086の知識はないと、やや読みがたい
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNGINT 50hって何をする割り込みなんでしょう?
ユーザ定義の割り込みでしょうか
>はじめて読む486
386よりかっこいいと思って買ってしまった苦い思い出
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG俺は読みムズいと思うな。
0898デフォルトの名無しさん
NGNGhttp://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デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNG0903898
NGNG(;゚д゚)ァ.... ・・・・・・。
実行してませんでした・・・・(〃▽〃)キャッ
今日の昼からはじめたばかりで・・・。
アセンブラって無償コンパイラすらまともにみつからないほどマイナーなんですね・・・。
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG0908906
NGNGMicrosoftのPE COFFリンカが喰えたりするので、
gas syntaxで書くのも一興
俺のばあい、フロントエンドがC++Builderだったりするので、
gas で書いたコードをわざわざobjdump して、
db $XX とかが含まれた .asm を吐いてたりする。
0909デフォルトの名無しさん
NGNGソフト割り込みだから、とくに決まってない。
0910デフォルトの名無しさん
NGNGttp://www.ctyme.com/intr/int-50.htm
0911デフォルトの名無しさん
NGNGThe x86 Interrupt List
ttp://www-2.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
0912デフォルトの名無しさん
NGNGx86用のgcc/gasって、intel形式でも出力できるよ。
(linux上だとレジスタに%がついてたけど)
gcc -S -masm=intel xxxx.c
で試してみそ。
ソースの先頭の方に.intel_syntaxがあると
intel形式のソースとして解釈されるみたい。
まあ、セグメント/ラベル/データ等の記述はmasm系と同じにはならないんだけどね。
0913このスレの名づけ親
NGNG次スレは私に立てさせてください。
「アセンブラ… キタ━(゚∀゚)━!!」
0914デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNG初めて知った
0917895
NGNG0918デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1093519463/
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG§,; ________§; ,
|| §; / § ヽ ||
|~~~§~ §'~~~~~~~| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ____§/"""ヽ,§_____ | < すいませんでした・・
|__|///(§ §)ノ////|__|///\________
⊆___)///ゝ___§ノ/////(____⊇////
///////////////ジュ〜////////////
/////////////////////////////
0921デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1065535118/
0923デフォルトの名無しさん
NGNGもうそろそろだ準備しとけ。
0924デフォルトの名無しさん
NGNGちょっと、聞きたいのですが、アセンブラーで3000ステップあるソースをCOBOLに移行したら、
だいたい何ステップぐらいになるもんですかね?
0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG「 アセンブラ… 。・゚・(ノД`)・゚・。 ウエーン 」
でお願いします
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1093519463/
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNGじゃ、950過ぎたら次スレ立ててみるよ
0932埋め
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1093519463/
0933デフォルトの名無しさん
NGNGNOP
NOP
0934デフォルトの名無しさん
NGNGここはdelay slotじゃない。
0935デフォルトの名無しさん
NGNGjmp label000
0936デフォルトの名無しさん
NGNGそは空洞なり
そは空洞なり〜
0937デフォルトの名無しさん
NGNG90 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デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGアセンブラ… (°Д°)ハァ?
http://pc5.2ch.net/test/read.cgi/tech/1093519463/l50
なのか?
なんかバカにされてるようなスレタイなんだが。
0942デフォルトの名無しさん
NGNGmov m,mも在るだろうと思った昔が懐かしい。
0943デフォルトの名無しさん
NGNGそっちは削除依頼
次スレはおれが950過ぎたら立てる
0944デフォルトの名無しさん
NGNG頼むよマジで。
0945デフォルトの名無しさん
NGNG警告を出したりできるアセンブラがあれば便利だと思う。
そして、それを見て人間がその箇所に手を入れると。
このアイデアどお?
0946デフォルトの名無しさん
NGNG|つ[VTune]
0947デフォルトの名無しさん
NGNGプロセッサが変わったら
無意味な警告でいっぱいになるよ。
今、「UパイプとVパイプが有効利用できません」なんて警告が出ても
どれほど役に立つと。
0948デフォルトの名無しさん
NGNGまず最初に、CPUIDで検査してだな...
対応してない場合は、このCPUは未対応ですっていうメッセージをだしてだな...
バージョンでアップで対応するCPUを増やしてだな...
っていうか、検出自体のプロセスはそれほど難しくないはずなんで、
バージョンアップで対応はそれほど困難ではないような気がするのだが。
0949デフォルトの名無しさん
NGNG>今、「UパイプとVパイプが有効利用できません」なんて警告が出ても
>どれほど役に立つと。
「ああ、今はUパイプとVパイプが有効利用できないんだな」って事が知ることができる。
0950デフォルトの名無しさん
NGNG>まず最初に、CPUIDで検査してだな...
他のCPUのはできないのかよw
0951デフォルトの名無しさん
NGNGVTuneってどうなの?
値段が高いので、おいそれと手が出せない。
職場に古いバージョンが転がってたけど、遊ぶ暇なかったし・・・。
0952デフォルトの名無しさん
NGNG「アセンブルを実行している環境のCPU」であって、
「アセンブルされたプログラムが実際に動作するCPU」を
アセンブラ自身が判別するのは不可能なわけだが。
だいたい、今現在だって
P6/NetBurst/K7/K8環境が混在していて
それぞれ得手不得手があるのに。
0953デフォルトの名無しさん
NGNGイソテルの辞書には、CPUIDの無いCPUは無いって書いてありました。w
0954デフォルトの名無しさん
NGNGうむ。
0955デフォルトの名無しさん
NGNGこのバイナリは、P6で最適化されてます、みたいな情報。
...むりっぽいね、忘れてくれ。
0956デフォルトの名無しさん
NGNG手動でターゲットを指定すれば出来ないことはないけどさ。
今だって、コンパイラが、特定のプロセッサに特化した最適化をしているでしょ。
ただ、アーキテクチャが変わるごとに警告内容が陳腐化して役に立たなくなるし
全ての環境に最適なコードというのが存在しないのだから
労力の割に効果が期待できなくて、どこも作ろうとしないのではないかと。
intelはVTune等の別ツールでの対応が本道だと考えているだろうし
MSはアセンブラじゃなくてコンパイラの最適化に力を入れるだろうしね。
0957デフォルトの名無しさん
NGNG010110000000000010111100
0958デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1093519463/
0959デフォルトの名無しさん
NGNG感想きぼんぬ
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNG128bitですが のし
0963デフォルトの名無しさん
NGNGしかもLIWだろ?
0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNGちごたか(てへっ
# ただいまAMD最適化厨
0966デフォルトの名無しさん
NGNG8Bit 16Bitはあるけど32Bitが見あたらないYO
0967デフォルトの名無しさん
NGNGftp://download.intel.co.jp/jp/developer/jpdoc/24547103_j.pdf
0968デフォルトの名無しさん
NGNG名前的にPSUBSDになりそうな命令はやっぱり見つからないよー
0969デフォルトの名無しさん
NGNGじゃあねぇんだろ。
こんなとこで喚いてないで、黙って他の方法考えろ。
0970デフォルトの名無しさん
NGNG実際にどのような仕事になるんでしょうか?
ちなみに私は昔ゲームボーイソフト開発でZ80アセンブラ
(正確には違うらしいが)使ってました。
0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNGこれなら大半はアセンブラばかりだって仕事は、
PIC とか使った¥500位のおもちゃ製造くらいじゃないかな〜。
あとパチンコのプログラム。
アナログ回路技術者よりもさらに需要が少ない。
0973デフォルトの名無しさん
NGNG情報家電、携帯電話のソフト開発は大体Cでは?
ごくごく一部 Java もあるけど。
低〜中級技能者の大量投入でこなすパターンが多いし。
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNGワロタ、アセンブラですらないし
0976デフォルトの名無しさん
NGNG漏れ8ビットのゲーム系で仕事してるよ。フルアセンブラ。
0977デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1093519463/
0978デフォルトの名無しさん
NGNGPeRdr、dispe、objdumpあたりは対応していないようです
0979デフォルトの名無しさん
NGNGvectorに色々あるだろう。
Sourcerつーのが強力でよかったが、もう手に入らんよなあ。
0980970
NGNGありがとうございました。
0981デフォルトの名無しさん
NGNG漏れが作った奴。
問題は、n88basicで書かれていることだな。
0982デフォルトの名無しさん
NGNG正確に言うと、ズブの素人にゃ仕事は残されていないが
逝くとこに逝きゃ引く手あまた
次スレは、早く立ちすぎたアレでもよい?
0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNG真のあせんぶら使いは、スレタイなどのような細かい事にはこだわらない。
ところで、次々スレは「アセンブラ・・・ ( ・∀・)つ〃∩ ヘェーヘェーヘェー」でお願いします。
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNGにして、1000まで ガッ しつづけるってのはどう?
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNGアセンブラ総合スレ Part7
http://pc5.2ch.net/test/read.cgi/tech/1094271973/
0993デフォルトの名無しさん
NGNG忠告しとく。自作自演でもなんでもしてスレを伸ばしておかないと重複でそっちが消されるぞ。
0994デフォルトの名無しさん
NGNG重複スレ立てるなよ。
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG俺、1度でいいから1000とって見たいんです。
999で放置してもらえませんか?
一度でいいからとりたい・・・
0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1093519463/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。