アセンブラ… (°Д°)ハァ?
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG【前スレ】
アセンブラ… (;´Д`) ハァハァ
http://pc5.2ch.net/test/read.cgi/tech/1087897801/
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
アセンブラ… (*´д`*)アハァ…
http://pc5.2ch.net/test/read.cgi/tech/1076157613/l50
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGそうみたい。代わりに
http://www.yuasa.kuis.kyoto-u.ac.jp/~nobu/study/nasm/nasm.html
0007デフォルトの名無しさん
NGNGありがとう
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG参考になるHPが本はありませんか?
教えてください.
0012デフォルトの名無しさん
NGNG.intel_syntax
の行を入れて、
セグメント指定を変更
ラベルやデータの形式を変更
が楽っぽい。
001311
NGNGgcc -S ***.cの出力ソースをいじれって事?
付け焼き刃の漏れではできない気がする.
すんません.
とりあえずアセンブラの形式を変換する
下のHPを見て書き直してるんですが,
インラインアセンブラではないので
うまくいく自信がないorz
http://www.codeproject.com/cpp/gccasm.asp
話は違うけど前スレ>>912に -masm=intelオプションを付けると,
書いてあったけど.linux(gcc3.23)のmanに載ってない.
cygwinだけしか使えないのか?
001411
NGNG上の"インラインアセンブラではない"
という書き方はおかしかった.
HP内の記述を
%eax -> %%eax
に変換しないとcのソースファイルが
コンパイルできない,
と言うことが言いたかっただけです.
0015デフォルトの名無しさん
NGNGつーか、試してみなよ。
gcc 3.xなら、-mintel-syntaxかどっちかが使えるんじゃないかと思うけど。
001611
NGNGoption(-mintel-syntaxなど)は使えているようだけど,
適当なVC++のインラインアセンブラのコード
を持ってきてもエラーがでる.
たぶん自分でどう変えれば良いか分かってない.
>>12>>15さんすまん.
地道にAT&T形式に変えてみる.
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG(°Д°)<ひでぶっ
って顔だよな
0021デフォルトの名無しさん
NGNGそりゃお前の顔だろ。
んなことはどうでもいいんだが、前スレ使い切ってからこっちに移行しろよ。
0022デフォルトの名無しさん
NGNG↑ゾンビみたいで怖い
0023デフォルトの名無しさん
NGNGここで (°Д°)ハァ? (°Д°)ハァ?してもいいでつか?
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGコボラってCPUが直接COBOL命令を実行してると思ってるんだからさ。
0029デフォルトの名無しさん
NGNG若い奴だけだろ
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG(;´Д`) ハァ
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGそういうCPUなかった?
0035前スレの名づけ親
NGNGで立て直して貰えませんか?
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGでしゃばんな
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGちゃんとしたタイトルで建て直ししる。
0041デフォルトの名無しさん
NGNGWinでしかコード書いたこと無い奴ってこういう「平家にあらずんば人にあらず」
みたいな傲慢さというか井の中の蛙ぶりに気づいてない奴が多いよな。
ていうか、この板の平均年齢って案外低いのかな?
0042デフォルトの名無しさん
NGNG40ぐらい?
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG>x86のアセの話題しか出てないような
>Winでしかコード書いたこと無い奴って
いやお{犬,馬}様も同じだろう
同じUNIXでも、NetBSDユーザなら68kやMIPS,SPARCと
ユーザはいろいろなんだけど。彼等は殺伐としていて
会話をしないし。
0045デフォルトの名無しさん
NGNGアセンブラ総合スレ Part7 キタ━(゚∀゚)━!!
とかって名前で立てませんか?特定のハードウェアに
限定しないスレとして。x86の話題が多いのは、
ユーザ数が多いから当たり前。もし要望があれば、
x86だけで独立してスレ立ててもいいし。
あと関連スレとしてこんなのが既にあります。
【糞】Pentium4最適化への道
http://pc5.2ch.net/test/read.cgi/tech/1026356711/
PowerPCアセンブラに関するスレ
http://pc5.2ch.net/test/read.cgi/tech/1036174059/
制御系なら俺に聞いてもいいぜ(5)
http://pc5.2ch.net/test/read.cgi/tech/1079102543/
アセンブラ言語 CASL�Uを語るスレ
http://pc5.2ch.net/test/read.cgi/tech/1033876116/
PICアセンブラ統一スレッド
http://pc5.2ch.net/test/read.cgi/tech/1060182978/
0046デフォルトの名無しさん
NGNGGNU Assembler勉強スレ
http://pc5.2ch.net/test/read.cgi/tech/1036722498/
0047デフォルトの名無しさん
NGNGたててちょ、オレの所のプロバイダからだと建てられんので。
0048デフォルトの名無しさん
NGNG前スレがまだ950にもいってないから、
もうちょっとしてから立ててみる。
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGBASICとかCとかあるらしいが、メンドクサイので、アセンブラ。
0052デフォルトの名無しさん
NGNGviでもいいんだけどさ。
0053デフォルトの名無しさん
NGNG0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGこのスレでいいじゃん
スレタイが気に食わないとか、そういうお子様な理由は通らないよ
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG違うよバーカ
0059デフォルトの名無しさん
NGNGその反応の異様な早さ。やっぱりクズだな
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGNECの石なんぞ久しく使っていないので、世間の流行はわからんが。
0067デフォルトの名無しさん
NGNGアセンブラが難しいよ。
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG0070デフォルトの名無しさん
NGNGいいよ。
全然関係ないけどX68000が欲しい。
0071デフォルトの名無しさん
NGNGX68000はBIOSも合法的に入手可能なのでemulator使うとか。
0072デフォルトの名無しさん
NGNGだいたい何ステップぐらいになるもんですかね?
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGDATA DIVISION除けば、三分の一〜十倍
DATA DIVISION入れると十倍〜三十倍
このくらいあればてきる?
中身はビット演算用のものすごいPERFOMの山かな?
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNGそれだけだろ。糞スレ荒らしは全て放置。
いい加減に仕事して欲しいよな
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG真の次スレ立て→重複で削除コースかと。
タイトル不備ぐらいだと、削除依頼出しても、削除人によっては
古い方が優先されて新しい方が削除される可能性が有るので注意
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086マイク ◆yrBrqfF1Ew
NGNGchar fork[] = "\x31\xc0\xb0\x02\xcd\x80"; //position independent code for `fork'
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNG0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG1000取らせてもらえなかったし・・・
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNGアセンブラ?そんなもの知りません。
0098デフォルトの名無しさん
NGNGひょっとして、前スレの名付け親か?
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNGあせあぶら
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGマセンブラ言語は時代錯誤の生き遅れ
http://pc5.2ch.net/test/read.cgi/tech/1092478213/
0105デフォルトの名無しさん
NGNGその手があったか
0107!ver ほげ
NGNG0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGそこで一点質問があるんですが、
アセンブル方法はふつうに
as src.S -c -o src.o
としても駄目でしょうか?
0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG0112109
NGNGそうですか、、
どのアセンブラが適してるか教えていただけませんか?
gas.nasm,masm32があります。
いまas86をダウソしてみました。
>>111
自分でやってみたいんで自力でやってみますわ。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNG最近のは対応してる
0115デフォルトの名無しさん
NGNGftp://ftp.microsoft.com/softlib/MSLFILES/
上記のサイトからlnk563.exeが落とせますが、このファイルのライセンスってどこに
明記されているのでしょうか?MSのサイト見ても無いんですよ。
0116デフォルトの名無しさん
NGNG明記されてはいないがアップデート用ファイルなので普通に考えればMS-linker 5.x系のライセンス所持
0117デフォルトの名無しさん
NGNGんが7.10だったらあるんだけどな。
最近VS.net買ったんだけどな。16bit linkerついてないやんけ。ぬるぽ
0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNGここ
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGx86みたいな厨房プロセッサはここでもいいけど。
0123デフォルトの名無しさん
NGNGそっち系の棚にあったりするんだよなー。
0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG削除人を含めた糞厨房ばっかりのこの板はもうだめだな。
0126デフォルトの名無しさん
NGNGINC EAX
より
ADD EAX, 1
の方が早いんだね。ごめん、ただそんだけ。
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG頭悪いよね
0129デフォルトの名無しさん
NGNGどうもx86は忘却気味だ
0130デフォルトの名無しさん
NGNGその通り。
incはCFが変化しない。
0131デフォルトの名無しさん
NGNGCMPよりTESTのほうが使い勝手が良さそうなのですが、どの条件ジャンプを使ったら良いのか判らない…。
0132デフォルトの名無しさん
NGNGターゲットのCPUくらい書け。
0133131
NGNG8086の場合です。
0134デフォルトの名無しさん
NGNGフラグ変化表くらい見ろ。
0135デフォルトの名無しさん
NGNGftp://download.intel.co.jp/jp/developer/jpdoc/24547103_j.pdf
ほれ。
0136デフォルトの名無しさん
NGNG加算&交換の最中にシグナルに割り込まれたり別スレッドに制御移ったりしないと考えてOKなんで
しょうか?
マセムブラ素人ですみませんが教えてください
0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNGlockをつけずとも、
1つの命令の実行途中で、割り込まれたりして別スレッドに実行が移ることはない。
lockをつけると、CPUが外部バスをロックして、自分以外がバスを使えないようにする。
つまり、命令の実行中に、他の誰かがメモリを書き換えられないようにする。
主にマルチプロセッサでの同期に使うけど、バスマスタデバイスにも使うかも?
0140139
NGNG他の誰か、というのは同じCPUで実行される他のスレッドではなくて、
SMPの他のCPUで実行されているスレッドや、バスマスタデバイスのことです。
0141136
NGNGなるほどありがとうございます。
もう1つだけ…。いまapacheのソースを眺めてるんですが、httpd-2.0.51/srclib/apr/include/apr_atomic.hに
#define apr_atomic_t apr_uint32_t
#define apr_atomic_cas(mem,with,cmp) \
({ apr_atomic_t prev; \
asm volatile ("lock; cmpxchgl %1, %2" \
: "=a" (prev) \
: "r" (with), "m" (*(mem)), "0"(cmp) \
: "memory"); \
prev;})
#define apr_atomic_add(mem, val) \
({ register apr_atomic_t last; \
do { \
last = *(mem); \
} while (apr_atomic_cas((mem), last + (val), last) != last); \
})
(続く)
0142136
NGNG教えていただけませんか?
/usr/include/c++/3.3.x/i386-xxx-linux/bits/atomicity.h だとaddlしてるだけなので
すが…。
0143デフォルトの名無しさん
NGNGRevision 1.51
more efficient implementation of atomic add on x86
この変更がMFCされてないだけで深い意味は無いと思われ。
0144デフォルトの名無しさん
NGNGインライナセンブラってどこまでレイジスタをいじっていいんでしょうか
セグメントレジスタやインデックスレジスタは退避しておいたほうがいいんでしょうか
0145デフォルトの名無しさん
NGNG16bitの8086だよな?
ax,cx,dx以外は全部退避しとくこと。
もしかしたらcxもまずいかもしれない。
マニュアル・・・はさすがに無いか。
Cソースのアセンブラ出力って取得できたっけ?
もしくはディスアセンブラでコード吐かせてレジスタの使われ方を検証するしかない。
古本屋めぐりして運良くTurboC関係の本があったら取っとけ。
あと工学系の本が沢山ある図書館も行った方が良いな。
つーか今更TurboCで学習は身にならんと思うけどな?
当時のC++と今とじゃ言語仕様が全く違って使い物にならないし。
0146デフォルトの名無しさん
NGNGMFCって?
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG無性にまたPC-98でプログラムを組みたくなったんです
TurboCの黄色いマニュアルがあったような気もするんですが行方不明で…
>>147
えーー、AXとかもだめなんですか…
高速化の為に使いたいのできついですね
0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNG場合によってはメインのアセンブラコードより退避の所要クロック数が上回ったりして…
0151デフォルトの名無しさん
NGNGソース出力は -S
フリーなレジスタはaxとdxだったような。
軽く試したら32Bitだとさすがに駄目だが、16Bitだとそれなりには
面倒をみて退避してくれてるもよう。
ていうか、IDE入れてるならオンラインマニュアルに載って無いかな?>>148
>>146
Merge From Current。
開発ブランチから、安定ブランチへのフィードバック
0152デフォルトの名無しさん
NGNGwhileでループまわしといてatomicって凄い感覚だね。
0153デフォルトの名無しさん
NGNGsi,di,bpをいじらなければよし。
0154デフォルトの名無しさん
NGNGgccではそうでもない。
とはいっても esp ebp をむやみにいじるべきではないし、
破壊レジスタをむやみに増やすと最適化阻害の要因になる。
0155デフォルトの名無しさん
NGNG> MFCって?
MFC を知らないやつはバージョン管理したことない, DQN.
0156デフォルトの名無しさん
NGNGん?普通のスピンロックじゃないの?
0157デフォルトの名無しさん
NGNGそこまで言い切れるほどメジャーな言葉じゃない
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGMFCは>>160の意味だし、VisualSourceSafeはMFCという呼び方をしない。
0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG以前にいろいろ目を通したことがあって、
電子とかハード寄りの堅い分野ではわりとまともな割合が多いけど、
ITだとかインターネットだとかパソコンだとかは嘘が目立つ。
編者の肩書きをみるとどことはいわないが教育機関の教官数人がかりで、
ああこういうところで悪貨の再生産をしているんだなあと思ったりした。
0165デフォルトの名無しさん
NGNG今は他のプロジェクトでも普通に使われるのかな。
>>161
何て呼んでるの?
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG「STABLE(か具体的なブランチ名)にマージ」
0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNGソースからビルドできるなら試してみたいけど
0172デフォルトの名無しさん
NGNGよくC言語のコードをアセンブラに出力すると、
sub eax, ecx
neg eax
という感じでsubの後にnegというコードが現れるのを見かけるのですが、
このnegは、いったい何をやってるのでしょうか?
subだけでもよさそうな気がしますが、
C言語の引き算はsubだけでは完結しないんでしょうか?
negは補数の正負を逆点する、とかいう説明を読んだことがありますが、
いまいち意味がわかりませんでした。
どういう場合にnegがないと困るのか教えてください。
0173デフォルトの名無しさん
NGNG少なくとも大学生以上ではないな
今は学校の勉強でもしておきなさい
0174デフォルトの名無しさん
NGNGなぜ引き算を行う局面でそれが必要なのかがさっぱりわからないです。
0175デフォルトの名無しさん
NGNG多分左辺と右辺が逆になってるんじゃね?
b - a;
という式が、何かの要因で
mox ecx, b
mox eax, a
sub eax, ecx
neg eax
という具合に変換されたとか。
つまり
-(a - b)
という解釈だな。
>>173
つーかお前さ、
こんな質問に学校とか関係ない話ではぐらかして
ちゃんと答えないってことはぁ、
なんも説明できねーってことだろ。
じゃ、お前も同類だよ(w
まじめに勉強してこいよ。
0176デフォルトの名無しさん
NGNG>>175
>多分左辺と右辺が逆になってるんじゃね?
やっと意味がわかりました!
今デバッガでやっと確認できましたが、それが正解みたいです。
でも例外なくsubの後にnegが入ってるのが謎ですけど、
これは手抜き工事か何かなのかな…。
とにかくありがとうございました。
>>173
( ゚д゚)、ペッ
0177デフォルトの名無しさん
NGNGそんな偉そうに解説する程の事でも無い。
そもそもアセンブラ弄ってる人間なら
「さっぱりわからない」なんて言う訳ねぇだろ。
っつーか、そもそもお前の例えもおかしい。
学校で習いましたか?(藁
実際に使った事ねぇだろ?
a = ( b - a ) * b; //eax = a, ebx = b
sub eax, ebx ; a - b
neg eax ; -( a - b ) = b - a
mul ebx ; ( b - a ) * b
0178デフォルトの名無しさん
NGNGちょと、今更みっともないですよ?
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNG>( ゚д゚)、ペッ
>( ゚д゚)、ペッ
>( ゚д゚)、ペッ
>( ゚д゚)、ペッ
>( ゚д゚)、ペッ
>( ゚д゚)、ペッ
>( ゚д゚)、ペッ
>( ゚д゚)、ペッ
>( ゚д゚)、ペッ
>( ゚д゚)、ペッ
>( ゚д゚)、ペッ
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNGアセンブラ… ( ゚д゚)、ペッ
でおながいします
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNGアセンブラ… ( ゚д゚)、ペッ ヨンジュン
でおながいします
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGBIOSのサービスを使ってBX * 64の数値を表示させて
やりたいんですがどうすればよいでしょうか?
0191デフォルトの名無しさん
NGNGaレジスタのが速いってことか。そりゃないか
ペアリングとか。そりゃないか
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGBX*64はシフト命令使え。
表示は INT10H でぐぐれ。
0194デフォルトの名無しさん
NGNGnegはNP命令なんでペアリングはぶっちゃけありえないw
0195デフォルトの名無しさん
NGNG直後に eax に値が必要な命令を置くためってのもあるね。
0196デフォルトの名無しさん
NGNGたぶん1パスじゃねーの。
0197旅人達 ◆ahGjnhNBTw
NGNGアセンブリを習いながら早くしてみようと思っています。。
結果をファイル出力したいのですが、C言語のfprintf関数を使おうと思っています。
3つの引数をpushして、call fprintfして、add esp,0Chしようとしたのですが、
MASMでundefined symbolというエラーが出ます。。
外部変数の宣言をすればいのかな、と思いつつもサイトが引っかかってくれません。
どうかお教え願います。。
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNG0200旅人達 ◆ahGjnhNBTw
NGNG0201デフォルトの名無しさん
NGNGVRAMの説明が投げやりで和露他
0203デフォルトの名無しさん
NGNGはっきり言って、その辺に転がってる素数求めるCソースを
コンパイルした方がはやい。
作業的にも、実行速度的にも。
0204デフォルトの名無しさん
NGNG分割アセンブルでぐぐると、適当なのが引っかかると思うが。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGパス増やしてジャンプ短くする程度とか?
0207デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNGMOV [BX],AX
ADD AX,DX
を
ADD [BX},DX
にしてくれるようなアセンブラかのう?
0209デフォルトの名無しさん
NGNGnop
nop
nop
outsb
を
outsb
outsb
にしてくれるようなのじゃないの?
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG俺も同感。>>208は糞。
0213デフォルトの名無しさん
NGNG程度の差はあるが
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGmov ax,si
mov si,ax
を
mov ax,si
に、
mov si,ax
mov si,ax
を
mov si,ax
に換えるくらいはやったけど。
0216デフォルトの名無しさん
NGNGそんなんアセンブラ使う意味ないから高級言語に乗り換えれ。
アセンブラは人が最適化するから意味がある。
機械任せでいいなら苦労する意味すら無い。
0217デフォルトの名無しさん
NGNGハァ?
0218デフォルトの名無しさん
NGNG重要なnopってなんだよw
0219デフォルトの名無しさん
NGNGハードを叩いた事はないのか?
0220デフォルトの名無しさん
NGNGまあ最適化を部分的にON/OFFできるなら何をやってくれてもいいけど
0221デフォルトの名無しさん
NGNGPlayStation初代機にR3000カスタムが積まれているけど、これは遅延分岐を
サポートしていたね。
結局スーパースカラになっていくと遅延分岐は速度向上の足かせになるので
取り払われてしまったが。
0222デフォルトの名無しさん
NGNGあちゃぱー
0223215
NGNGCコンパイラの最適化が甘い部分を改善するためにニモニックのカットをしたわけよ。
0224デフォルトの名無しさん
NGNG「最適化が優れたアセンブラ」
ってのは、アセンブリ言語・ニモニックじゃぁなくて、erだから、コンパイラのことだろう。
>214
fishingか?
>考えてみれば最近のCPUは最適化しながら実行しているようなもんだな。
なんだよこれ。
ハードが最適化するのかぁ?んなアホな。
パイプラインやキャッシュ引きを最適化と呼ぶならお門違いだと思うけど。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGレジスタリネーミングとかOOO実行とかも最適化といえるかもしれない。
0228デフォルトの名無しさん
NGNG後でJUMP命令入れてパッチが当てられるように
NOPで3バイト分確保しておくとかよくやってたな。
0229デフォルトの名無しさん
NGNGこれって大風呂敷でしょうか?
0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1089492835/
でアセンブラとコンパイラの関係についてもめてるから助けてやってよ。。。
0233デフォルトの名無しさん
NGNGああいうのは放置しておけばいいよ
0235デフォルトの名無しさん
NGNG「ああいうの」ってアセンブラ=コンパイラとか言ってる奴だよね?
0236デフォルトの名無しさん
NGNG向こうでやれ。な?
0237デフォルトの名無しさん
NGNG覚えたほうふあいいですか。
0238デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1091724463/336-387
アセンブラの話が出てくるとなぜ荒れますか。
0239デフォルトの名無しさん
NGNGageて荒れそうなネタ振るなヴォケ。
0240デフォルトの名無しさん
NGNGCの関数に入ったところに
push ebp
mov ebp, esp
sub esp, 8
and esp, -16
というコードがあるんですが、
and esp, -16
は一体何をしたいんでしょうか?
and esp, 0xfffffff0
と、スタック位置を256byteアラインメントしているようなんですが・・・。
少々ポインタ操作を誤っても隣の関数のスタック領域を破壊しないようにとの配慮なのでしょうか?
0241デフォルトの名無しさん
NGNGCソース:
int main(void) {
return 0;
}
gcc -S -masm=intel sample.cの出力:
.intel_syntax
.file "sample.c"
.def ___main; .scl 2; .type 32; .endef
.text
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
push ebp
mov ebp, esp
sub esp, 8
and esp, -16
mov eax, 0
mov DWORD PTR [ebp-4], eax
mov eax, DWORD PTR [ebp-4]
call __alloca
call ___main
mov eax, 0
leave
ret
です。よろしくお願いします。
0242240
NGNG0243デフォルトの名無しさん
NGNGただ単にアライメントをとったほうが実行速度が
はやくなるからじゃないの。多分256byteでアライメント
してるのはPentium4のキャッシュラインのサイズを
意識してだと思うけど。
資料がないかIntelのサイトを軽く検索してみたけど
ちょうどいいのが見つからなかった。すまん。
0244デフォルトの名無しさん
NGNGDebugとReleaseでは変わる?
0245デフォルトの名無しさん
NGNGgccなんですが。
0246243
NGNGPentium4のキャッシュラインの話は間違ってるかも
しれん。適当に答えたので無視してくれ。恥ずかしい。
逝ってくる。
0247243
NGNG当たっていると思う。
0248243
NGNGそれ以前は32byteだった。間違って覚えないでくれ。
0249デフォルトの名無しさん
NGNGcygwinのプロローグコード生成のバグだった気がする
無駄な__allocaもあるし
0250240
NGNG書き忘れましたが使ったgccのバージョンは3.2.3(mingw special)で、最適化は無しです。
3.3.3にアップデートしてみましたが吐かれるコードは__allocaも含めて同じでした。
速度的な問題なんですね、ありがとうございました。
0251240
NGNG; Line 1
push ebp
mov ebp, esp
; Line 2
xor eax, eax
; Line 3
pop ebp
ret 0
とても読みやすいです。Cを道具にしてアセンブラを学ぶのには、コンパイラにVCTKを
使ったほうがいいのかもしれません。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG0255240
NGNGCの関数がアセンブルされたらどのようなコードになるのかある程度
知っていないとデバッガでインストラクション実行していっても
わけわかんないので勉強してます。レジスタを監視しても一体
どんな用途でそのレジスタが使われてるのか理解するのも一苦労
ですし。
>>252
あ、これ便利ですね。勉強に使いやすそうです。ありがとうございます。
0256デフォルトの名無しさん
NGNG生成コードを丹念に見るのはいい心がけなのでがんがれ
0257デフォルトの名無しさん
NGNGコンパイラがどういうコード吐くか知ってれば、
Cでの記述でもある程度高速化出来る。
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNGまずこんなボンクラはどんな本に飛びつけばいいのか教えて下さい?
ISBNコードのみで( ´,_ゝ`)
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNGENTER はたしか Pentium のどれかで「普通にBPいじるより遅い」ってことで使われなくなった。
Pentium 4 だと遅くないらしく、Intel Compiler で Pen4 あたりに最適化すると使われたような気がする。
0264デフォルトの名無しさん
NGNG多くの場合速度はPenM < Pen4なんだけど、
PenMに対してPen4の最適化は有効なのかなって。
0265デフォルトの名無しさん
NGNGついでに普通、速度はPenM > Pen4です
0266デフォルトの名無しさん
NGNGIntelの最適化マニュアルにも次のように書いてあるし。
> アセンブリ/ コンパイラ・コーディング規則39 ( 影響ML、一般性M)。一般的に、4 つを
> 超えるマイクロオペレーション(μOP) を含み、デコードが1 サイクルで完了しない複雑
> な命令( 例えば、enter、leave、loop) の使用を避ける。代わりに、単純な命令のシー
> ケンスを使用する。
> 複雑な命令を使用すると、アーキテクチャ上でレジスタの節約になるが、マイクロコー
> ドROM に対するパラメータの設定のために4 マイクロオペレーション(μOP) のペナル
> ティが発生する。
0267デフォルトの名無しさん
NGNGただ、それほどターゲットCPUを絞り込んでチューニングというものに意味があるかは正直微妙
0268デフォルトの名無しさん
NGNG処理に掛かる時間が。
PenM < Pen4ということです
>どっちかというとPenIIIの仲間です
お答えありがとうございました。
0269デフォルトの名無しさん
NGNGなるほどー
SSE2勉強してきます。
0270デフォルトの名無しさん
NGNG漏れの勘違いだったようです。情けない。
0271デフォルトの名無しさん
NGNGいま簡単なOSみたいなの作ってるんだけど
0272デフォルトの名無しさん
NGNGアナログ接続のATAPIならCD再生用パケットを送信すればおけ
0273デフォルトの名無しさん
NGNGCからアセンブラのモジュールを呼ぶこととか、その逆とか。
いっぺん、標準ライブラリ抜きで(main()も使わず)、スタブとライブラリを
アセンブラで書いてみるのがいいな。
とは云ってみたものの格好のスタディケースがこのご時世、ないんだよなー
ROM化コードをCで書いてみるというのはとても勉強になるとおもう。
もちろん、OSのようなものを書き起こしてみるのもね。
じじいのひとりごとすまん。
0274デフォルトの名無しさん
NGNG0275デフォルトの名無しさん
NGNGgo T10
0276243
NGNGhttp://www.cqpub.co.jp/hanbai/books/33/33211.htm
これでも読めれ。
0277デフォルトの名無しさん
NGNGありがとうあんたいい人だ
>>262
サンキュー エニウェイ
0278デフォルトの名無しさん
NGNGLDA,(8000H)
CP7FH
JPZ,300H
すみませんが各行ごとに処理内容を教えてください。
0279デフォルトの名無しさん
NGNGLD A,(8000H) ; Aレジスタにメモリの8000H番地の内容をロード
CP 7FH ; Aレジスタの内容と 7FH を比較
JPZ 300H ; 等しかったら 300H へジャンプ
0280デフォルトの名無しさん
NGNGっつーかスペースくらい入れろや。
0281デフォルトの名無しさん
NGNG簡単なOS書いてみたいんだけど、参考になるリソースは何?
やっぱタネンバウムの本くらい読まなきゃだめなんだろうか。。
0282デフォルトの名無しさん
NGNGありがとうございます。
宿題スレも探したんですが、言語が限定されてるものしか見つからなかったのでここに来ました。
>>280
スペース入れたはずなんですが・・・・
0283デフォルトの名無しさん
NGNG多分スペースでなくてタブ入れたから無視されたんだよ。
0284デフォルトの名無しさん
NGNG>やっぱタネンバウムの本くらい読まなきゃだめなんだろうか。。
スレ違いだが、とりあえず読んどけ。
0285デフォルトの名無しさん
NGNGさくらタン?違うよね・・・
0286七誌
NGNG明日マイコンの試験があるのですが、
CPという命令の意味がわかりません。
Aレジスタと何かを比較するということはわかったのですが、
比較したあとにどうなるのかがわかりません。
くだらない質問かもしれませんが、宜しくお願いします。
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGたいていの実装では
「減算を行うがフラグのみ変化でアキュムレータは変化しない」
…と、さらに>>286を混乱させるよーなことを言ってみる。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG宅地建物取引業主任者試験は、こたえあわせした同じ問題を直後に解いても
合格点ぎりぎりの60点しか取れなくて、本試験は落ちた口だが、
人には向き不向きがあるから、 >>286 には、コンピューター関係は不向きなんじゃないか?
0292デフォルトの名無しさん
NGNGと
レジスタ
は
似ている
0293デフォルトの名無しさん
NGNG| 汎用レジスタ!
\
 ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ ( ´Д` ) < インデックスレジスタ!
( ´Д` ) /⌒ ⌒ヽ \_______
/, / /_/| へ \
(ぃ9 | (ぃ9 ./ / \ \.∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ /、 / ./ ヽ ( ´Д` )< セグメントレジスタ!
/ ∧_二つ ( / ∪ , / \_______
/ / \ .\\ (ぃ9 |
/ \ \ .\\ / / ,、 ((( ))) / ̄ ̄ ̄ ̄ ̄ ̄ ̄
/ /~\ \ > ) ) ./ ∧_二∃ ( ´Д` ) < フラグレジスタ!
/ / > ) / // ./  ̄ ̄ ヽ (ぃ9 ) \_______
/ ノ / / / / / ._/ /~ ̄ ̄/ / / ∧つ
/ / . / ./. / / / )⌒ _ ノ / ./ / \ (゚д゚)レジスタ!
/ ./ ( ヽ、 ( ヽ ヽ | / ( ヽ、 / /⌒> ) ゚( )−
( _) \__つ \__つ).し \__つ (_) \_つ / >
0294デフォルトの名無しさん
NGNGVisual C++上でoffsetを使う場合、
void main()
{
int ver;
__asm{
mov eax, offset ver
}
return;
}
これだと
error C2415: オペランドの型が無効です。
というエラーがでる。
で、
int ver;
void main()
{
__asm{
mov eax, offset ver
}
return;
}
これだと問題ないんだけど、一体どうしてでつか?
0295デフォルトの名無しさん
NGNGpush ebp
mov ebp, esp
mov esp, ebp
pop ebp
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG{
int ver;
__asm{
lea eax,ver
}
return;
}
なら通る
0298デフォルトの名無しさん
NGNGよくわからんが、offsetは#defineみたいな直値に直されるんでね?
スタック上に動的に確保される場合は一意的なアドレスに確定しないからダメで、
グローバルに静的に確保される場合は通る、とか?
0299デフォルトの名無しさん
NGNG自分の書いたとおりに翻訳しないスコンパイラはダメだとおもう。
コンパイルした結果が遅ければ、自分で考える。
プログラモ技術が磨かれる。
やはりこうでなくtへはいけない。
0300デフォルトの名無しさん
NGNGmov eax.offset [ebp-4]
というコードは存在しないので記述できないから
lea eax,[ebp-4]
とかは存在する
0301デフォルトの名無しさん
NGNG日本語ドキュメントの配布は終了しちゃったんでせうか?
0302デフォルトの名無しさん
NGNGftp://download.intel.co.jp/jp/developer/jpdoc/24547103_j.pdf
ftp://download.intel.co.jp/jp/developer/jpdoc/24547203_j.pdf
上から順に上中下
0303デフォルトの名無しさん
NGNGそれのPentium4の新機能に対応したやつありませんか?
あと、Pentium4で拡張された命令のインストラクションコード吐けるアセンブラってありますか?
0304デフォルトの名無しさん
NGNGありがとうございました。
早速ダウソロードしますた。
0305デフォルトの名無しさん
NGNGhttp://www.intel.com/jp/developer/download/index.htm
ここから探してくれ
0306デフォルトの名無しさん
NGNGADC EAX, 0
と
RCL EAX, 1
ってどっちが早いかな
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNGCPUによって違う
0310デフォルトの名無しさん
NGNGAthlonXPとPen3だとどうですか。
つかIntelの3つのPDFにクロック数掲載されていないのは不便ですね
0311デフォルトの名無しさん
NGNGクロック数だけを説明することは困難。
ちなみに adc eax.eax がいちばん命令長が短いと思われ。
0312デフォルトの名無しさん
NGNG自分は大して詳しくもないアマチュアなので間違っているかもしれないが、
加減算よりシフトやローテートの方が速いCPUなんてのは聞いたことがない。
某有名コンパイラは128倍の計算で7bit左シフトではなく加算を7回するのだそうな。
0313デフォルトの名無しさん
NGNGADC mreg8,reg8 10h 11-xxx-xxx DirectPath Latency:1
RCL mreg16/32,1 D1h 11-010-xxx DirectPath Latency:1
0314デフォルトの名無しさん
NGNGADC mreg16/32,reg16/32 11h 11-xxx-xxx DirectPath Latency:1
0315デフォルトの名無しさん
NGNGAthlonXPとPen3の場合、
実行クロック数から言うと、どれでも同じ。
命令長では adc eax,0 は3バイト、rcl eax,1 は2バイト、
adc eax,eaxは2バイト。命令長の短い命令を選択した方がベター。
また、Pen3の場合、シフト演算器は1つしかないので、rclよりadcの方がいい。
>>312
それはPen4(Prescottコアを除く)の事ですね。シフトより加算の方が圧倒的に速い。
ただ、キャリーが絡むと話は逆転し、
Pen4の場合、adcよりrclの方が速い。
またadc eax,eaxよりadc eax,0の方が速い。
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNGパイプラインとかキャッシュとかの関係ですか
>>312
アセンブラリスト出力の仕方を忘れていて出力に手間取りましたが
DWORD Multi128(DWORD dwBaseData){
return dwBaseData*128;
}
なんていうのは、VisualC6リリースモードで
; Line 1311
mov eax, DWORD PTR _dwBaseData$[esp-4]
shl eax, 7
; Line 1313
ret 0
となってますた。@あすろんえくすぴ
0318デフォルトの名無しさん
NGNGなるほど・・・。無理にサイズ増やす必要ないですね。
演算器の数とかまで考慮する必要があるとはなかなか奥が深い。。。
0319デフォルトの名無しさん
NGNGVisual C++のコンパイラは古いよ。
最新版のコンパイラに差し替えて、Pentium4用に最適化してみると、結果が違うかも。
0320デフォルトの名無しさん
NGNGレイテンシが大きくなる。3 またはそれ以下の左シフトの場合は、add 命令のシーケンス
の方がレイテンシが小さい。固定シフトと可変シフトのレイテンシは同じである。
0321デフォルトの名無しさん
NGNGニーモニックなんかはわかったのですが、上手く例題等を実行出来ず、
何が悪いのかさえもさっぱりです。
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG卑下とは自分を下げる、すなわち謙譲的な概念だよ
蔑む・蔑視とはちょいと違う
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGクソレスで埋めんなよ
つまんねえ奴
0328デフォルトの名無しさん
NGNGx86っていくら最適化しても専門分野に使われるCPUとは別物なのが
かなりものすごい勢いでかなしいぃ、せるコンピューティングとかはまた別かな?
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGテストが最悪で 恥ずかしさのあまり死んでしまうこと。
0331デフォルトの名無しさん
NGNGっと。
0332デフォルトの名無しさん
NGNG問題はソフト面
i386やZ80だって専用プログラムさえ組めば
ミサイルを目的地まで自動操舵するくらい出来るんだし
0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG「環境がそれしかねえ」ことだし
0336デフォルトの名無しさん
NGNG普通に調べたら分かると思うが
スカッドミサイルがi386、トマホークはZ80
ネタではなくマジの話
0337デフォルトの名無しさん
NGNGZ80でよく地形分析しながら飛べるもんだ
0338デフォルトの名無しさん
NGNGこんなトリビア知らなくても無理はないが……。
トマホーク就役は1983年。開発開始は70年代。
誘導方式は慣性航法(INS)と地形等高線対照(TERCOM)。
地形等高線対照ってのは自分の直下の高度をずっと測定して、記憶した地図と
つきあわせながら飛ぶんだよ。
ちなみにミサイル本体とはずれるが新しいタクティカルトマホーク火器制御シス
テムの開発プロセスはCMMのレベル5で実施され、30%の生産性向上、20%の開発コ
スト削減、15%の不具合修正コスト削減ができたそうだ。
0339デフォルトの名無しさん
NGNGIntelのサイト以外で何かお勧めの本とか無いっすか?
0340デフォルトの名無しさん
NGNG0341339
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4535605025/qid=1096743279/sr=1-4/ref=sr_1_10_4/249-8161173-5159533
これだな?
よっし、明日本屋で見てくる。
0342デフォルトの名無しさん
NGNG,、-'´ `ヽ、
___/ _\ \
/ // /  ̄`ヽ、 ヽ
/ レi // / /ハヽ \ヽ |`iー 、
// |ヾ r//i / / / ヽヽ ヾi V ヽヽ
// /| `7 |_|_L _/ / / | | |l |//! ゙i ゙i
// / |三|'´| | || | /| / -─!ト!、|| |/ | | |
| || / l>-|、rァ〒ヾ|/ |.! __,リ⊥ リ|彡/! |! |
| || | |⌒l` |‐':::::::| l、_j::::::iゝr‐vi|| |ト、',
',ヽ! | ト、∧ ー---' |::::::::ノ '/ / || || ヾ.、
\! | | | | |‐! , j  ̄` /- ' ', ト、 \ / ̄ ̄ ̄ ̄ ̄=P ̄ ̄ ̄ ̄
ヽト、! ',ヽ! \ ー_- /^i | ヽ、 | \ `ー < お兄ちゃん、これは罠だよ
\ヽミ ゙ヽ、 ,、-' ´ j/ ヾ-、ヾミー \__________
`` _|`` ー ' ´ ト--、_ r‐、| r‐v--、
__,、-‐'´ | / >ー-、 \\l‐、ヽ |
rくヽ |--──/ // ̄ ヽ し! | ヽ |
/ ヽヽ |rv'l / ,、-'´/ ヽ-/ /
./ ヽヽ |`=/-‐'´,、-' ´ / / /
/ _ヽ.|_/__∠/ / く`ー─‐' ´/
∧ | く =しヘ / i ノ } _/7
0343デフォルトの名無しさん
NGNG>>341
ゲーデル,エッシャー,バッハ―あるいは不思議の環
もオススメ
0344デフォルトの名無しさん
NGNGアセンブラでポログラムするのって需要がありますか。
0345デフォルトの名無しさん
NGNG>シフトより加算の方が圧倒的に速い。
どうゆう設計をすれば、そんなことがおこるのだろう
0346デフォルトの名無しさん
NGNG>>315に書いてある通りではないかと
0347デフォルトの名無しさん
NGNGrcl A,数値
で 数値ぶん 内部でループするのでないかな。
1ビットシフトの命令だけにしとけばよかったのにね
0348デフォルトの名無しさん
NGNG加算はALUバイパス・ループを通るので、高速処理されるが、
シフトはALUバイパス・ループを通らないので、
通常のパイプライン段数分(4サイクル)かかってしまうってことかも??
http://www.intel.co.jp/jp/developer/technology/itj/2001/q12001/articles/p05_microarchitecture.htm
> Pentium 4 プロセッサでは、完全な依存関係にある ALU 演算をメイン・クロック・レートの2倍速で行うことができます。
> ALU バイパス・ループはプロセッサ・パイプラインの中でも重要な意味を持つクローズド・ループです。
> 典型的な整数演算プログラムでは、μop 全体の約60〜70% がこの整数 ALU ループを使用します。
http://www.intel.co.jp/jp/developer/technology/itj/2001/q12001/articles/p04_clockrates.htm
> 図3:分岐予測ミス時のパイプライン
RF(レジスタファイルリード):2サイクル
Ex(実行):1サイクル
Flgs(フラグ計算):1サイクル
Pentium4ではこれら4サイクルかかる処理を、Pentium3ではExec(実行)の1サイクルで処理してしまう。
0349デフォルトの名無しさん
NGNG昔から加算よりシフトのほうが重かった。
1クロックで加算をする回路は簡単に作れるけど、
1クロックでnビットシフトする回路は簡単には作れない。
ゆえに、1ビットシフトする回路をnクロック動かすのが現実的。
先輩が嘆いてた。
回路のことを気にしない純粋な情報系の学生さんが、
ファンアウト数を気にせずにロジックを組み合わせて、
それが何故いけないのか理解してくれないと・・・。
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNG日本だけじゃないけど
熱心に教えてるのはマレーシアや台湾、インドくらいなもんじゃないか
0357デフォルトの名無しさん
NGNG>ファンアウト数を気にせずにロジックを組み合わせて、
ファンアウトか。
懐かしい・・・(遠い目)
0358デフォルトの名無しさん
NGNGシフト数でmultiplexすればいいじゃーん
0359デフォルトの名無しさん
NGNGてかCしか教えない
自分で勝手に勉強するから別にいいんだけど
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNGディジタル回路でも中身はアナログ回路なので、
アナログ回路のことを全く無視してはいけないよ、
というのがファンアウトの話。
0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNGへぇー
0368デフォルトの名無しさん
NGNGファンアウトってそのことだよね?
0369デフォルトの名無しさん
NGNG逆じゃないか?
0371デフォルトの名無しさん
NGNGWinXP環境下で例題を実行しているものを探しているのですが
0372デフォルトの名無しさん
NGNG一応アセンブラの本。
0373デフォルトの名無しさん
NGNG『ウチじゃ必要ないんだよね。いまどき出来ても意味ないし』
上っ面だけ見て知った気になってる奴には必要ありませんねとしか
0374デフォルトの名無しさん
NGNGプログラマやゲーム解析者の間でクソミソに叩かれている本ですね。
筆者はネトランのライターで、本の半分はインテルのアーキテクチュアマニュアル丸写し、
他の部分も間違いだらけという凄い内容だそうで。
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG>アマゾンでぼろくそに言われてるので踏みとどまりました。
良かったですね。ゲーム解析スレでは、この本の購入者を「被害者」と呼んでますよ。
それと、アセンブラで何をしたいのかを詳しく書いた方が良いかと。
0379デフォルトの名無しさん
NGNGまず作者が評価書いて、周りにけなされ始めたんで焦ってまた自演でフォロー入れたってのがバレバレな感じですな
0380デフォルトの名無しさん
NGNGうまいこといきません
0381デフォルトの名無しさん
NGNGゲーム解析スレってどこの板に有るの?
心当たり探したけど見つからんorz
0382デフォルトの名無しさん
NGNGMS-DOS上で学習を進めていく設定だけど、
XPのコマンドプロンプトにもDEBUGコマンドはあるから、それでよくない?
アセンブラはMASMとかNASMとか色々あるし。
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG8ビット時代はROMに入ってるマシン語モニタを使うしかなかったから使ったけど・・・
DOS時代はCode ViewとかTurbo Debugger使ってたよ。
良いデバッガを使うことが、習得のしやすさに繋がると思うよ。
0385デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNGこの本は参考にせず独習しろという意味のサブタイトルなんだろうな
0387デフォルトの名無しさん
NGNGまあ橋本和明じゃな・・・。
0388デフォルトの名無しさん
NGNG>>385を読んだやねうらおさんが、その内容のあまりの酷さにあきれて、
「解析魔法少女美咲ちゃん」の執筆を決意したとのこと。
>まあ橋本和明じゃな・・・。
問題のあるライターのようですね。他所でも文章のパクリを指摘されていたし。
0389デフォルトの名無しさん
NGNGどちらも、あまり面白くなかったけど。
0390デフォルトの名無しさん
NGNG禿同、どっちも酷かったけどな
0391デフォルトの名無しさん
NGNGとんでもない糞本を買っちゃったりしてショックを受けたりする。
書評が絶対評価でない証拠かな。
やっぱり、その本を実際に手に取って調べてから買うほうが外れを引かないかも。
0392デフォルトの名無しさん
NGNG糞本は火にくべてやれ!
0393デフォルトの名無しさん
NGNG昔北朝鮮を楽園だと著書で賛美した某教授は
古本屋で著書を回収するのにやっきになっていたらしい……。
0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNGだな、あまりの酷さにあきれた割には呆れるなw
0397デフォルトの名無しさん
NGNGまともな本のような書名と壮丁にすんなよ、まったく。
0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNGゲームの解析本としても役に立たないし・・・
0401デフォルトの名無しさん
NGNGttp://book.mycom.co.jp/book/4-8399-0986-5/4-8399-0986-5.shtml
これだな。これでCPUの構造と動きをマスターすべし。
0402デフォルトの名無しさん
NGNG意外に良書だな
OUT B
や
OUT Im
があるのに
OUT A
が無いんだよね。
変わりに、裏命令で、
OUT (A+Im)
が有ったりする。(謎
0404デフォルトの名無しさん
NGNGそれ、至る所で良書に分類されてるな。
自分も買って読んだけど、買ってよかったと思ってる。
0405デフォルトの名無しさん
NGNG意外に良書だね、まぁ正直なくてもいいけどw
0406デフォルトの名無しさん
NGNGCPUの創りかた
http://www.amazon.co.jp/exec/obidos/tg/detail/-/books/4839909865/customer-reviews/ref=cm_cr_dp_2_1/249-1561698-9936349
いまどきのアセンブラプログラミング
http://www.amazon.co.jp/exec/obidos/tg/detail/-/books/4839912025/customer-reviews/ref=cm_cr_dp_2_1/250-5945935-1227452
0407デフォルトの名無しさん
NGNGhttp://www.cqpub.co.jp/try/bk2003a.htm
0408デフォルトの名無しさん
NGNG何やってんだよまったくw
解析魔法少女美咲ちゃん
これ書いた奴吊って来い
0409デフォルトの名無しさん
NGNG"いまどきのアセンブラプログラミング"のレビュー、
本の内容ならまだしも紙の質までも文句言われてる所にワロタ。
0410デフォルトの名無しさん
NGNGそうすれば、国内の科学技術教育の向上になることは確かだろう。
(もちろん、表紙やイラストそのままで)
CPUの創りかた
ttp://www.amazon.co.jp/exec/obidos/tg/detail/-/books/4839909865/
0411デフォルトの名無しさん
NGNGだな。
>401の本は、他の数ある(難しく書かれているものも含め)CPU本の中でも、プログラムのOPコードの0/1を受け取って、制御信号ON/OFF(0/1)を作る命令デコーダを作成しているところに格段の違いがある。
しかも、命令デコーダを、状態遷移図からステートマシンに持っていく、ASICのようなプログラムで組むのではなく、
しっかりとワイヤードロジックの回路で組んでいる。
これは、今も昔もCPUでは変わらないはず。
この辺に、この本が、アニメチックでも、内容がCPU製作入門のバイブルに成り得る理由がる。
実際のCPUの場合には、EDAツールで、回路図作って、レイアウトにして、レジストーエッチング回数分のフォトマスク層ごとにLAYER分割して、GDSファイルとして出して、
次に、フォトマスク描画装置用のMEBES等のファイルに変換し、ポリゴンなどを微修正し、データを描画装置に投入して、マスクを作る。
そのマスクをネガポジにして、ウェハーに焼き込む(ステッパー)。ちなみにマスク製造もステッパーも超縮小プリントになる。
>(もちろん、表紙やイラストそのままで)
は、別として・・・w。まァ、コレが無いと文章がつながらなくなると思うが・・・。
0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNGその後の16bitで採用され始めた、複数のアドレス指定方式、ページセグメント方式、パイプライン、キャッシュ引きを含めた予測機構、
現在のGHzオーダへの高速化のレイアウト(実配線)・半導体構造までには、開きが大きいだろうな。
この部分も2chで語れる位に技術的に土台ができないと、INTELには追いつけない。
0414デフォルトの名無しさん
NGNG確かに。
あと、思ったのは英語に翻訳して海外進出もいいと思う。
Japanimationも流行ってるしw、結構うけるのでは?
いい線行くと思うよ。
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNGそういうものは、応用的な話では?
まずは、基本から。
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG微妙に違うぞ。
インテルはCPUを、日本の企業の金で、その企業から出張してきた日本人が作った。
0420419
NGNG「嶋正利」で検索しる!
0421デフォルトの名無しさん
NGNG誤解の無いように、知識を身につけましょう。
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNG確かに。
まぁ、日本でも大企業が、パイプラインや2命令同時実行(スーパースケーラ)を作っているから、まぁそれほど杞憂するほどでもないかな。
>416
多分、CPUの作り方から、8080互換とか作るなら、
・コントロール信号を外部に引き出す為のコントロールレジスタ、もとい、これにビット立てる為のデコード→0/1制御信号回路。
・割り込みコントロール機構、割り込みレジスタ、割り込み(マスク)フラグレジスタ、、次アドレス保持用のスタック機構がいるな。
まぁ、これは「CPUの作り方」のを製作できて、多少ベンキョすれば、8080のINT,HALT(HOLD?),NMI辺りで数が少ないし、
割り込み許可不許可は、割り込みレジスタのビット立ったのと、マスクレジスタの値をANDを取れば済むことだし、それにより、ベクタ指定のエンコードは、デコーダ同様にやればできる、それをプログラムカウンタに入れてやってアドレス飛ばせばいい。
スタックへのアドレス退避、戻しは、INT命令デコードと外部割込み(ピンアサート)のデコードが要る、上記のベクタ機構も含めて。
0425デフォルトの名無しさん
NGNGRAMアクセスは
0426デフォルトの名無しさん
NGNGそれが、コントロールレジスタ(bitごとにR/W,・・・ワスレタ、が立つ)。
このコントロールレジスタが、アドレスレジスタ、データレジスタ同様、外部のピンに出ている。
コントロールレジスタにビットを立てる制御信号0/1も命令デコーダで作る必要がある。
あと、>424の追補で、x86はスタック操作にALUを使用するらしい。
http://www.watch.impress.co.jp/pc/docs/2002/0913/kaigai02.htm
どういうやり方やってるのかは知らないが、スタックというのは容器であり、先入れ後出しになるから、
その各レジスタをレジスタごと順次シフトの計算に使っているようだ。
けど、ここに書かれてるDedicated Stack Managerのように、単独で、スタック操作のデコード回路作るのがやりやすいはず。
0427デフォルトの名無しさん
NGNG8レベルのハードウェアスタックを実装する配線がウザいかもしれないが。
0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNGだな。入門としてはモッテコイだ。
>427
PICはシンプルだからな。
シンプルさの由縁は、条件ジャンプは、1ステップジャンプでプログラムカウンタを2回回せばいいからだと思うが。
通常は、条件ジャンプ命令の尻尾の飛ばし先アドレスをつかませて、それをプログラムカウンタに入れるのが多いけど。
8080でも、命令セットがぴったり合えば、コンパチブル(互換)はいくらでもできるよ。
内部の構造・アーキテクチャはヨリドリミドリだ。
ペリフェラル(外部)素子との信号やり取りも、セットアップ・ホールド時間が合えばいい。
きつければ、clock自体を落として、ペリフェラルもろともスピード落としてやればいい。
0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNGなぜ?汎用IC使って、CPU作ってもかい?
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNGあと、PICは命令のアドレス方式(アドレス指定方式じゃない)が最大2アドレス指定で、
OPコード 第一オペランド,第二オペランド
しかも、演算や操作の相手は、ALUのコバンザメのアキュームレータ(PICの場合Wレジスタ)と決まっているからな〜。
OPコード f,Wの場合は汎用レジスタとWレジスタを計算し結果はWレジスタに置いたまま。w移動するにはmovしてやらないといけない。
OPコード f,selfの場合は、汎用レジスタとWレジスタを計算し結果は汎用レジスタ。コレはステップ数が一番多い方か・・・。
汎用レジスタ同士は演算できない。従って、命令デコーダも単純化できる。
ステップ数が少ないのがPICの特徴だな。
0436デフォルトの名無しさん
NGNGあと、
>2アドレス指定
も間違えた。
>2アドレス方式
だね。
0437デフォルトの名無しさん
NGNGレジスタ間接アドレス指定でしたっけ?
エト・・、ポインタ操作のアドレス参照にぴったりマッチしてるなぁと思って>レジスタ間接アドレス指定。
0438デフォルトの名無しさん
NGNG仮想大賞----------------------------------
べれっべーべッ
べれべーれッ
べれっべーべッ
1番、アドレス指定-------ッ(カン高い声)
ビロビロビーン
0439デフォルトの名無しさん
NGNGプロテクトモードでは、セグメント・ベース・アドレス指定(ベースアドレス指定)でした。
ttp://sano.s20.xrea.com/history_of_cpu_compatibility01.html
8086等のリアルモード(x86のDOS起動の場合)は、
インデックスレジスタがあるので、インデックスアドレス指定のようです。
ttp://www79.sakura.ne.jp/~third/programming/asm/assembly.html
0440デフォルトの名無しさん
NGNGプログラム、次の行のSTOPは、
エグゼキュート(実行)サイクルが終わって、次の行の命令フェッチサイクルに入ろうとする時に
内部CLOCKを止めればよいのかな?
0441440
NGNG内部CLOCKを止めればよいのかな?
ではなく
命令フェッチサイクルに移行しようとする内部制御信号に対し
内部CLOCKを止めればよいのかな?
内部同期の場合ですけど。
です。
0442デフォルトの名無しさん
NGNG迷惑だ
0443デフォルトの名無しさん
NGNGいい加減にしろ
0444デフォルトの名無しさん
NGNGいい加減もクソもないだろ(w
0445デフォルトの名無しさん
NGNGハードの話はスレ違いかつ板違い
0446デフォルトの名無しさん
NGNG自治厨の発言こそが一番無駄
0447デフォルトの名無しさん
NGNGCPUはブラックボックスとして扱うこと。
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG生ぬるぽっくり見守りたいと思います
0450デフォルトの名無しさん
NGNGガッ
0451デフォルトの名無しさん
NGNGスーパー301条か?!
0452デフォルトの名無しさん
NGNG( ゚∀゚)彡 おっぱい!おっぱい!
( ⊂彡
0453デフォルトの名無しさん
NGNG#昔COMP-Xエミュレータを作ったのは内緒。
0454いなむらきよし
NGNG0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNG出来ない奴の方が少ないと思う
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGmovだと何か問題があるとか?
0464デフォルトの名無しさん
NGNG・命令のバイト数が少ない
・最近のCPUはxorによるレジスタクリアのための特別なサポートがある
0465デフォルトの名無しさん
NGNG普通にそれぞれのゲート使ったほうが部品数も少ないだろうに
0466デフォルトの名無しさん
NGNG> どうしてICって全部NANDの組み合わせでできてるの?
できてません。
0467デフォルトの名無しさん
NGNG昔はNANDだけで構成されていた。
NANDだけでどんなロジックでもできる。
>465
NANDが一番Trの数が少なく組めるから。
0468デフォルトの名無しさん
NGNGなんか勘違いしてないか?
0469NANDの構造を教えてやろう!クェックエッ
NGNGVdd
|
ーーーーーーーー
| |
A→oPMOS.|→oPMOS
| | | |
| |ーーーー.)ーーーーー出力
| | |
| | |
|→NMOS |
| |
|ーーーーー
|
B→NMOS
|
GND
で、MOS2個でできるんだよ。
0470デフォルトの名無しさん
NGNG正確には、
「C-MOS2つでできる」
であったな・・・。
0471デフォルトの名無しさん
NGNGトランジスタ数の話はTTLの方では?
0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNGんな、こたーない。
まず、疑問に思った理由を書け。
0478デフォルトの名無しさん
NGNG0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNGインテルのCPUはloopが遅いので使われないみたい
でもAMDのloopは速いらしい。
>>479
ここにあるよ
ttp://www.microsoft.com/japan/msdn/vstudio/downloads/ppack/download2.asp
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNGうえにかいてあるやんw
0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNGAMDのloopはVectorPath命令で遅いよ。
AMDの最適化マニュアルにも使うなって書いてあるし。
0485デフォルトの名無しさん
NGNGをクアドレジスタ使ってどうかくの?
8バイト単位でコピーするからはやい?
0486デフォルトの名無しさん
NGNGNAND自体のトランジスタ数が少なくても
ANDやOR、NOT、NOR、XOR等表現するのにNANDが何個もいるから
結局トランジスタもその分何倍も必要になる、つまり無駄だろ?
0487デフォルトの名無しさん
NGNG釣りだと言ってくれ!
0488デフォルトの名無しさん
NGNG>>465 >>467 >>469 これらは自作自演厨だからかまうな
0489デフォルトの名無しさん
NGNGK7,K8は遅くなってしまったようです。
0490デフォルトの名無しさん
NGNGありがとうう
でもアドミニじゃないからインスコできない_| ̄|(´Д`;)
0491デフォルトの名無しさん
NGNG別にインストせずとも、解凍ソフトでml.exeとml.errを取り出せばいい
0492デフォルトの名無しさん
NGNG何か変換ツールってあるのでしょうか?(MASMならVCのコンパイルオプション
を変更すればいいのでしょうが…)
またttp://www.yuasa.kuis.kyoto-u.ac.jp/~nobu/study/nasm/nasm.html
以外にNASM関係の参考になるHP教えてください。
0493LettersOfLiberty ◆rCz1Zr6hLw
NGNG0494LettersOfLiberty ◆rCz1Zr6hLw
NGNG0495Dust
NGNG0496デフォルトの名無しさん
NGNG0497Dust
NGNG0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNGさぁ、好きなのを選ぶが良い
http://www.vector.co.jp/vpack/filearea/win/prog/asm/index.html
0500Dust
NGNG0501Dust
NGNG0502デフォルトの名無しさん
NGNG0503デフォルトの名無しさん
NGNGRTA
http://ibiblio.org/paulc/rta/
0505Dust
NGNG0506Dust
NGNGどちらもForbbidenじゃねーか。氏ねよ!
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNGおまえ、どんな環境でアクセスしてんだよ。
学校の串に弾かれてるんじゃねーか?
プププ
0509デフォルトの名無しさん
NGNG0510Dust
NGNG0511デフォルトの名無しさん
NGNG0512名無し@google
NGNGぐーぐるだよさいきょうつーるけんざん。
0513デフォルトの名無しさん
NGNGhttp://www.goo.ne.jp/
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNG無論、有名なほうに引き渡すべし、なんて方針も無かった。
# そーいやnhk.jpって空いてんのか?ひきこもり協会で押さえてやるか
0518デフォルトの名無しさん
NGNG0519492
NGNGレスどうもです。
勉強のためにNASMで吐き出せる物を探していたんですが、
どうやらないようですね。
0520デフォルトの名無しさん
NGNGトランジスタ数はその通りなんだが
けっきょくNANDに統一したほうが作るのが簡単なんだな
マスクやパターンのレベルで
0521ほんたま
NGNGだがまだバグはある。それにまだダイアログひとつしかつくれん。
2つ以上つくろうとすると、どっかデータがおかしくなっちゃうのだ!自分じわかるか?
だが、ダイアログひとつだけなら、ほぼ問題なくつくれるようにはなった。ほぼな…
おみゃ〜らよ、物事は何事も一歩一歩着実にだぞ!あせりは禁物だぞ!
現時点でここまで出来れば上出来すぎるぞ。おみゃ〜らよ!おりは神かもしれんな…♪
自分じわかる?
0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNGアセンブラでタブブラウザは作れますか?
COMにアクセスできるなら何とかなると思うのですが。
0524デフォルトの名無しさん
NGNG完成品が出来てから来い。
0525デフォルトの名無しさん
NGNGCALLに置き換えていけば出来ると思う
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNGint16→0xDC 0x16
みたいな機械語と対になってる表みたいなのが欲しいのですが…
0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNGcd 16だろ
0530デフォルトの名無しさん
NGNGありがとうございます。
intelのホームページで探してきます…ってintelの鯖おちとるがな!!
0531デフォルトの名無しさん
NGNGftp://download.intel.co.jp/jp/developer/jpdoc/24319102_j.pdf ( PDF )
ftp://download.intel.co.jp/jp/developer/jpdoc/24319202_j.pdf ( PDF )
この三つのファイルがintelのホームページから削除されているんですが
どうしたらよいでしょうかね…
探し物はこれ?
ftp://download.intel.co.jp/jp/developer/jpdoc/24547003_j.pdf
ftp://download.intel.co.jp/jp/developer/jpdoc/24547103_j.pdf
ftp://download.intel.co.jp/jp/developer/jpdoc/24547203_j.pdf
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG自分で作ったとても短いプログラムを、
gcc -S で出力して、一行ずつ読もうとしてるのですが、
andl がどういう働きなのか分かりません。
Googleでも解説ページが見当たらず、、
とりあえず、gccが作成するアセンブリコードを読みたいのですが、
どのあたりを調べれば分かるのでしょうか、、、教えてください。
0536535
NGNGなぜそこでAND命令が出るのか不思議で、
ANDではないだろうと考えてました・・・
内容としても>240さんとまったく同一だと思います。
0537デフォルトの名無しさん
NGNGスタックって、大きな番地→小さな番地に向かって進むので、
ANDで下位ビットを0に丸めると、キリのいいところまでゴミを積むのと同じ効果があるんだよ。
0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNGttp://and.intercon.ru/
0540デフォルトの名無しさん
NGNGpro以上に付属するとあったのですが無料では無いでしょうか・・・
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNGp://www.intsys.co.jp/tools/cgb/sdk/archive/cgb_sdk991026.exe
もしかして↑これ?ダウソしたけど勇気無くてダブルクリックできない…
0543LettersOfLiberty ◆rCz1Zr6hLw
NGNGゲーム機専用アセンブラなんてどうするのだ?
もしかしてロムでも作ってくれるの?
Re:>542 404だった。
0544デフォルトの名無しさん
NGNG0545LettersOfLiberty ◆rCz1Zr6hLw
NGNG0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNGコンパイルしたコードをAMDのCPUでどうさせたいのですが、方法は無いでしょうか?
0548デフォルトの名無しさん
NGNGC++ソースにこれを追加する。
extern "C" void __intel_proc_init_N() {}
extern "C" void __intel_proc_init_B() {}
0549デフォルトの名無しさん
NGNGしかし、リンカで
libirc.lib(proc_init.obj) : error LNK2005: ___intel_proc_init_N はすでに
test.obj で定義されています
libirc.lib(proc_init.obj) : error LNK2005: ___intel_proc_init_B はすでに
test.obj で定義されています
と出てきて、はねられてしまいます。
0550デフォルトの名無しさん
NGNG/QxN や /QxB つけてもはねられる?
どうしてもはねられるなら、/link /FORCE を付けてみて。
0551デフォルトの名無しさん
NGNGうまく行きました。ありがとうございます。
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNGなめんなハゲ
「Z80?なにそれ?Z32なら知ってるけど」
とか言う奴を原子炉の中に叩っ込んで
そのついでにチェレンコフ光を見てやりたいくらいである
0555553
NGNG0556デフォルトの名無しさん
NGNGそれともZ80で動く別のCPU用アセンブラを作ってるんだろうか。
0557デフォルトの名無しさん
NGNGフルアセンブラではないけど
0558デフォルトの名無しさん
NGNGあぁ、Z80/8085/8080用のアセンブラも作ったわさ。
N88Basicでw
0559デフォルトの名無しさん
NGNGZ80のディスアセンブラとデバッガを作ったことがあるじょ。
デバッガの関数名はもちろん「DDT」にした。
0560デフォルトの名無しさん
NGNG0561デフォルトの名無しさん
NGNGそれって、懐かしのゲームをエミュレータ方式で忠実に移植しちゃいましょう、って奴ですか?
0562デフォルトの名無しさん
NGNG0563ほんたま
NGNGおみゃ〜らよ、リソースエディタ2つ以上つくれるようになったぞ。不完全ではあるがな…
おみゃ〜らよ、サンプルのDaialog.asmをビルドすると、2つあるダイアログのうちのひとつが開き問題ないように見える。
だがこりはリソース内部ではデータ
がまだどっかおかしくなっているのだ。だからいろいろいじくるとボロが出てくる…
おみゃ〜らよ、もう少しデバッグしなけれなならんようだ…
だがここまでくるとおりはもはや神だな♪
だがおみゃ〜らよ、おりは次のメニューの作成に移ってもいいかな?どうじ?
メニューをつくりながら、ひまを見てはダイアログをあとちょっとデバッグするという路線でいこうと思うのよ。自分じどうか?
0564デフォルトの名無しさん
NGNGいまさらながらのお返事ですが(汗
ありがとうございます。
現在APIC(Advanced Programmable Interrupt Controller)の挙動を調べるために
いろいろ書籍等をあさっているのですが。やっぱりIntelオフィシャルの英語マニュアルしか
情報は無いんでしょうか…
APIC周りが詳しく書かれた日本語のWebや本等ありましたら、どなたか情報をください。
お願いします
0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG8259 picで検索すりゃいくらでも出てくるだろ
0567デフォルトの名無しさん
NGNGこっちの方がいいかもね(ほとんど変わらないとは思うが)。
extern "C" int __intel_cpu_indicator;
extern "C" void __intel_cpu_indicator_init() {__intel_cpu_indicator = 0x200;}
しかし、スレ違いだな…。
0568デフォルトの名無しさん
NGNG関数の先頭アドレスは、やっぱり境界を4バイトや8バイト毎に揃えた方が
効率が良くなるのでしょうか?
今作ってるやつは何も気にせず隙間なしで詰めちゃってますけど。
0569デフォルトの名無しさん
NGNGラベルのジャンプ先もあわせないとたぶんあまり効果がないですよね。
これはリンカの仕事じゃないですけど。
0570デフォルトの名無しさん
NGNGターゲットCPUが判らないとなんとも言えませんが。
例えば86系でも8088は2バイト境界ですら無駄。
0571デフォルトの名無しさん
NGNGによると、
>命令のフェッチはキャッシュから16バイト単位で行われるため、
>ジャンプ先の最初の命令が16バイト境界をまたがないようにする。
(486の場合)
とあるので、関数とラベルは16バイトの境界合わせをするのが良い?
でも16バイトって結構長いですよね。
最長15バイトも穴埋めが必要ですが、全部nopで埋めて良いんでしょうか。
(nop自体もクロックって掛かりますよね?)
Pentium以降だとまた事情が変わってくるみたいですが、
Pentium3と4に限ると、何が最適でしょうか。
0572デフォルトの名無しさん
NGNGすいません、Pentium3以降で効率が上がれば良いです。
0573デフォルトの名無しさん
NGNGPage 2-7 「コード」
ftp://download.intel.co.jp/jp/developer/jpdoc/24896606_j.pdf
Page 2-65 「NOP」
Pen4はトレースキャッシュの為、コードのアライメントを揃える必要はない。
0574デフォルトの名無しさん
NGNG以下の部分をReleaseモード時のみ通らなくなります。。
どうしてなのかお知りの方、お教え下さい。。
mov eax , 適当な数
mov ebx , 10
mov edx , 0
div ebx
add edx , 48 //'0'
→ mov byte ptr [edi], dl ←ここで止まります。
ちなみにeaxの数の下一桁をとって、文字列に変換しようとしています。
hensu = '0' + (num % 10); というイメージです。
よろしくおねがいします。。
0575デフォルトの名無しさん
NGNGウホ、ウホホホホウホ
おやおや、ゴンタ君もおおはしゃぎですね
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNGediの初期化部分も晒せ
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNGコンパイル時に止まりそうにないが
0581574
NGNG止まった時にデバッグを開くとediに20が入ってました・・・
でもデバッグモードで1行ずつ進めていくと値が入ってるんです。。
というか・・・今関数の先頭行で引数をprintfしたら、
2回目の呼び出しでediに入れる変数のポインタが20になってました・・・>_<;
すいませんもういっかい見て出直してきます。。
0582デフォルトの名無しさん
NGNGだれか説明してや(ry
0583デフォルトの名無しさん
NGNGediってのは拡張レジスタだから使うときは宣言しないとだめだよ
0584574/581
NGNGネットで見よう見まねでやってたものですから。。
まず本屋さんにでも行ってきますw
0585デフォルトの名無しさん
NGNG意味不明のこと教えるなうすの炉
0586デフォルトの名無しさん
NGNGインラインアセンブラを云々する前に、C++がどういうアセンブラ出力をするかよく勉強しろ。
特に、最適化の有無(Debugビルド/Releaseビルド)での振る舞いの違いに注意。
0587アセ初心者
NGNGhttp://data.uploda.net/anonymous/etc2/dat5/upload21198.txt
このプログラムを10秒後に終了するようにするにはどうしたらいいでしょうかorz
タイマ割り込みとかよくわからないんです・・・
ヒントください
0588デフォルトの名無しさん
NGNG環境がよくわからない。
プログラマブルタイマを使って割り込みでも掛けるのが常套手段だが。
0589587
NGNGインテル8085プロセッサを使ったI/Oボードなんですが。
SW1ってボタンを押した回数をカウントしてディスプレイに表示するプログラムです。
ちょっとコメント付け加えました↓
http://data.uploda.net/anonymous/etc2/dat5/upload21200.txt
できればプログラマブルタイマっていうのを詳しく教えていただけませんか。
0590デフォルトの名無しさん
NGNGハードウェア構成が判らないとなんとも言えませんが。
大抵は外部にタイマを持っていると思うので、それを何らかの形で利用すればいいのですがね。
なんらかのタイマも時計(カレンダ)も持っていなければお手上げですね。
0591デフォルトの名無しさん
NGNGどうすればプログラムを終了できるんだ?
とりあえず10秒経ったら電源落とせ
0592587
NGNG10秒たつとSW1を押してもカウントされないようにするって意味です・・・
0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNGI/Oは何故取り戻さないといけないのですか。
0595デフォルトの名無しさん
NGNGそれがなければ、仕方ないからせっせと8085のクロック数を計算して
ループをその分回すしかなかろう。
8085はパイプライン構造ではないから計算通りのクロック数で走る
のではないかと思う。
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNGバス占有しっぱなしは駄目だぞ
0600デフォルトの名無しさん
NGNG0601ε=( ̄。 ̄)yー~~
NGNGCPUには、MEM/IOなぞというコントロールピンがあって、H/L制御でデバイスを選び、
MEMとIOが同じアドレス(アドレスバス上の信号)であっても、別のデバイスを選択する、
すなはち、MEM空間とIO空間が別にある。
IO空間へのアクセスをアセンブラのIO制御命令で行う場合は除くとして、IOよりCPUへのアクセスは外部割込みとなる。
一つの外部割込みが延々と続く場合、他の優先順位が大きい多重割り込みが発生した場合、どんどんスタックに値が溜まってゆく、すなはちスタックオーバーフローの可能性が出てくる。
メモリのオーバフローの場合、x86系では、例外エラーのブルーバック画面に移行する。
尚、モトローラ・IBM68系ではメモリ空間内にIO空間がある。
すなはち、アドレスで、メモリとIOが連続している、すなはち、アドレスバスが太い、すなはちRISCの特徴。
この場合でも、IOからCPUへのアクセスは割り込みだ。
0602デフォルトの名無しさん
NGNGプログラムも簡単になる。
但し>>601も言っているように、連続して異なるレベルの割り込みがかかると
コントローラのような貧弱なメモリ空間では苦しくなる。今の場合は10秒間
経った事を検出しさえすればよいので、そういう問題は生じないだろう。
0603デフォルトの名無しさん
NGNG所々勘違いがあるようですね。もっと頑張りましょう。
0604デフォルトの名無しさん
NGNGは荒し。放置でおながいします。
http://science3.2ch.net/test/read.cgi/denki/1088265446/656
http://science3.2ch.net/test/read.cgi/denki/1093023679/455
いままで電電板を荒してたんだが、ム板にまで進出してきたか。
次は昔のPC板あたりが標的か?
0605デフォルトの名無しさん
NGNGはぁ?誰も糞OSの話なんてして無いだろ
0606デフォルトの名無しさん
NGNGだったら面倒だな。もっともこれは昔の腐ったメモリにも言えるけど。
やっぱり割り込み使おうぜ。それが一番確実だ。
0607ε=( ̄。 ̄)yー~~
NGNG>604の「所々勘違いがあるようですね。」の部分をずばりしてきたか・・・。
確かに、ブルーバック画面を出すのはCPUな訳は無い品。
例外エラーのルーチンに持ってく処理は、x86だが、処理コードはBIOSもしくはOSだな。
それぞれ、リアルモード、プロテクトモードで違ってくる。
もっと突っ込むと、そもそも例外も含め割り込みは、例えば、例外では、
例外でOSがINT×(番号忘れた)を出したり、CPU内部エラーでINT×をCPU内部で生ずると、
割込みフラグレジスタにフラグを立てる、その値と割込み許不のマスクレジスタのANDを採り、
IDTR(割込みディスクリプタテーブルレジスタ)の一部(上位か下位か忘れた)に入れる。
IDTRの値のアドレスを検索、すなはち、割込みベクタテーブルアドレスの内容を引きにいく、
ベクタテーブルの内容をアドレスとして、割込み・例外処理ルーチンに飛ぶ。
そのルーチンには、ブルーバック画面のコードが書かれている。
IDTRで値を入れてない部分の値は、リアルモード、プロテクトモードで違ってくる。
すると、引きに行く割込みベクタテーブルアドレスが違ってくる。
すなはち、リアルモードとOSによる例外のプロテクトモードでは、見る割り込みベクタテーブルも割込み処理ルーチンも違ってくるということだわな。
リアルモードでは、割込みベクタテーブルは0番地〜(BIOS上)にあり、割込みルーチンは、おそらくBIOS上(或いは640kバイト内にあるかもしれない)、
主にOSが行うプロテクトモードでの例外は、割込みベクタテーブルも割込みルーチンも1M以降のメモリ空間にある。
この意味では、違ってるな。
>603
「所々勘違い」と書いているからには、まだあるということか?
どこだ?
0608デフォルトの名無しさん
NGNG0609ε=( ̄。 ̄)yー~~
NGNGソフト屋か?
ソフト屋は、例外は、exception、try,throw,catchがOS内でのソフト内処理だと思っているからタチが悪い・・・。
いいページがあった、贈ろう。
ttp://tech.millto.net/~morry/vmm/vhw/cpuint.htm
0610デフォルトの名無しさん
NGNGとりあえず放置しようぜ
0611デフォルトの名無しさん
NGNG0612ε=( ̄。 ̄)yー~~
NGNGすなはち、割込みルーチンがBIOS上にあるか、OS上(おそらく640kのコンベンショナルメモリ内)にあるかだが、
確かめる方法はある。
違うOSを載せて、リアルモードで動作させることができた場合(仮想ではない。ここが難しい)、例外が生じた時、同じ画面が出るかどうかで判断できる。
同じ画面が出れば、リアルモードの割込みハンドラルーチンはBIOS上にあることになる。
>604のようなのを何と言うか教えてやろう、
・人のアラを探す。
・重箱の隅
と言う。>604のリンクは前レスもあわせて見てみれば、意味が分かるであろう。
>610
内容が「割込み」だけに、
>いきなり割り込んできてスレ乗っ取る気なんかね?
~~~~~~~←ココ
か?小ザムイギャグだ。内容がナイヨぅだな・・・。
>604、>610
ザマア無いな・・・、wクァッ!クァッ!・・・
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNG<○√
‖
くく
とりあえずε=( ̄。 ̄)yー~~は俺がここを支えているからどっかに入ってくれ
0616コウカ?=( ̄。 ̄)yー~~
NGNG<○√
‖
くく
ε=(*。*)y\~~
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0617デフォルトの名無しさん
NGNGもうすこしIDTRレジスタについて勉強しよう
0618デフォルトの名無しさん
NGNGそれ以前にこいつは既知外だが
0619デフォルトの名無しさん
NGNG実社会では誰にも相手にされず、唯一2chだけが彼をかまってくれるんだろ。
みんな、もうちょっと温かい目で見てあげようぜ(プ
0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNGでも使い方が分けわかんねぇ・・・・orz
自分の環境はP4でXP、なんかいいHPとかないすかね?
とりあえずコマンドプロンプトのDEBUG機能使ってアセンブラの練習してまふ
0622デフォルトの名無しさん
NGNG本嫁
0623デフォルトの名無しさん
NGNG初心者向けのmasm32解説書なんてあるんですか?
文法からコンパイルの仕方などが流れに沿って解説されてるようなやつ希望
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNGhttp://www7.plala.or.jp/keny01/asm/
ここじゃものたりない?
0626デフォルトの名無しさん
NGNG生まれてくるのが10〜15年遅かったようだな
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNG大学の講義で「計算機械」という科目があるんですが(もちろん必修)
計算機の動作原理を学ぶ内容のはずが担当教授の暴走によりアセンブラの
授業になってしまって困ってるんです><
>>627
「えむあすむ」でしょ?nasmは「えぬあすむ」lasmは「えるあすむ」で
いいのか?
0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG癒えてるね。
0631デフォルトの名無しさん
NGNG論理回路とかコンピュータアーキテクチャとかはアセンブラやってもわからんでしょ。
0632デフォルトの名無しさん
NGNG俺裸の時は、MASMが含まれてた頃のMS-DOSからMASMだけ引っ張り出して使ってたよ。
別売りになった途端、すげー値段が高くなったような・・・。
0633デフォルトの名無しさん
NGNGそこで「CPUの創り方」ですよ
http://www.amazon.co.jp/exec/obidos/ASIN/4839909865/249-2079252-3805149
0634デフォルトの名無しさん
NGNGただで落ちてるよ。
0635デフォルトの名無しさん
NGNGこれもあるぞ。
ttp://www.ics.kagoshima-u.ac.jp/edu/expII1/
0636デフォルトの名無しさん
NGNGどすで、as -v と打ったら何やらversionと出てきたのでてっきり‥
0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNGmainに入る前に
add byte ptr [eax], al
がずら〜と並んでるんですが、これは何の意味があるんでしょうか?
0639デフォルトの名無しさん
NGNGたぶん、プログラムのエントリに入った直後じゃないかな。
エントリと main() が異なることは分かってる?
0640デフォルトの名無しさん
NGNGプログラムのエントリとmainって違ったんですか。
組み込み系のアセンブラをやっていたのですが、
アプリに関してはさっぱりです。
何かその辺のことについて書かれている書籍とかご存知でしたら教えて頂けませんか?
0641デフォルトの名無しさん
NGNGいや、別にむつかしい話じゃないよ。
VC6 のコンソールアプリの場合、
VC6 に付属のライブラリで実装されている次の関数がエントリとなるんだよ。
int __cdecl mainCRTStartup();
この関数の実装では、いくつかの前処理と後処理を行っていて、
その途中で開発者が定義した main() を呼び出している。
というまぁそれだけのこと。
もっと詳しいことを調べると mainCRTStartup() を独自に実装するような
裏技も使えたりするよ。
0642ほんたま
NGNGおみゃ〜ら〜、「スリムドカン」のダイアログエディタはひとつのダイアログばかりでなく、複数のダイアログを自在に編集し、しかもそれをメインウィンドウから別々に開くことができるまでに進化したぞ!わかるか?
つまりおりは神だってこと!!
おみゃ〜らよ、一応自己テストではバグは出なかったが、使っているうちにバグが見つかるかもしれんから、そのときは報告してくれ♪
おみゃ〜らよ、「スリムドカン」もいよいよ完全なダイアログエディタを備えるまでになったってことだ!!
おりは神だな♪
おみゃ〜らよ、次はいよいよメニューエディタの作成に取り掛かるぞ!
今年中にメニューエディタ、アイコンエディタまでは完成させときたいな♪どうよ?おみゃ〜ら〜?
おりは神だな♪
0643デフォルトの名無しさん
NGNGセクションの先頭をページアラインするために、0でパディングしているだけです。
0645デフォルトの名無しさん
NGNGgoto文を恐れなく使う兵達のスレ
http://pc5.2ch.net/test/read.cgi/tech/1021364372/
0646デフォルトの名無しさん
NGNGなんか言ってどうにかなるようなもんじゃないし。
0647デフォルトの名無しさん
NGNGローカルスコープにしか飛べないなんて、使い物になんないぜ
0648デフォルトの名無しさん
NGNGでもC++でローカル変数のオブジェクト生成を飛びこえられないのは
とっても使い勝手が悪い(gcc限定?)。
0649デフォルトの名無しさん
NGNG0650636
NGNGMinGWでも gasi、できました
「プロ〜ングの力を生み出す本」の、GDBのコマンド・ファイル読み込みで
> gdb -x comfile puu となってたのでまごついてしまった、
dosでは当然、拡張子(略
0651デフォルトの名無しさん
NGNGcount=0
for(i=0;i<=1499;i++)
{
if(Array(i)<0)
{
Array(i) = -Array(i)
count++
}
}
;Arrayはsigned 32bitsの整数です。
;どなたかお願いします。
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNGsigned 32bitsってなんだ??
0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNG# make_COM#
ORG 100h
Start:
MOV al, data
MOV ah, al
MOV bh, ah
MOV ch, bh
AND al, 1
SAR ah, 1
AND ah, 1
OR al, ah ; A+B
SAR bh, 2
AND bh, 1
mov al, bh ;(A+B)+C
SAR ch, 3
AND ch, 1
AND al, ch ;(A+B+C)*D
MOV bl, al
AND bl, 1
RET
DATAdb 00000111b
0656651
NGNGありがとうございます。でも、ちょっと僕が言っていたのと違いますね。ごめんなさい。
どなたかわからないでしょうか?
0657デフォルトの名無しさん
NGNG0658651
NGNGこの問題のC言語程ならわかります。
0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG0661657
NGNGやるたいことを予想してみると、
配列でマイナスのものカウントと
マイナスの場合、正の値にしたいということ?
8086は、よくわからないけど
カウントは、最上位ビットが立っているものをカウントして
正の値にするのは、反転させて+1すればいいと思うよ。
0662デフォルトの名無しさん
NGNG0663651
NGNGありがとう。そう、Array(long integer (signed 32-bit))
がnegative numberだったらそれをpositive numberに変換するような
感じ。だから、ArrayのMSBが0だったら1に変換するようなcodeを
書きたいんだけど、ちょっと挑戦してみます。どうもありがとう!!
0664デフォルトの名無しさん
NGNG紙と鉛筆で机の上でウジウジしてる学生さんだね。
学校の宿題かなんかじゃないの?
0665651
NGNG0666651
NGNG0667651
NGNG0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNGマジレスすると、けっこう年とった人は使ったことあると思う。
若い人は全然知らんと思う。
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNGint 3て何ですか?(VC)
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG0678ほんたま
NGNGだが、おみゃ〜らよ、「ファイルの開く」コモンダイアログがどうも出ないのよ。
おみゃ〜らよ、「ファイルの開く」コモンダイアログを出すアセンブリソースでいいのないか?
できればnasmでいいのないか?マクロを使ってない、フルアセンブリコードのサンプルができればいいな♪
それ見てパクって「スリムドカン」のサンプルにするから‥♪
あと「猫でもわかる‥」みたいな解説のアセンブリ版みたいなサイトないか?
0679デフォルトの名無しさん
NGNGコンパイルを途中で止めて生成されたアセンブラソース読めばいいんじゃねーか?
0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNG0683マイク ◆yrBrqfF1Ew
NGNGヤツだけというわけじゃないな。
0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNG光とハゲの中ぁ〜
ということでMASMをくれ。
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNG0689ほんたま
NGNGおみゃ〜ら〜、「スリムドカン」の最新版をアップしたぞ〜♪
おみゃ〜ら〜、「スリムドカン」の最新版はすげーぞ〜♪
まずダイアログエディタにバグが見つかったので、それを直した。
次におみゃ〜らよ、サンプルプログラムをすこぶる充実させたから、見ちみれ?
おみゃ〜ら〜、サンプルにはビットマップの描画サンプルと、「ファイルを開く」コモンダイアログを出すサンプルが仲間入りしたぞ〜。わかる?
特に「ファイルを開く」コモンダイアログを出すのは難しく、nasmとかのいいサンプルがないか探したんだが、結局見つからず自力で実装したという次第よ。
おみゃ〜ら〜、「スリムドカン」のサンプルもいよいよ「猫でもわかる…」のサンプルと同レベルのものが登場してきたよ。
つまり、「スリムドカン」はいよいよ中級のウインドウズソフトがつくれるソフトになってきたってこと!!
おみゃ〜ら〜、サンプルにビットマップの描画サンプルと、「ファイルを開く」コモンダイアログを出すサンプルがあるってことは、もはや「スリムドカン」でつくれないウインドウズソフトはないといっても過言ではないのではなかろうか?
どうじ?おりはもはやここまで来ると神だな♪自分じどうじ?
0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNGじゃぁ、まずwebブラウザ作ってみろ。
IEコンポーネントもGeckoも使わないやつな。
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG0695デフォルトの名無しさん
NGNG天才は左脳に障害がある場合が多いから
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNG昨今というか8086以降のCPU知らないんですが
キャッシュとかパイプラインの制御もアセンブラで出来るものなのでしょうか?
0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNGありがとうございます
ということは命令の順序の並び替えぐらい考えれば
あとは普通にアセンブラ書けばいいんですね(違う?
0701デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG>>698の意図次第だな
0704デフォルトの名無しさん
NGNGでも制御とは言えないな。
0705デフォルトの名無しさん
NGNG予測あるからどこまで通用するかわからんが。
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGPentium???の最適化マニュアルはそのためにある。
0708デフォルトの名無しさん
NGNGBTBも「制御」できるし、
レジスタリネームも「制御」できるんだね!
カッチョエー
0709( ̄。 ̄)yー~~
NGNGCPUの内部パイプラインではなく、外部パイプラインバスのことを言っているのではないのか。
パイプラインバスなら、確か286あたりからバスタイミングチャートに3つくらいモードがあって、
パイプラインバスとかメモリインタリーブとかできたようだった。
ただし、コントロールレジスタ(コントロールピン)を直接煽れることは無いと思った。
0710デフォルトの名無しさん
NGNGググったらDOSのファンクションコールの事が殆ど。
0711ほんたま
NGNGおみゃ〜らよ、なぜ宇宙一すげーかわかるかな?
おみゃ〜らよ、おりはな、「Visual C++」で自作したDLLをスリムドカンでつくったプログラムから呼び出すのに成功したんだよ!わかる?
おみゃ〜らよ、DLLを呼び出すプログラムを「Visual C++」」でつくるには、Libファイルをリンクに設定したり、ヘッダファイルをインクルードしたりとやるべきことは多いだろ?
おみゃ〜らよ、DLLを呼び出すプログラムを「HSP」でつくるにも、やはりDLLの他に「.as」ファイルが必要だよ。
だが、「スリムドカン」の場合、DLLの他には一切何も必要ないんだな〜う〜ん、これが…自分じわかる?
つまり「スリムドカン」の場合、DLLさえあればDLLを呼び出すプログラムがビルドできるってわけ♪
おみゃ〜らよ、おりは宇宙一画期的だと思わないか?
おみゃ〜らよ、宇宙一すげ〜とわめいたのはそういうことよ♪
おみゃ〜らよ、自分じどうじ?
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNG↓ここの「Table of Contents」 → 「NEC PC-9800 series」
ttp://www.ctyme.com/rbrown.htm
全部載ってるかどうかは知らんが。
0714デフォルトの名無しさん
NGNGhttp://www.webtech.co.jp/undoc/
0715デフォルトの名無しさん
NGNGたとえ使わないものであれ全部解説したものって一つもないよな
よく使うものだけを解説するのも結構だが
俺は完全版辞典が欲しいんだ
0716デフォルトの名無しさん
NGNG絶版臭いが。
0717デフォルトの名無しさん
NGNGttp://www.amazon.co.jp/exec/obidos/search-handle-url/index=books-jp&field-keywords=PC%E2%80%909800%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA%20%E3%83%86%E3%82%AF%E3%83%8B%E3%82%AB%E3%83%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%83%96%E3%83%83%E3%82%AF
0718デフォルトの名無しさん
NGNGそれか。
ハードの方はそこそこ詳しかったが、BIOSの方はあんまし役に立たなかったような記憶があるなあ。
そういえばinterrupt listに少し載ってなかったっけ?
0719デフォルトの名無しさん
NGNGバイナリサーチをインラインアセンブラで書いたら
VC++に最適化させたCコードの方が5倍くらい速かった…
アセンブラやめようかな…
0720デフォルトの名無しさん
NGNG良く分からないのでCの簡単なコードをコンパイルして
アセンブリコード吐かせてCPUのマニュアルとにらめっこ。
そんなことをやっているうちに結構読めるようになった。
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNG読むのと書くのは大違いだから勘違いしないように
0723デフォルトの名無しさん
NGNGまえ某のコンパイラでやってたけどアセンブラつまらんって思ってたから
忘れちまった。このスレみてたらまたやりたくなってきた。
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNGコレダ!
>>724 ありがとう思い出せたよ。
0726デフォルトの名無しさん
NGNG読めればいいので問題無いです。
書くなんて言ってないのにそう
解釈するのは短絡な思考ですよ。
改める方が良いです。
0727デフォルトの名無しさん
NGNGAT&T式使ってたけど、死滅しちゃったかな?
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG連続してFPU使うのは以外にコンパイラ以上に最適化できんのがおおいよ
日本語が良くわからんorz
0732デフォルトの名無しさん
NGNGalinkとwin32.libの配布もとはここでいいんですか?
0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNGちなみにどんなソースか見せてみそ
0736719
NGNGこんな感じです。
ただの数当てなんだけど。
なんというか分からない事だらけで困る。
int dat[256];
for (int i=0; i<256; i++) dat[i] = i;
for (int i=0; i<10000000; i++) {
int tmp = rand() % 256;
int answer = 0;
__asm {
mov ecx, 128;
mov eax, c;
mov ebx, tmp;
L1:
mov edx, eax;
add edx, ecx;
cmp dat[edx*4], ebx;
ja L2;
add eax, ecx;
L2:
shr ecx,1;
jne L1;
mov answer, eax;
}
}
0737デフォルトの名無しさん
NGNG俺も試してみたが、
cmp dat[edx*4], ebx;
この行は、datの値ではなくdatのアドレスをオフセットとして足してしまう。
やりたい事は
cmp [dat][edx*4], ebx;
なんだろうが、そういう命令はx86にはないので、
mov esi, dat
か何かとしておいて
cmp [edx*4+esi], ebx;
とやる必要がある。
で、VC7.1で最適化を掛けたらcdqとsubとsarの組み合わせを / 2 で吐いてくれたが
unsignedでstatic_castするか、shrで符号を無視すればアセンブラとCの吐いたコード
の速度は差がほとんどなくなった。
0738デフォルトの名無しさん
NGNGコマンドプロンプトで「assmbl sample」と打ち込むと
sample.obj sample.mapが作成されるんだがここからどうすりゃいいんだ?
とりあえず「link16 sample」として実行すると
sample:fatal error L1101: invalid object moduleとエラーが表示される
ちなみに当方の環境はXPっす。
MASM32の使い方を流れにそって解説してあるようなHPキボンヌ
0739デフォルトの名無しさん
NGNGなんかわからんが、link16って何?16ビット用のリンカか?
linkだけじゃだめなん?
0740デフォルトの名無しさん
NGNG0741EXCULTer's / Active PC ◆/80RBXpvJA
NGNGスケールインデックスあったんじゃねーの?
マニュアル見てみ。
>>738
オプションが足りないのでは?
ヘルプ見てみ。
0742EXCULTer's / Active PC ◆/80RBXpvJA
NGNGビミョーかも。アトアトのことを考えるとVC++のほうがよさそうだけど。
0743デフォルトの名無しさん
NGNG何言ってるのお前?スケールドインデックスは*1、*2、*4の事だろーが。
俺が言ってるのはdat[]のdatのアドレス値を使いたいのに実際はdatの
アドレス値が置かれているアドレスがインラインアセンブラで使われてるって
事だよ。いっぺん氏ね。
0744EXCULTer's / Active PC ◆/80RBXpvJA
NGNGんじゃ全部アセンブラで書けよ、バカw
0745デフォルトの名無しさん
NGNG逆ギレすんなよ。自分が間違いましたと素直に謝ればいいものを。
0746デフォルトの名無しさん
NGNGLNK.BATとLINK16.exeならあるけどLINK.BATが見当たらない。
0747デフォルトの名無しさん
NGNGint dat[256] が自動変数だと仮定すると
cmp dat[edx*4], ebx
は
cmp [ebp-定数][edx*4], ebx
と解釈されて
719がやろうとしていることはできると思うのだが。
mov esi, dat
cmp [esi][edx*4],ebx
なんてしたらAccess Violation間違いないぞ。
どっからアドレスのアドレスが出てくるんだ?
0748デフォルトの名無しさん
NGNGそれがやってみたらだめなんだよ。もちろんdat[]は自動変数にして。
実際VC7.1で試してみた?
0749デフォルトの名無しさん
NGNGいろいろといじってみたら、ようやくAVが出なくなったが、検索が失敗する。
やはりどこか変なアドレスをアクセスしているようだ。そもそも元々AVが
出ていたという時点で既にNGだけどね。
証拠のソース(VC7.1用)
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=261
どっかおかしい所があったら指摘して欲しい。intを無条件でunsignedに
使っていたりする所は許して欲しい。
0750デフォルトの名無しさん
NGNGVC7.1のインラインアセンブラはmasm準拠じゃないの?
0751デフォルトの名無しさん
NGNGLINK.EXEってないの?
0752デフォルトの名無しさん
NGNG>>749のリンク先のソースで試してもOKでしたか?
0753デフォルトの名無しさん
NGNGC++だからそうなる。Cなら大丈夫。
0754デフォルトの名無しさん
NGNGそうなんか。えらく嫌な仕様だなあ。
0755デフォルトの名無しさん
NGNGそりゃ、引数として渡されたdatでは、
cmp dat[edx*4], ebx
なんてできるわけ無いじゃん
0756デフォルトの名無しさん
NGNGそのソースのmov edi,datの部分はおかしくないかい?
これだとediには、dat番地じゃなくてのdat番地の内容が入っちゃうよ。
0757756
NGNG0758デフォルトの名無しさん
NGNGcmp dat[edx*4],esiとcmp [ecx*4+edi],esiの結果は同じくなるわけだが
0759デフォルトの名無しさん
NGNGならないって。
0760デフォルトの名無しさん
NGNG・・・・・アホでスマン
Cのソース出してくんね?それアセンブラにするから
0761デフォルトの名無しさん
NGNGfunc2(int n, int dat[]); は、
N個のint型の要素を持つ配列dat[]から、0〜N-1の値を、二分探索法で
ITER回見つけ出すという物。func1()はそれをそっくりインラインアリンブリ
言語化しただけ。
Cソースは
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=262
に貼っておいた。コメント記号がアレだが、そこは勘弁。
で、>>755さんや>>758さんは頼むから一度アセンブリ出力して、出てきた
ソースを眺めて欲しい。ちゃんと俺の言う通りなってるはずだから。
念のために今回はBCC5.6.4でも検証しておいた。結果は同じ。
0762デフォルトの名無しさん
NGNGなるじゃん
0763デフォルトの名無しさん
NGNGわざわざ毎回ローカル変数をロードしているので、CやC++で書いた場合
よりも時間的に若干不利。
0764デフォルトの名無しさん
NGNGコンパイラを教えれ。VC7.1とBCC5.6.4では間違いなく失敗する。
0766デフォルトの名無しさん
NGNGそしたら最後のお願いをしてもいい?あなたが__asm{}の中をいじって正しくした
ソースを
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html
のどこかに貼り付けて欲しい。
それで俺の所で正しく動かなかったら、俺のパソコンが壊れているという結論
にするから。
0767デフォルトの名無しさん
NGNGfunc1とfunc2は等価というのが前提なの?
func1の場合は検索に失敗した時点で終了。
func2はとにかくITER回繰り返してから終了。もちろんその間何回も検索は失敗している。
と、思いますが。
0768755
NGNG例えば、以下のようにしたとき
int dat1[256];
int *dat2=dat1;
dat1とdat2の違いって分かってる?
Cではdat1[i]とdat2[i]どちらもできるが、
アセンブラでは、dat1[edx*4]はできるが、dat2[edx*4]はできないのは当たり前だろ、って言ってるの。
>>736ではdatはポインタ変数ではなくアドレスだろ。
>>762,>>764
あんたらも、アドレスとポインタ変数の違いが分かってないんじゃないのか?
以下のソースが、どんなコードに変換されるか見てみれば分かると思うよ。
int main()
{
int dat1[256];
int *dat2=dat1;
__asm {
lea ecx,dat1
lea ecx,dat2
mov ecx,dat1
mov ecx,dat2
}
return 0;
}
0769デフォルトの名無しさん
NGNG???
0770デフォルトの名無しさん
NGNGこれって、失敗はあり得ないだろ。
0771デフォルトの名無しさん
NGNGいたと思います(このスレじゃないかも)
モード切替には一旦ページングを切らないといけませんが、その時に
仮想=物理アドレスとなるメモリ領域を確保する必要があると書いてあったのですが
それはどのような方法で行ったのでしょうか? お願いします。
0772デフォルトの名無しさん
NGNG自分でページフォルトとか例外飛ばしたいんですが
0773デフォルトの名無しさん
NGNG気がしてくる私は多分 PG 失格
0774EXCULTer's / Active PC ◆/80RBXpvJA
NGNG743 :デフォルトの名無しさん :04/11/13 05:44:00
>>741
何言ってるのお前?スケールドインデックスは*1、*2、*4の事だろーが。
俺が言ってるのはdat[]のdatのアドレス値を使いたいのに実際はdatの
アドレス値が置かれているアドレスがインラインアセンブラで使われてるって
事だよ。いっぺん氏ね。
0775デフォルトの名無しさん
NGNGDDKの知識があればできる。
0776デフォルトの名無しさん
NGNGそいつはわかってる。今俺が言ってるのは>>766のどこが問題で、俺のように
動いたり、他の誰かのようにleaにしないと動かないかってとこなの。
>>768さんの言いたい事はわかる。定数とアドレス変数は一段階アクセス
モードが違うから、アセンブリをする時はそれを考慮しないといけない。
しかし>>766はもう関数の引数にアドレス変数として入ってしまっているので、
movでいいじゃないかって事なの。dat[ecx * 4]とかしたら、datは中身では
なくそのもののアドレスって意味に取られてしまうわけでしょ?leaにしたって
同じ事。
0777デフォルトの名無しさん
NGNGそうだよ。等価にして速度比較するというのが前提だと俺は思っていたぞ。
結果は(l + r) / 2と書くか(unsigned)(l + r) >> 1 と書くかで違うけど。
VC7.1は後者の場合アセンブラと同じコードを吐きやがった。
0778デフォルトの名無しさん
NGNGAMD64のコードを動かしたわけじゃないけど
1)VirtualAlloc()で仮想アドレスを指定してCOMMITする。
2)1)が成功したら、その仮想アドレスをカーネルモード(ドライバ)に渡す。
以下カーネルモード
3)受け取った仮想アドレスの値と同じ物理アドレスに対応するPFNを参照し
使われていないか確認する。使われていたら1)に戻る。
4)3)のPFNをデータベースのリンクから切る(そのメモリ領域はOSの管理から離れる)
5)1)の仮想アドレスがマップしている物理アドレスに対応するPFNから
ページフレームの(仮想)アドレスを得る。
6)そのページフレームのアドレスフィールドに1)の仮想アドレスを書きこむ。
PFNについてはググってちょうだい。
ただ、PFNのアドレスはOSやバージョンによって違うから、MSのカーネルデバッガで
調べるしかない。
0779771
NGNG裏ファンクションみたいな物があると期待したのですが、そう簡単にはいかない
みたいですね。ですが、何とかがんばってみます。
0780デフォルトの名無しさん
NGNG>そいつはわかってる。
うそつけ。わかってるやつが、>>747-748のようなことを言うわけない。
自分の無知さを認めたくないからって、必死になるなよ。
0782デフォルトの名無しさん
NGNG決めつけはよくないな。俺が定数と変数の違いを理解してないとでも?
ばかにするのもほどほどにしろよ。
とにかくお前とは何回言葉を交わしても論点がズレてしまうのでもう
相手にせん。勝手にそう思ってろ。
0783デフォルトの名無しさん
NGNG馬鹿にされたら正論を吐いてはいけない
馬鹿にされたら更に馬鹿にし返すのが常道であり作法
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNG>>736で提示されたソースを見て、
cmp dat[edx*4], ebx;
は間違いだと言っている。
実際には>>747が指摘したように、これで正しいのだが782はそれを理解できない。(>>748-749)
自分が正しい証拠として、>>749で782の書いたソースが公開されているが、>>736のdatはアドレスなのに、このソースのdatは仮引数(つまり変数)になっている。
つまり、条件が変わっていると言うことであり、条件が変わればコードも変わるのは当然なのだが、782はそれを理解できていない。
以上のことから、>>768で言ったことを知らなかったのは明らかだろう。
別に馬鹿にするつもりは無いが、バレバレの嘘ついても惨めなだけだが。
普段から、あんまりそんなことしてると、友達無くしますよ。よけいなお世話ですが。
0786デフォルトの名無しさん
NGNG0787デフォルトの名無しさん
NGNGもういいって
0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNG↓
0790デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1093519463/756
0791デフォルトの名無しさん
NGNG亀レスだが
16bit DOS用か Win32用かわからんが、これでどうだ?
ttp://www7.plala.or.jp/hop-step-jump/prog02.html
ttp://www.interq.or.jp/chubu/r6/masm32/intro.html
ttp://www7.plala.or.jp/keny01/
ttp://homepage2.nifty.com/kasayan/link.htm
0792デフォルトの名無しさん
NGNGいやいや、>>756は自分で言ってるように、明らかに間違いですよ。
>>785が言ってるのは、>>736と>>749のdatの扱いは両方とも正しいけど、それぞれのdatは違う物なので、
前提条件が違っている。
それを>>732は分かってないと言ってるんだと思う。
0793771
NGNGスレ違いですが、もう一つだけ教えてください。
MnPfnDataBaseからフレームが並んでいることは分かったのですが
物理アドレスに対応するPFNはどのように見つけたらよいのでしょうか?
お願いします。
0794デフォルトの名無しさん
NGNG>>732 とは??
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNGあの・・・・わかってるんですけど。
最初から配列はmain()で定義し、関数には配列の先頭アドレスを渡して
動かしていた。>>736のソースは悪いけど一回も動かしてないよ。
0797デフォルトの名無しさん
NGNGそれを真実であるかのように思い込むのは神経症と言う
いい例が被害妄想
例
"C"としか言ってないのに勝手に"C++"に置き換える奴
0798デフォルトの名無しさん
NGNGそいつは微妙だ、昔からCを使っていてC++に移った人間はそもそも区別していない。
転換点らしいものが無かったから。
それについては被害妄想というより誤解と誤解のぶつかりあい。
0799デフォルトの名無しさん
NGNG名前も違うし
であれば明確に区別しなければ「ならない」
0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNGZ80とPentiumだとしても同じアセンブラなんだから
同じ言語構成で行けるはずだろ!て言うバカと同じ
同じことをやろうとしてるんだけど
CPUごとそれぞれ違うんですよ
そんなことまで教えないといけないのか
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNG気にしねえとか言って、JAVAさえもCと呼びそうな勢いだなw
0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNGバカにはわからない
(すればC, C++の区別も必要ない)
0806デフォルトの名無しさん
NGNG0807●
NGNG0808デフォルトの名無しさん
NGNGできるんだってさw
すげえ!
0809デフォルトの名無しさん
NGNGこのとおり、言い出しそうな有様
0810デフォルトの名無しさん
NGNGが一番雄弁に真実を語る事は間違いない。
0811デフォルトの名無しさん
NGNG同意
0812デフォルトの名無しさん
NGNGCでオブジェクト指向した結果の延長がRuby
0813デフォルトの名無しさん
NGNGまあ 8080 のコードは Z80 で通ったりする訳だが
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNG「書いてあることをそのままの意味で読む」
能力が必要なんじゃねえのか?w
0816デフォルトの名無しさん
NGNG0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG今頃初めて聞いた。
0820デフォルトの名無しさん
NGNGモードが切り替わるだけだから同時には使えない
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG0824792
NGNGはい?
>>736をみて>>737の発言が出てくるってことは、分かってないってことでしょう。
最初から云々なんて関係ないし、動かしたかどうかも関係ない。
それとも、いまはわかってるってことですか。
それなら、よかったですね。
0825デフォルトの名無しさん
NGNGあのさあ、>>737は俺じゃないんっすけど。アンタ馬鹿ですか?
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNGこのスレでは人を賤しめて自分の価値を再確認するバカが必死になってる
ようなんで。IDでも付けば解決するんだがな。
0828デフォルトの名無しさん
NGNG0829デフォルトの名無しさん
NGNGゲームの資産を残すための互換性だったらしい
0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNGフレームは物理アドレス0番地から順番に並んでいますよ。
探し方は↓
[MmPfnDataBase] + (物理アドレス>>12) * フレームサイズ
フレームのサイズは、通常24バイト、PAEで28バイトらしいです。
0833デフォルトの名無しさん
NGNG0834デフォルトの名無しさん
NGNG737=743=748=749=761=776=782=796=825
755=768=780=785
792=824
だと思う。
824は否定しておりますがw
0835デフォルトの名無しさん
NGNG正 825は否定しておりますがw
0836デフォルトの名無しさん
NGNGと思って試したら、VCではebp使わずにespで引数や変数にアクセスしてた。
BCCではleave使ってたが。
0837デフォルトの名無しさん
NGNGあの流れで737が別人とは思いづらいが、証拠があるわけでもないからね。
0838デフォルトの名無しさん
NGNGleaveはWinXPのカーネルでも良く使われているよ
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNGenterが遅いからでしょ。leaveはそれほどでもないんだろうけど。
0841デフォルトの名無しさん
NGNG速いみたいだ。
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNG一つ質問をお願い致します。
以下のアセンブラのメモリ使用量を知りたいのです。加算16回のCコードを、VC++6.0でアセンブラ表記すると以下となりました。
004013B9 fld qword ptr [_rtP (00441a30)]
004013BF fadd qword ptr [_rtP+8 (00441a38)]
004013C5 fadd qword ptr [_rtP+10h (00441a40)]
・・・
00401413 fadd qword ptr [_rtP+78h (00441aa8)]
00401419 fstp qword ptr [_rtB (00445850)]
左からアドレス、オペコード、オペランドになると思われます。
ここで、オペランドが指し示すデータのサイズ1つは8byteになると思います。
その他、オペコード(fld、fadd、fstp)自体もメモリ上にあると思われますが、メモリ使用量はいくつになるのでしょうか。
同様にオペランド(qword ptr[・・])自体のメモリ使用量はいくつになるのでしょうか。
0844デフォルトの名無しさん
NGNGただ単にOBJやEXEファイルのサイズじゃダメなのか?
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNG004013B9 fld qword ptr [_rtP (00441a30)]
004013BF fadd qword ptr [_rtP+8 (00441a38)]
004013C5 fadd qword ptr [_rtP+10h (00441a40)]
・・・
00401413 fadd qword ptr [_rtP+78h (00441aa8)]
00401419 fstp qword ptr [_rtB (00445850)]
L2:
L2-L1でサイズわかるだろ
0847デフォルトの名無しさん
NGNG「ディズニーランドとオペランド 彼女と行くにはどっちがいいのですか」
0848デフォルトの名無しさん
NGNGespだとSIBコードのためにOPコードが1バイト長くなるような希ガス。
標準スタック・フレームを作成してebp経由でアクセスする事が前提に
命令フォーマットが作成されているかららしいね。
でもスタック・フレームを作成しないで全てesp経由にする事ももちろん
可能。
0849デフォルトの名無しさん
NGNG0850843
NGNG004013BF fadd qword ptr [_rtP+8 (00441a38)]
上記加算の行を2行、4行、・・、1024行、2048行と増やし、生成されたexeのファイルサイズから差分を計算すると
一行につき22byteになりました。
>>846
L2-L1から計算すると1行6byteとなります。
どちらが正しいのでしょうか。
0851デフォルトの名無しさん
NGNGmasmかなんかでリスティングファイル出力すればわかるだろうに
0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNGデバッガで該当領域をディスアセンブルすればいいよ。
ニブちんの843でも一目瞭然だろ。
0855デフォルトの名無しさん
NGNGnasm等のマクロアセンブラで作成したプログラムにおいて
dbやdw等で確保したメモリのアドレスの場所は確認してますか?
私は小さいプログラム程度ならいつも確認してしまう癖があるのですが。
SYMDEB等で調べて安心するも、俺だけかと思ってしまい夜も眠れねえ
0857デフォルトの名無しさん
NGNG確認してどうすんだ?
0858デフォルトの名無しさん
NGNGとんちんかんな質問が流行?
0859デフォルトの名無しさん
NGNG>>854
>>843の左側に書いてあるのはアドレスですよ。ちゃんと6バイトずつ増えてる。
0860855
NGNG>>858
855は私ではないです。
>>859
1つのアドレスでメモリ上の1byteの領域を指し示すという事ですね。
で>>843の左のアドレスでは6byteずつ増えているため、
fld qword ptr [_rtP (00441a30)] やfadd qword ptr [_rtP+8 (00441a38)]
はメモリ上の6byteを使用し、記録されているているということですね。
0861デフォルトの名無しさん
NGNG>>>858
>855は私ではないです。
いや、笑ったけどさ
0862デフォルトの名無しさん
NGNG>>860=855と名乗りながら、自分が855ではないと否定。
意味のわからなさがなんかツボにはまった。
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNGるby::!!!!!!
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG全部同一人物ならかなり哀れだな
それにしても似非Ruby厨大杉
0867デフォルトの名無しさん
NGNG最近PICをやろうと思い、アセンブラを勉強しはじめました。
質問なんですが、ビット処理命令というのと、リテラルデータの意味が
わかりません。どうか後教授御願いします。
0868デフォルトの名無しさん
NGNGビット処理命令ってのはシフト(ビットをずらす=2で掛けたり割ったり)や
and とか or とかの論理演算のこと。
リテラルデータというのは命令コードにデータが組み込まれた命令、
普通はどこかのメモリーもしくはレジスタを指定して読み出すけど、それがなくて命令中に直接値が入っている。
即値ロードと即値加算が多い。
0869デフォルトの名無しさん
NGNG君の場合、アセンブラの勉強の前に論理回路の勉強した方がいいよ
0870デフォルトの名無しさん
NGNGここは半可通しかいないから聞かない方がいい
こんなのとか>>869
0871デフォルトの名無しさん
NGNG電気電子版にPICスレがあるよ
0872デフォルトの名無しさん
NGNGmasm32(と16bitリンカ)を使用して、"ml /c /Fl test.asm"するとエラーになります。
ググッてもビギナーには見当がつかない。
どうしたら動くかご教授ください。
『 CODE SEGMENT
ASSUME DS:CODE,CS:CODE,ES:CODE,SS:CODE
.186
ORG 100h
START:
mov ah,09H
mov dx,message ←(*)
int 21H
mov ah,4CH
int 21H
message db 'This is a Test Program', 0DH,0AH,'$'
CODE ENDS
END START
』
(*) error A2070: invalid instruction operands
0873デフォルトの名無しさん
NGNGmasm32で16ビットコードを書けたっけ?
0874デフォルトの名無しさん
NGNGアセンブルはできる気がする。
でも隣家だけ16ビットって試したことないなぁ。
>>872
エラー行はたぶん "OFFSET message"または LEA 命令。
com 形式って懐かしいなぁ。
セグメントレジスタは自動で初期化されるんだっけ?
ってか、32ビットのフラットモデルで勉強したほうがよくない?
0875デフォルトの名無しさん
NGNG0876デフォルトの名無しさん
NGNGで、どうなっ
ここは「途中で言い止めるスレ」ではありま
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG分からないままに
http://www5c.biglobe.ne.jp/~ecb/assembler/assembler00.html
の最初で紹介してるリンクから、アセンブラとリンカを入手し、
http://www5c.biglobe.ne.jp/~ecb/assembler/2_2.html
の例から前後の呪文をコピペしています。
『
mov dx,OFFSET message
』
と修正することでアセンブルが成功しました。ありがとうございます!
つづけてリンクを "link /t test.lst"で実行してみますと、
test.lst : fatal error L1101: invalid object module
Object file offset: 1 Record type: 4d
と表示され、test.obj ファイルのみ生成されcomファイルが生成されません。
(ちなみに
http://www5c.biglobe.ne.jp/~ecb/assembler/2_2.html
の例は当方でも問題なくcomファイルが生成されております。)
何か解決策はありますでしょうか?
874>> 32ビットのフラットモデルで勉強したほうがよくない?
実際のプログラミング例とか紹介しているサイトをご存知なら是非教えてください。
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG(ちなみに
http://www5c.biglobe.ne.jp/~ecb/assembler/2_2.html
の例は当方でも問題なくcomファイルが生成されております。)
↑↑↑
すみません、嘘です。
0881デフォルトの名無しさん
NGNGlink /t test.obj
じゃないか
0882デフォルトの名無しさん
NGNG全部、上手くいきました、です!
(本当にゴメンナサイ!)
0883デフォルトの名無しさん
NGNG[ ]を使ってデータをやり取りしたいのですが、
(*)の場合のOFFSET指定?が分かりません。
『
mov ax,OFFSET [original]
mov [carboncp],ax ←(*)
(中略)
original db 'AB', 0Dh,0Ah,'$'
carboncp db '00', 0Dh,0Ah,'$'
』
このままでは
(*) error A2070: invalid instruction operands
でした。
馬鹿の一つ覚えで
mov OFFSET [carboncp], ax
とか
mov [OFFSET carboncp], ax
とかしたのですが
error A2001: immediate operand not allowed
でした。
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNGword ptr
0887デフォルトの名無しさん
NGNG>>883はdbだからだろな(確かめてない)
mov al, original
mov carboncp,al
db宣言されたラベルにはワードでアクセスできない
0888デフォルトの名無しさん
NGNGありがとうございます。
『
mov al,[original]
mov [carboncp],al
mov al,[original+1]
mov [carboncp+1],al
mov ah,09H
mov dx,OFFSET carboncp
(中略)
original db 'AB',0Dh,0Ah,'$'
carboncp db '00',0Dh,0Ah,'$'
』
でとおりました。一方、ワードを使ってみたくて
『
mov ax,[original]
mov [carboncp],ax
mov ah,09H
mov dx,OFFSET carboncp
(中略)
original dw '愛',0Dh,0Ah,'$'
carboncp dw '00',0Dh,0Ah,'$'
』
としてみると、コンパイルできるものの、
愛であろうと死であろうと文字に関係なく化けまった。。
我がアセンブル道(ミチ)の先は長そうである。
0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNGmov ax,word ptr[original]
mov word ptr [carboncp],ax
mov ah,09H
mov dx,OFFSET carboncp
(中略)
original db 'AB',0Dh,0Ah,'$'
carboncp db '00',0Dh,0Ah,'$'
』
これでどうよ?
0891デフォルトの名無しさん
NGNGサンキュッ・サーであります。
>>890
コンパイル、実行とも上手くいきました。
(返事遅くなってすみません。)
おかげで色々確かめながら勉強できるようになりました。
ありがとうございます。
しかし、しかし…、ANCIとかISOとかの世界と無縁のためか
初っ端からとっつき難い印象です。。
先輩方はこれを仕事にして食ってったり、当たり前の
教養として別に仕事されたりしてるんですよねぇ…。
自分には、スゴイ迫力であります。
NASMも試してみます。>>887
初っ端からゼンゼン勝手が分からずにクヨクヨしてしまったので
以降は作戦を変えて、実験的にcでプログラムを作成しながら、
そのコードをVisualStudioあたりで逆アセンブルし、
ちまちま比較しながら進めていこうか、という考え。。。
0892デフォルトの名無しさん
NGNGint 10h
ret
0893デフォルトの名無しさん
NGNGこんなスキル生かせるのはウイルスソフト会社くらいでは?
小難しいアセンブラやるならC,C++やjavaを勉強したほうがいいのでは?
いまいち何目的にアセンブラをやるのか、それがわからない
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG勝手にセグメントのオーバーライドとかは激しくウザいし、
とくにmasm32の while とかの、わけのわからん高級言語風の記述。
かえってわかりにくくなってる。
0896デフォルトの名無しさん
NGNGしかし、見えない本質を体得した後は、確実にコードに差が出る
0897デフォルトの名無しさん
NGNGJava,php,perlなんかがメインの人には要らない
0898お願いします
NGNG次のように、意味のないジャンプ (次の命令へのジャンプ)
をしている個所がたくさんあったのですが、
なぜこのようなことをしているのか分かりますか?
...
E61: push eax
E62: push(d) +00
E64: call(d) [USER32.MessageBoxA];
E6A: xor eax,eax
E6C: jmpn E71
E71: pop edi
E72: pop esi
E73: pop ebx
E74: leave
E75: retn
0899デフォルトの名無しさん
NGNGタイーホ
0900デフォルトの名無しさん
NGNGパイプラインフラッシュのためかな?関数内での後始末部位だから。
0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNGすいません、それってどういう意味があるのでしょうか?
このプログラムは特殊なプログラムじゃなくて、
普通の GUI アプリケーションなんですが。。。
>>901
なんかそうかもしれません。
このようなコードでは、他の場所からもジャンプされているので、
たとえば、switch 文で case 句から抜けるときに、
switch の最後の case 句であるかどうかにかかわらず
ジャンプ命令を生成しているのかもしれませんね。
0903デフォルトの名無しさん
NGNGif (MessageBox(NULL, lpText, lpCaption, MB_OK));
こういう処理やってるんじゃない?実際に試してはいないけど、こうすれば
多分そのまま次命令へのジャンプ処理が生成されるかと。
0904デフォルトの名無しさん
NGNGメモリ参照のジャンプのようなswitchに相当する部分は無いの?
見た感じjmp直前で eaxを0クリアして関数の返す値を0にしてるので、
defaultに落ちてきた時のエラー処理に相当するコードかと思うのだが。
0905898
NGNGすいません、「メモリ参照のジャンプ」というのはどういう意味でしょうか?
関数ポインタという意味ですか?
いかにも switch 文らしきところはあります。
たとえば、別のコードですが、ウィンドウ プロシージャの一部だと思われます。
L00006E4A: cmp [ebp-0C],0000040E
L00006E51: je L00006C01
L00006E57: cmp [ebp-0C],0000040F
L00006E5E: je L00006C24
L00006E64: cmp [ebp-0C],00000410
L00006E6B: je L00006CB6
L00006E71: jmpn L00006E76
L00006E76: push(d) [ebp+14]
L00006E79: push(d) [ebp+10]
L00006E7C: push(d) [ebp+0C]
L00006E7F: push(d) [ebp+08]
L00006E82: call(d) [+off32 USER32.DefWindowProcA]
L00006E88: jmpn L00006E8D ;; <-- ここ
L00006E8D: pop edi
L00006E8E: pop esi
L00006E8F: pop ebx
L00006E90: leave
L00006E91: retn 0010
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNGHex.コードは数字の羅列であり、OPコードとOPランドとの境が不明であり、逆汗しても正しいとは限らないというか、ほぼ間違っている、何故ならこれは、その一命令が何バイト命令か不明であるからこうなる。
>裏を返せば、1命令が例えば2byte命令で統一されていたりすると逆汗結果が正しいということが分かる
>実際はそんな命令セットはほとんど皆無に近いから、逆汗コードが間違っているということが分かる。
>ちまちまダンプリストから手で逆汗するのが正しい手法。>DOSからdebugで入るならDコード
0909デフォルトの名無しさん
NGNG>>607
0910デフォルトの名無しさん
NGNG>908は、
どこから逆アセリストを取り始めたかにより正しいか間違ってるか決まってくる。
命令の先頭であるOPランドからリストを取り始めているなら正しいだろう。
しかし、コードの中には、命令でなく、パラメータや割り込み用ベクタアドレス(これらは命令でなくただの数字とアルファベット)であるものも含まれている。
その箇所を把握していないと正しい結果は出ない。
0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNGで、その中身がどうかというと…
↓
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNGアセンブラの勉強目的だったら内容が薄すぎるので止めといたほうがいい
シェアウェア作者ならこの本に書かれてる程度の内容でクラックされるのは
恥ずかしいだろうから買っといた方がいいかも
# ただし対策側ノウハウはまるで書かれていないので覚悟してから
0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG禿同
0927デフォルトの名無しさん
NGNGどこらへんがよかった?
0928デフォルトの名無しさん
NGNGhttp://www.amazon.co.jp/exec/obidos/ASIN/4839909865/
0929927
NGNG今時の CPU とずいぶんかけ離れていたりしないのかな?
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNGプログラマに直接的なプラス要因になる本じゃないと思うよ。
むしろ、サプリメント的に後々壁にぶつかった時に理解する下地を作れるって感じかな。
0932デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNG0934デフォルトの名無しさん
NGNG喉の奥に指を突っ込め。
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNGAND EBX,0F
こう書かれている箇所があります。
EBX+0x0Fだと思ったのですが0Fってのが理解できません。
普通の16進数のFではないようです。
これはどういう処理になるのでしょうか?
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNGEBX &= 0xf;
0940デフォルトの名無しさん
NGNG0941937
NGNGこんなつまらないことで御手数かけて申し訳ないです。
0942デフォルトの名無しさん
NGNGいろいろ読んでみてもいまいちよく分かりません。
セグメントディスクリプタのメンバーの1つであるベースアドレスについてですが。
ここのベースアドレスには物理アドレスを入れればよいのでしょうか?
後物理アドレスの算出方法は
1000h:0000h
というアドレスを物理アドレスに変換したい場合は
1000h * 16 + 0000h
でよいのでしょうか?。
どなたか教えてください。お願いします
0943デフォルトの名無しさん
NGNGだから
セグメントベース=リニアアドレス≠物理アドレス
ページングoffならリニアアドレス=物理アドレス
0944デフォルトの名無しさん
NGNGベースアドレスには物理アドレスをそのまま入れてやればいいですね。
その算出法というのが何を意図してるのかわからないのだが(リアルモードと混同してる?)、
ベースアドレスの値のままでいいでつ
0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG単にさらなるスピードアップと言うだけで使うわけじゃないから、
C, C++を使いこなせるかどうかはあまり関係がない(相関はあるだろうが)。
言語処理系なんかでCじゃ書けないことを実現するとか。
SSEなんかのSIMD命令の利用も、まあ更なるスピードアップでもあるけれども、
意味合いとしてはCじゃ書けないことの部類に入るかな。
0949デフォルトの名無しさん
NGNGセグメントベースには論理アドレスを入れるから>>943の言う通り。
ページングを利用する場合も0x0Eの割り込み処理(ページング機構といった方が早いか)がしっかり整っているなら、別に気にする必要ないと思う。
リアル/仮想8086モードでのセグメントとオフセットの話はその通り。
何してんのか知らないけど頑張ってね。
0950デフォルトの名無しさん
NGNG2つデスクリプタ作って、うぞうぞやってればその内できるよ
0951デフォルトの名無しさん
NGNG正直言って君の書いたプログラムを使いたいとは思わない。
0952デフォルトの名無しさん
NGNG4Kごとにしてしまえばよかったのに。なんでだめなの?
0953デフォルトの名無しさん
NGNG286の段階ではディスクリプタ(8byte)の先頭から6バイト分しか
使われてなくて、リミットのオフセット4K(Gビット=1)ってのは
386から導入されたものだってことだね。286のOSは、64kの
セグメントを複数切り替えて動作する、純粋なリアルモード
のアプリケーションを複数走らせるものだったということなのね。。
0954942
NGNGreal to Protectのコードを書いているのですが。どうにも3rd exceptionが発生してだめなんです…
Monaの旧スレを見ながらやっているのですが…
もうちょっとがんばってやってみます
0955デフォルトの名無しさん
NGNGタスク切り替え時にGDTRを、ちょうど386がCR3を
書き換えるみたいに、入れ替えるということなのね。
なるほど。。。
>>942
実際に手を動かした人にだけ技術力はつく!がんばれー
漏れも286のOS作ってみたくなってきたw
0956デフォルトの名無しさん
NGNG>1000h * 16 + 0000h
8086ではセグメントレジスタの値は自動的に16倍されるけど、
286/386のプロテクトモードにおけるセグメントディスクリプタ内の
ベースアドレスは16倍されないはず。セグメントの開始アドレスは
バイト単位で指定できるようになってる。
286ではベースアドレスに24ビット = 16MB
386ではベースアドレスに32ビット = 4GB
のリニアアドレスの領域指定できる。
0957デフォルトの名無しさん
NGNGこのスレの470は大きな勘違いをしてるな。
>ただ、セグメントサイズそのままに16MBに広げた286はどうかと思うよ。
セグメントサイズはそのままって、これは当たり前。8086で動作していた16ビット
アプリケーションをプロテクトモードで同時に複数走らせることを目的としてるんだから。
ディスクリプタの7バイト目にDビットがあるが、これは286では有効ではなく、
32ビットオペランドや32ビットアドレスは386で初めて使えるようになったわけだし。
リニアアドレス空間が16MBというのを小さいと見るなら、確かにそうかもしれないけど。。
0958デフォルトの名無しさん
NGNG4kオフセットはでかすぎにしても、ディスクリプタ内のベースとリミットは
8086のセグメントレジスタのように無条件に何倍かにしてもよさそうだ。
8086ですら、16バイトごとにセグメントっていうスコープを割り当てて
メモリ空間使ってたわけだし。286のOSの役割は16ビットアプリケーションに、
セグメントディスクリプタのPビットを386のページエントリのPビットと
同じようにして使って、連続した1MBの領域があるかのように見せるだけだしな。
そもそも286の段階でセグメントのリミットなんて必要だったのかな?8086の
アプリケーションは1MBの領域をアプリケーション内でセグメントレジスタ
という物差しを割り当てて使ってただけでしょ?リミットなんてない。
セグメント指定したら64kすっぽり読み書き可能。OS(特権モード)の
ために用意されたってことかいな。
0959デフォルトの名無しさん
NGNGアセンブラ… (´・ω・`)ショボ━━ン!!!
でおながいします
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1101329594/
0962デフォルトの名無しさん
NGNGアセンブラ… (´・∀・`)ヘー
http://pc5.2ch.net/test/read.cgi/tech/1101390110/
0963デフォルトの名無しさん
NGNG◎営業時間 24時間 年中無休
◎利用できる場所 ホテルor貴女の自宅
◎利用できる方 女性のみ(カップルの方のコースも別にあります)
コースと料金(女性の方お1人でご利用の場合)
60分(1時間) 10000円
120分(2時間) 20000円
180分(3時間) 30000円
240分(4時間) 40000円
300分(5時間) 50000円
指名料 2000円
◎お相手は全て当店の指導を受けた素敵な優しい女性ばかりです。
◎女性を満足させるためのテクニック+αがあるのは当店だけです。
◎ピンクローター、ローション、双頭バイブ等のオプション料や追加料金は頂きません。
◎年会費無料の会員登録をされますと全コース2000円オフになります。
◎会員様には男性を指名できる特別限定コースもご用意しております。
◎カップルでご利用の際は下記コースと料金になりますのでご注意下さい。
コースと料金(男性と女性もしくは女性と女性のカップルでご利用の場合)
120分(2時間) 23000円
180分(3時間) 33000円
240分(4時間) 43000円
300分(5時間) 53000円
指名料 2000円
0964デフォルトの名無しさん
NGNGそれ書いたの俺だわ。
今読むと読点が変だ。恥ずかしい。
8086との互換性のことまでは考えてなかったです。
16MBもの広大な空間を64KBに細切れにしたら使いにくいよ、ということが言いたかった。
8086を作った人達は、8080の16ビット版を作る気だったんだと思うよ。
当時のプログラムは1プロセスあたり64KBで十分で、
それを複数個同時に動かすために1MBのメモリ空間を用意し、
バンク切り替えよりも気が利いている程度のものとして作られたのだと思う。
セグメントレジスタを複数個用意するのはOSに必要だからいいとしても、
それをユーザモード(んなものはないわけだが)に解放したのが間違いだと思う。
0965デフォルトの名無しさん
NGNG8085の16ビット版だろうね。
で、ユーザモードなんて概念がないんだから開放するしかないのだが。
0966デフォルトの名無しさん
NGNG8086にだってプロテクトモードを設けることはできたでしょう。
1MBの領域を細切れにし、2,3のプログラムで分ける。
でもそれなら、セグメントレジスタには16bitも必要ないでしょうね。
もっと目の粗いものでも十分だった気がします。8bitで、純粋に
GDTのインデックスを指定するためのものという扱いです。
ディスクリプタも4byteぐらいに抑えておけばGDTのサイズもそれ程
膨れ上がりません。
やはり8086のセグメントは単一のアプリケーションに64k以上のメモリ空間を、
バンクの切り替えにより、自由に操作可能とするためのものだと思います。
またUNIXのようにプロセスをバンバン起動するような利用形態は8086では
考えられていなかったのではないでしょうか、どうでしょう。
当時の様子を知らない、素人の推測ですのであてになりませんが。
0967964
NGNGもし、セグメントレジスタを8ビットにして、4KB毎でしか区切れないようにしたら、
メモリがもったいない! と怒られていたと思う。
64KBや128KBしかRAMを積んでないマシンでの4KBは貴重ですから。
セグメントによる恩恵は、64KB越えのメモリアクセスは後からの話で、
まずは、メモリのどこにロードしても絶対アドレスへのジャンプを
書き換えなくてよい、というのが大きいです。
0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNG諸刃の剣。
ってあれはhuge modelだな
0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNG重なっている部分は共有メモリとして使うつもりだったらしいよ
0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG設定しておくことにすれば、ソフトもハードもそう過大なオーバヘッドを招くことなく、
スケーラブルにできたんだよ。
それをしなかったのは、その時点で1MBは使い切れない程広大な
メモリ空間だと思われていたのが1つ。
さらに、次(々)世代ぐらいでは完全な新設計になるので未来のことを
考慮しておくのはナンセンスだと思われていたのがもう1つ。
ところが現実は・・・
0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG8086なんて、プログラムが難しい以前に、調達が難しいだろ。
0978デフォルトの名無しさん
NGNG乙
0979デフォルトの名無しさん
NGNG集積度が足りなかったんだよ。それぐらい空気嫁。
それともお前は現在の基準で過去を裁く人間なのか?
0980デフォルトの名無しさん
NGNGそれ程深くもない知識で歴史を眺める以上、ある程度は避けられないですね。
というか8086が出たのが78年。286が出たのが82年。
'71 4004 4bit
'74 8080 8bit
'78 8086 16bit
'82 80286
'85 80386 32bit
この4年の間にどれぐらいの製造技術の変化があったのでしょうかね。
8086から286への変化はCPUの仮想化と見てもいいような変化だと思います。
また32ビット化も考慮されて(Pagingは想定外だったかも)設計されてる。
凄いですね。
>>967
>もし、セグメントレジスタを8ビットにして、4KB毎でしか区切れないようにしたら、
考えていたのは、8bitというのは単純にGDTのインデックス値であり、
ディスクリプタ内で16bitのベースアドレスと属性フィールドを持つような形です。
OSへ新規セグメント要求システムコールを呼び出し、GDTの8bitのインデックスを
割り振ってもらう、そんなものをイメージしてました。システム内ではGDTは
共有されるので、同一の特権モードの保護はなされません。
まあ、その当時にそんな重たいメモリ管理ユニットを乗せられるわけもないですねw
0981デフォルトの名無しさん
NGNGものすごい勢いで集積度は上がりましたが。
ムーアの法則って聞いたことない?
0982デフォルトの名無しさん
NGNGならだまってろ。だれにでも発言権があるわけではない
0983デフォルトの名無しさん
NGNG何様のつもりだこの池沼。仕切り屋ふぜいが。
0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNG変わってないな
0987デフォルトの名無しさん
NGNG>設定しておくことにすれば、ソフトもハードもそう過大なオーバヘッドを招くことなく、
実際これのオーバーヘッドってどれぐらい?
アイディアとしては悪くなさそうだけど。
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG本当だサンクス
0991デフォルトの名無しさん
NGNG10倍大きくしてでも100馬力にするべきだったといってるような議論だな。
0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNGどこが間違ってる?
0994内容が無いよう
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。