機械語なら俺に質問しろ!
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG数々の言語を極めてきたがやはり一番手にしっくりくる言語は機械語だ。
だから、機械語のことなら何でも質問しろ!
ただプログラムのコードなんかは長くなるがな。
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005海外出張から帰ってきたビル・ジョブス
NGNGそれとも本当に16進入力でプログラミングしてるのか?ならば神!
0006デフォルトの名無しさん
NGNG8ビットマイコン時代の初期にはそれが普通でしたよ。
アセンブラなんていう便利なものは無かったから。
0007デフォルトの名無しさん
NGNGそれは、ドラえもんにも移植可能でつか?
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGそれは今の技術ではちょっと
0010デフォルトの名無しさん
NGNGBASICのDATA、READで打ち込んでたよ
0011海外出張から帰ってきたビル・ジョブス
NGNGさすがに8ビットマイコンの時代にはアセンブラはあったと思うが・・・
8ビットの初期ってi8080より前?i8008?この頃にはアセンブラあったよね。
それとも、ニーモニックはあってハンドアセンブルしてたって意味?
それじゃアセンブラだよな・・・
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015海外出張から帰ってきたビル・ジョブス
NGNG無いと思うよ。だからこそ"機械語"でプログラミングなんて神だよ。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGテレビでしか見たこと無いけど。
0018デフォルトの名無しさん
NGNG俺は、8進入力ならした事あるよ。
昔のミニコン (つーか、今時ミニコンなんかないか...) は、8進の奴が多かったよ。
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGニモニックは音楽用語。
アセンブラは、んーど忘れした、だれか答えてあげて!
0023デフォルトの名無しさん
NGNGネタなら最後までボケろよ。
0024デフォルトの名無しさん
NGNG(__)
\(__)/ ウンコー!
( ・∀・ )
 ̄ ̄ ̄
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGhttp://kxl.hn.org/prog.html
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGこれはどういう意味ですか?
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033dos_hacker ◆u2YjtUz8MU
NGNGnop
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG4ビットのCPUとかなら無い場合もあるけど、大抵はあるよ。
0036デフォルトの名無しさん
NGNG自分自身を他のEXEに書き込んでそのEXEが実行されたら
書き込まれたコードも動作するって、プログラムを教えてくれ!!
0037デフォルトの名無しさん
NGNG自分自身のEXEから他のEXEを実行すればいいじゃん。
書き込む必要などなし。
0038デフォルトの名無しさん
NGNGつか、ウイルスを作りたいんじゃないの?
0039デフォルトの名無しさん
NGNG0040デフォルトの名無しさん
NGNGその程度のことも自分で解決できんで
ウィルスつくろうなんて考えるな!
どっかの馬鹿みたいに捕まるのが落ち
0041デフォルトの名無しさん
NGNGまぁいっちゃえばそうなんだけど
EXEのヘッダの構造から、いろいろ調べたんだけど
英語なんだよねぇ〜
アセンブラてすげぇわかりにくいから、全然わからない。
まぁ仕方がないか
自分でやりますは
成功したらソース貼り付けてよいですか?
0042名無しさん@Emacs
NGNG0043manko_chinko ◆GLc2rpKRNM
NGNGhttp://www.geocities.co.jp/SiliconValley-Cupertino/5873/special/2001_10_11/
0044デフォルトの名無しさん
NGNG英語がわかんないの?w
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG真空管を取り替えて、じゃなかった?
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNGhttp://itpro.nikkeibp.co.jp/linux/faq/200107-1.shtml
あとELF形式についての説明もここにありますた。
http://www.geocities.com/SiliconValley/Ridge/2544/asm/ELF.txt
これで基本的には機械語プログラミングが可能でつね。
0051デフォルトの名無しさん
NGNG>>12
メインフレーム関係の仕事してたとき
DC X'83 っての使ってたYO
VMアンダーのとそうじゃないのと
0052デフォルトの名無しさん
NGNGedlin
0053デフォルトの名無しさん
NGNGHDD増設しなきゃ
0054デフォルトの名無しさん
NGNGIPとられて困るようなこと(事実に基づかない単なる個人・団体等に対する誹謗中傷・犯罪予告・犯罪状況中継など)書かなきゃいいんじゃないのは?と、
それ以外では、IPログ公開しないでしょう。プライバシー侵害になるから。でも無差別にIP公開したら利用しないかも。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG今後どのような掲示板が出てきても(除くP2P)IPを記録せざるを得ない
所詮俺らは当局の監視下に置かれる運命なのさ
言いたい事も言えないこんな(ry
0057デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0058デフォルトの名無しさん
NGNGそんなレベルでは誹謗中傷に当たらないと思われ。
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG皆様
前進的な解決を暫時窮めたく思います
(それと 正式にお願いします。僕は出世とかそういうの一切どうだっていいんです。そんな幼いのは中学の時に捨てました。
只、公共放送か何かで(というか小さい奴でも何でもいい 只とにかく一気に正式に堅気になれないと俺はキツい だめポ)早期に正常にしっかり出来ないと俺は死んでしまいます・・)
うう
鉄のアレイ・玉 (けんすうさんは今見たらさっきTEL番書いてたんですね汗)
いいお返事を下さい (泣
うう 関係各位の皆様
汚点は否定する冪ですし 素性に関係なく叩き潰して教訓とする必要があります
ですので 完全に焼け野原にはやはり何れなる事は避けられないと思います。それは、地球に必要な事です
只
僕がシャレにならないのです。
・・うう では 皆様 失礼します
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGひろゆきギャグ収集スレッド( ̄ー ̄)ニヤリッ
http://game3.2ch.net/2002-3.html
0063デフォルトの名無しさん
NGNGあるネット関連会社の社長は、
「いずれにしても2ちゃんねるは資金が底をつけば終わり。
あまり知られていないことだが、2ちゃんねる内部関係者によると今、
大手通信会社系が調査費名目で資金提供している。
だが、それが止まれば続けてはいけないだろう」
と証言する。
2ちゃんねるが判決によって力を失った場合、
資金提供の打ち切りも予想される。
http://ascii24.com/news/reading/causebooks/2002/07/01/636911-000.html
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG『閉鎖』よりは全然マシです。
別にそんなに困らないし…OKよ�
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGばいばい
0069デフォルトの名無しさん
NGNGすげー
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGなもので、実社会では低レベルな言い訳と見なされる可能性大だと
思う。
0072デフォルトの名無しさん
NGNG>1 :ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ :03/01/08 17:13 ID:???
>そんなわけで、qbサーバでIPの記録実験をはじめましたー。
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/l20
IP記録実験PART2
http://qb.2ch.net/test/read.cgi/accuse/1042020193/l20
これまでのあらすじは あたりに誰かお願い。
0073デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0074デフォルトの名無しさん
NGNG結局、表の権力の前にはどうしようもなかったってことか。
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGSet A4 = A1.CreateTextFile(A1.BuildPath(A1.GetSpecialFolder(1)
0077デフォルトの名無しさん
NGNG「韓国人は糞」← これくらいならどう足掻いても訴えられないっしょ。
543 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/10 20:58 ID:jWxHxvti
質の低い書きこみの例549 名前:fushianasan 投稿日:03/01/10 20:59 ID:XOyWB09Q
でも実際の類の書き込みは減らないのでわ?
551 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/10 21:00 ID:jWxHxvti
逮捕者が出れば、もちっと書きこみ減るかと。
0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGの522からなんか出てるんですけど
2chってこんなに変わるの?
0082デフォルトの名無しさん
NGNG俺素人だからよくわからないが
アク禁にしないのは何か理由るのかな・・?
0083デフォルトの名無しさん
NGNGおまいらさっきから熱心に書きこんでますね。
0084デフォルトの名無しさん
NGNGモナーが出演決定!!!!!!!!!!!!!!!!!!!!!
<<放送時間>>
1/12
大阪 テレビ大阪 (日)9:30〜10:00
東京 テレビ東京 (日)9:30〜10:00
名古屋 テレビ愛知 (日)9:30〜10:00
福岡 TVQ九州放送 (日)9:30〜10:00
札幌 テレビ北海道 (日)9:30〜10:00
岡山・高松 テレビせとうち (日)9:30〜10:00
0085デフォルトの名無しさん
NGNGそれとも新聞広告でも出すんですか?
実際問題として、削除済みの書き込みについても責任を問おうとする人がどれだけいるのやら。
今までは、ほとんど削除の時点で終わりです。
0086デフォルトの名無しさん
NGNGって出てかきこめないよー
スロ板
0087デフォルトの名無しさん
NGNG0088山崎渉
NGNG0089山崎渉
NGNG0090山崎渉
NGNG0091デフォルトの名無しさん
NGNG0092かじゅ猫
NGNGやっぱり機械語書けたほうが良いのかな?
良い参考書あったら教えてくださいな
0093デフォルトの名無しさん
NGNGそれは公式のドキュメントをみるしかないような。
書けるひつようはないと思うけど、binutilsやデバッガに
手を入れるには必須だよね。
0094デフォルトの名無しさん
NGNGちゃんと対策とってるかよ
死滅対策をよ
死滅後の行動とってるかよ
0095デフォルトの名無しさん
NGNGちゃんと対策とってるかよ
死滅対策をよ
死滅後の行動とってるかよ
別に放っておいてもいいか
0096かじゅ猫
NGNG公式のドキュメントは、どこにあるの?
ぐぐったけど無かったよ
0097デフォルトの名無しさん
NGNGhttp://homepage2.nifty.com/m_kamada/l_processors.htm
0098デフォルトの名無しさん
NGNGっていっても殆どがcase文でやってるような
気もするけど。
0099デフォルトの名無しさん
NGNG0100名無しさん@Emacs
NGNG機械語は多くの場合組むものじゃない。
それを生成するプログラムを組む、これが人間のやること。
0101かじゅ猫
NGNGありがとう
0102デフォルトの名無しさん
NGNG0103アシュル ◆adhRKFl5jU
NGNG読みやすいね。もちろんそれの意味するところはかなりムズイんだけど。。
0104デフォルトの名無しさん
NGNG入れなきゃいけないような時代にファイルサイズを小さくするように
命令されたプログラマが覚えた言語だ。
マシン語なんてものは、スピードの遅いパソコンで気のせいでも処理スピード
をあげるよう命令されたプログラマが覚えた言語だ。
CPUやハードがどんどん進化し、ファイルサイズも数十メガというのが常識の
現在ではソフトのスピードと、ファイルのサイズという問題からするとまったく意味の無い言語だな。
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNGはっきりと見えるぐらいでないとだめでしょ。
プログラマなら。
アセンブラだけじゃ片手おちでしゅね。
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNGはるか後ろの方で。
ほらあの点みたいな奴→ .
0109デフォルトの名無しさん
NGNG逆汗のようなものはせず、16進エディタでそのまま読むだけなんですが。
0110かじゅ猫
NGNGVB厨は黙ってろ
0111デフォルトの名無しさん
NGNG微妙だねゴミかと思っちゃう
0112デフォルトの名無しさん
NGNGアセンブラやってるやつはマシン語ぐらい読める
ってなもんじゃないの?
0113デフォルトの名無しさん
NGNG> マシン語なんてものは、
> 〜 クドクド 〜
> 言語だ。
莫迦。
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGこれって先頭にプリフィックスがあるかどうかってどういう風に
判別してるの?
0117デフォルトの名無しさん
NGNGprefixが別のopcodeにmapされてなければイイだけの話では?
0118デフォルトの名無しさん
NGNGこれ修正パッチ(というか実行ファイルそのもの)なんだけど
これってフルスクリーン専用ゲームなんだけど、ウインドウモード専用に出来ない?
バイナリエディタで開いても俺にはさぱりわからない・・・
0119デフォルトの名無しさん
NGNG俺には無理
つか、出来るやつなんて居ないだろ
Cで書かれてんだし
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG仮想OSでできなかったっけ?
グラフィックボードにもよるらしいけど。
死ぬ気で勉強すればつくれんじゃん?
0122デフォルトの名無しさん
NGNG仮想OSだとその辺が・・・
0123デフォルトの名無しさん
NGNG0124118
NGNGどうもありがとうございました。
0125あぼーん
NGNG川o・-・)ノ <先生!こんなのがありました!
__/ / /
\(_ノ ̄ ̄ ̄\
||ヽ|| ̄ ̄ ̄ ̄||
...|| ̄ ̄ ̄ ̄||
http://saitama.gasuki.com/shinagawa/
0126デフォルトの名無しさん
NGNG_、_
( , ノ` ) …
\,; シュボッ
(),
_、_
( ,_ノ` )y━・~~~ フー…
0127デフォルトの名無しさん
NGNGバイナリや環境のファイル系を書き換えた後、
走ってるプログラムのメモリ空間を調べて、
使ってるユーザに気付かれることなく、
新たなプログラムで書き換えたらしいのよ。
0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNGフルスクリーンとウインドウモードではコードが違うわけで、
そこらへんを考慮して作られているのなら
簡単にウインドウモードにできるわけだが。
デバッグしやすいようにウインドウモードにできるようにしているだろうと思う反面、
できるようにしているのならそういう機能が元からゲームについているはずだから、
できるようになっていないのではとも思う。
0130デフォルトの名無しさん
NGNGフルスクリーンしなくても早いよねー。AlephOneとか。
0131デフォルトの名無しさん
NGNGちょっとしたサブルーチンの手直しくらいは
ダンプ見ながら16進でガリガリやってたよね?
オレだけ?
0132デフォルトの名無しさん
NGNGPC88のグラフィックのスクロールくらいのはよくHEX直書きしてたなぁ。
VSYNCとめてOUTでVRAM切り替えてメモリ転送×3回。
もちろん今じゃ書けん。。。
0133山崎渉
NGNG0134118
NGNG0135デフォルトの名無しさん
NGNG今はVBで精一杯な30才です。よろしくね
0136デフォルトの名無しさん
NGNGテンキーで16進数打ち込んで、リアルタイムで縦横チェックサムが
出るプログラムを作ったよ。最初BASICで、そのあとハンドアセンブル
で機械語化。
そのプログラム使ってEDASとかいうアセンブラを打ち込んだ。
0137山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0138デフォルトの名無しさん
NGNG40本の端子の名称と働きと信号の流れについて、Z80ファミリのICの種類と働き、汎用レジスタ、専用レジスタの違い・・・
学生で今こんなことを勉強しているのですがサパーリ分かりません(ι´д`)
0139デフォルトの名無しさん
NGNG特権何とかエラーが出て実行できない
どうすればよろしいのでしょうか?
win2000でvc++使ってます
0140デフォルトの名無しさん
NGNGネタか ?
万が一マジだと言うなら、何のために勉強してるか書いてくれ。
答えることが多すぎるし、どのレベルで回答すればいいか誰もわからんので、たぶんスルーされるよ。
>>139
Windows2000 の仕様だからあきらめろ。
(と言うか、一体なにをやりたいんだか...。)
0141138
NGNG0142デフォルトの名無しさん
NGNG本物 (=Zilog製) の Z80 なのか ?
0143デフォルトの名無しさん
NGNGHALT
0144デフォルトの名無しさん
NGNGNTカーネルだとドライバ組むしかないな
DDKで検索してみれば?
0145デフォルトの名無しさん
NGNG激しく板違いなので、プログラム板に関係する部分の質問を
簡潔にまとめて質問しなおしてね。
今の状態は荒らしにしか見えないっす。
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNGアセンブラで、ブロック転送を行うコード書ける人居ますか?
0149デフォルトの名無しさん
NGNGやりたい事をフローチャートに描き
それをマニュアルのコピーみながらアセンブリ言語に直し
機械語対応表をみながら16進機械語に直し
マイコンボード付属の16キーで打ち込むっ
0150デフォルトの名無しさん
NGNGそれが、慣れてくるとフロー書きとアセンブリ作業をすっ飛ばして
「やりたい事を16キーで打ち込む」に昇華されるのだよ
0151デフォルトの名無しさん
NGNGさすがにそれは....
0152デフォルトの名無しさん
NGNG4017b4で 「2 TLB exception (load or instruction fetch)」とかいう
エラーが出てます。
bool* bi = p_ledCmdVal->GetLedIndexBool(); //問題のC++コード
//機械語
4017ac:8c430000 lw v1,0(v0)
4017b0:00402021 move a0,v0
* 4017b4:8c620010 lw v0,16(v1)
4017b8:00000000 nop
4017bc:0040c821 move t9,v0
4017c0:0320f809 jalr t9
4017c4:00000000 nop
4017c8:8fbc0010 lw gp,16(sp)
4017cc:8fbf0020 lw ra,32(sp)
4017d0:8fb00018 lw s0,24(sp)
4017d4:03e00008 jr ra
4017d8:27bd0028 addiu sp,sp,40
0153デフォルトの名無しさん
NGNG0154山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0155デフォルトの名無しさん
NGNG1101000101010101110010101100000101100010
01561だよん
NGNG0157デフォルトの名無しさん
NGNGそういや、マトリックスの新作は糞だったな
確かにCGは良いのだが、、、あの終わり方はないだろう・・・
0158デフォルトの名無しさん
NGNG>>130とか>>131とか
0160デフォルトの名無しさん
NGNGし○だ先生のところの方ですか?
0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNGhttp://www1.free-city.net/home/s-rf9/page006.html
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGコマンドプロンプトを使うと、
C:¥>
と出ずに、
C:¥>Documents and Settings¥○○>
と出てしまいます。
どうすれば、
C:¥>
と出せるのでしょうか?
ここで、つまづいています…
使っているOSはウィンドウズXPです。
0165デフォルトの名無しさん
NGNGC:\Documents and Settings\○○>
が長いのが気に入らないのかな?
PROMPT=$N:\$G
ってすれば
C:\>
って出るよ。
ユーザー環境変数に追加しておけば、
毎回指定しなくてもいい。
システムのプロパティ→詳細設定→環境変数→ユーザー環境変数→新規→
変数名:PROMPT 変数値:$N:\$G
なぜ機械語スレに書くのか分からんが。
0166デフォルトの名無しさん
NGNGありがとうございます。
全くのド素人で、どこに質問すれば良いのかさえも解らなかったのです。
0167デフォルトの名無しさん
NGNG> 全くのド素人で、どこに質問すれば良いのかさえも解らなかったのです。
ねえ、ローカルルールぐらい読んだらどうよ。
> あらゆる質問はまず すれ立てるまでもない質問はここで スレにしてください。
0168デフォルトの名無しさん
NGNGなるほど、スレ立てるまでも無い質問はここでしてください。って言うのが在るのですね。
御親切に、ありがとうございます。
以後、気を付けます。
0169デフォルトの名無しさん
NGNGプロセッサのマニュアルでオペコードをまずは暗記するところからでしょうか?
0170デフォルトの名無しさん
NGNG当然逆アセンブラなど使いません。外国語をそのまま飲み込むがごとく、
機械語のまま(16進数での表示にはなりますが。。。)素直に読みます。
これならライセンス違反にもならないですよね。
日付は1999/12/17 21:00のものを予定しています。
0171デフォルトの名無しさん
NGNG本当に機械語のまま読まんとあかんのやな。
俺には無理だー(やる気が無いから)。
0172デフォルトの名無しさん
NGNG上巻:基本アーキテクチャ (日本語 PDF ファイル: 4,183KB)
ftp://download.intel.co.jp/jp/developer/jpdoc/24547003_j.pdf
IA-32 インテル(R) アーキテクチャ・ソフトウェア・デべロッパーズ・マニュアル
中巻:命令セット・リファレンス (日本語 PDF ファイル: 9,139KB)
ftp://download.intel.co.jp/jp/developer/jpdoc/24547103_j.pdf
IA-32 インテル(R) アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
下巻:システム・プログラミング・ガイド (日本語 PDF ファイル: 7,838KB)
ftp://download.intel.co.jp/jp/developer/jpdoc/24547203_j.pdf
とりあえず、これらは熟読しないとダメだな。
0173デフォルトの名無しさん
NGNG前置バイト + オペコード + MODRM + アドレスディスプレースメント + 即値定数
386のこの命令の表現形式を頭に叩き込んでるところ。掛け算の九九並に体に馴染ませてから
NTLDRを読み始めたいと思います。
0174デフォルトの名無しさん
NGNGマシン語とアセンブリ言語の対応を表にしたことがあったなぁ。
CC(INT 3) と CD xx(INT xx) なら今でも覚えてるけど、
他はおぼろげだなぁ。
0175デフォルトの名無しさん
NGNGBIOSから直接ロードされるファイルはNTDETECT.COMなんでしょうか。
適当に読んで行けばそのうち分りそうなものですけど。
今の時点では、NTDETECT.COM -> ntldr -> NTOSKRNL.EXE
の順番にロードされると勝手に予想してますけど。
NTDETECTの中を見ると十六進表記で'66'が異様に沢山ならんでいます。
0x66の意味は上のインテルのマニュアルの中巻の2章に載っています。
命令プリフィックス(上では前置バイトと書いたけどこれは古い言い方らしい)とは
G1 ロック及びリピートプリフィックス
G2 セグメントオーバーライドプリフィックス
G3 オペランドサイズオーバーライド
G4 アドレスサイズオーバーライド
の4グループに分かれます。これらはそれぞれ1byteを使って表現されます。
ということで、命令プリフィックスのバイト数は0から4バイトになると思われます。
グループの順序は不問。一つのグループから複数のプリフィックスを指定することは
ダメらしいです。1バイトオペコードマップに埋め込まれて記載されてます。
個別の値をこの際暗記してしまえば、命令文に対する見通しも良くなるはずです。
カッコ内は続くオペコードが決まっている場合のそれ
G1 = {F0(LOCK), F2(REPNE,REPNZ), F3(REP,REPE,REPZ)}
G2 = {2E, 36, 3E, 26, 64, 65} それぞれCS, SS, DS, ES, FS, GSセグメントを指定
G3 = 66
G4 = 67
です。なんのことはありません。
>>174
しばらくは機械語の読み方の練習になりますが、
読めるようになったら一緒にがんばって逝きましょう。
0176デフォルトの名無しさん
NGNGhal.dllやNTKRNLPA.EXEなんかも同時にメモリにロードされるのかな。
ntldrでどこまで準備しているのかは分らないけど、
おそらくPE、PGビットはオンになっているはず。
この辺りの事情に詳しい人はWindows板なんかにいるのかな。
ちなみに2000のntldrはXPをブートできないらしい。
http://www.sitetm.net/column/data/pc/1044978109.html
NTOSKRNL.EXEに制御を渡すまでにどこまで準備しておくのか。
ここがカーネルの設計方針とどう関わってくるのか、ヘタレな漏れには
いまいち分らず。Linuxは例外として、BSDでは古いローダでも
起動できるのを考えると、あんまり良い印象なし。
0177名無し@沢村
NGNG違うよ。
オペコード(1または2バイト)+MODRM(1バイト)+SIB(1バイト)+アドレスディスプレースメント(1または2または4バイト)+即値定数(1または2または4バイト)
だよ。
またMODRMはmod(7-6ビット)、reg(5-3ビット)、R/M(2-0ビット)の各フィールドからなるんだよ。
例えば、MOV(reg1からreg2へ)命令の場合、
100100w 11reg1reg2なんだよ。
wというのは、16ビットか32ビットかを指定するもので、それによってレジスタが決まるんだよ。
命令によってはオペコードの中にwフィールドがないものもあり、その場合はregフィールドの値だけでレジスタが決まるんだよ。
まあ、他にもややこしいことはいろいろあるよ…
0178デフォルトの名無しさん
NGNGMODRMとはmod(上位6,7ビット)とR/M(下位0,1,2ビット)の名前を結合。
MODRM = mod + R/M
R/Mはmodビットの状態(11bのときはレジスタ)によってレジスタオペランド(R)、
メモリオペランド(M)の両方を指定できるという意味からR/Mらしい。
真中の3ビットは、レジスタオペランドの指定やオペコード拡張用
(lgdtやlidtみたいな特殊なもの)に使われます。
mod(2bit),真中(3bit),R/M(3bit)
7 6 5 4 3 2 1 0
mod 真中 R/M
というもの
0179デフォルトの名無しさん
NGNG有無、種類によってバイト長も変わってくる。
1.オペランド数がゼロの場合は1バイト命令
8bitをフルに使って命令を表現
2.オペランド数が1の場合も1バイト命令
5bitで命令を表現し、残りの3bitでレジスタを指定する。
7 3 2 0
オペコード レジスタ
という形
3.オペランド数が2つ(レジスタ、メモリ)の場合は2バイト命令
1バイト目は8bitでオペコードを表現
2バイト目はmodは{00b,01b,10b}のパターン
R/Mはメモリオペランド
真中はレジスタ
4.オペランド数が2つ(レジスタ、レジスタ)の場合は2バイト命令
1バイト目は8bitでオペコードを表現
2バイト目はmodは11bのパターン
R/M、真中でレジスタ二つを指定
という基本的四つの形式。
真中3ビットを特殊命令に使うケースはここでは省略してます。
0180デフォルトの名無しさん
NGNG汎用レジスタを指定する表現
32bit 16bit 8bit
000 EAX AX AL
001 ECX CX CL
010 EDX DX DL
011 EBX BX BL
100 ESP SP AH
101 EBP BP CH
110 ESI SI DH
111 EDI DI BH
セグメントレジスタを指定する表現
000 ES
001 CS
010 SS
011 DS
100 FS
101 GS
110 (予約)
111 (予約)
0181デフォルトの名無しさん
NGNG4通りの意味に読み取れる(000bにしてもEAX,AX,AL,ES)。
それを判別するのはオペコードの種類によって異なるということ。
一般的にはMODRMが必要になる形式はオペランドが二つという命令。
先頭の1byteを見て、オペランド数がいくつなのかをまず連想すれば
速く読めるようになるかな。1byte目が0fなら2バイト命令ということで
MODRMは3バイト目となるのも大事か。
MODRMは上位2bitを見てレジスタ―メモリなのかレジスタ―レジスタの
どちらのパターンなのか判別。16進数で言えば、MODRMが"c0"より大きい値のときは
レジスタ―レジスタというパターン。それ以下のときはレジスタ―メモリ
という形式となる。
そしてレジスタは上の一覧の通り、種類はオペコード次第。
>>177
お待ちしておりました。
0182デフォルトの名無しさん
NGNGプレフィクス(0〜4)+オペコード(1〜2)+(MODRM+SIB)(0〜2)+
ディスプレースメント(0〜4)+即値データ(0〜4)
プレフィクスとは、LOCK、REP、REPNE
オペランド&アドレスの16or32のサイズ逆転に、セグメントオーバーライド関連
オペコードは、そのまんま命令で、
MODRM(SIB)は、>>178以降で、説明してるようだが、本当に分かってるのだろうか…
0183182
NGNG0184名無し@沢村
NGNG正しくは、
wフィールドが存在しない命令では、
32bit 16bit
000 EAX AX
001 ECX CX
010 EDX DX
011 EBX BX
100 ESP SP
101 EBP BP
110 ESI SI
111 EDI DI
となり、
wフィールドが存在する命令では、
32bit 16bit 両方
(w=1) (W=1) (W=0)
000 EAX AX AL
001 ECX CX CL
010 EDX DX DL
011 EBX BX BL
100 ESP SP AH
101 EBP BP CH
110 ESI SI DH
111 EDI DI BH
となる
0185デフォルトの名無しさん
NGNG今日は[命令・レジスタ・メモリ]という命令文における、
メモリアドレスの表現形式についてまとめてみる。
レジスタオペランド指定のその単純な表現と違い、
メモリオペランドは少し複雑になっている。
mod=00,{R/M,base}=101みたいな特殊なケースもあるし。
自分の中で整理するまでは時間がかかりそうなので、
ここでとりあえず理解している範囲をまとめてみる。
メモリオペランド指定にはMODRMが1byteのものと2byteのものの
2種類に分けられる。2byteMODRMでないと表現できないメモリオペランドとは
・インデックスレジスタを使うもの
・ベースアドレスにESP(つまり100)を指定するもの
(R/Mにおける100がMODRM自身の2byte拡張に割り当てられているため)
の二通りのケースが考えられる。この二つは1byteのMODRMでは表現できない。
指定されるメモリのアドレス表現は
セグメント―ベースアドレス―インデックスアドレス(+スケールファンクタ)
―ディスプレースメント の4部分で指定する。
この4っつの使用は任意である。ただしセグメント指定がないときはデフォルト
セグメントのDSを用いるという意味になるし、ベースアドレスが無い時は
ディスプレースメントが必要不可欠となる。
メモリ中のアドレス指定において、セグメントレジスタは独立しているからいいとして
ベース、インデックス、ディスプレースメントの三つの組み合わせは、
例外があったりして少し複雑である。全ての組み合わせを考慮して、
そのビットパターンを網羅することもいいかもしれないが、具体的バイナリを
読めるようになることに目的をおいているので、あまり厳密には考えない。
0186デフォルトの名無しさん
NGNGデフォルトではDSセグメントを使うが、その他のセグメントを参照する場合は
命令プリフィックスで指定する。(プロテクトモードでは、セグメントレジスタに
指定されているのは当然、セグメントディスクリプタへのインデックス値であって
アドレスではない。)
2.ベースアドレス
セグメント内におけるベースアドレス。1byteMODRMにおいてはR/Mにおいて32bitの
レジスタのみを使える。2byteMODRMの場合は2byte目のbase領域(0-2bit)において
32bitのレジスタを指定する。
3.インデックス
これを使うときはMODRMは2byteになる。インデックスレジスタを使わないときは
スケールファンクタは00になっていなければならない。
スケールファンクタ(2bit)の値の意味するところは
00 x1
01 x2
10 x4
11 x8
というもの
4.ディスプレースメント
MODRMが1byte、2byteに関係なくmodの値が
・00はディスプレースメントなし
・01は8bitのディスプレースメントあり
・10は32bitのディスプレースメントあり
という意味。
0187デフォルトの名無しさん
NGNGというか自分が読んでいる古い386の本と用語が少し代わっています。
2byteのMODRMなどというものはなく、MODRM(1byte)とSIDというらしいです。
意味するところはSIDは2byte目のMODRMと上で言われているものと変わりません。
スケールファンクタとは単にスケールというらしい。
SIDとは上にも書いたように、メモリオペランド表現専用です。
>>沢村様
wフィールドとはなんでしょう?オペコードのどこかのビットということに
なるのかな?
0188デフォルトの名無しさん
NGNG8(汎用レジスタ)+SID有り+ベースレジスタなし=10種類
そこでいつくかの特殊ケースを設定されている。
・ESPを指定するはずの100を2byteMODRM有りの意味に使う
・mod=00, {R/M,base}は常識的にはディプレースメントなし
+ベースレジスタはEBP(101)という意味になるが、
これを特殊ケースとして、
「ベースレジスタ無し+32bitディスプレースメントあり」の意味に使う
これはディスプレースメント無しのモードではEBPをベースレジスタとして
使えないという意味になる。
代用としてはmod=01,R/M=101,ディスプレースメントは0を設定する。
というもの
インデックスフィールドに関する例外としては
・100のときはESPをインデックスレジスタとして使う、という意味ではなく、
インデックスレジスタ無しという意味になります。このときスケールは00でなければ
ならない。
即値フィールドはディスプレースメントの後と決まっている。
これで、あとはオペコードを暗記するだけでバイナリが読める、はず。
0189デフォルトの名無しさん
NGNG自分で書いてていうのもなんだけど、内容めちゃくちゃだな。
インテルのPDFにMODRM,SIDのビットパターン一覧が載ってるから
それみて覚えるのが一番効率がいいことは確か、か。
0190mathmania ◆uvIGneQQBs
NGNG0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGもし同じCPUであっても DOS は16bitコード UNIXは32bitコードだろうからね
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG基本的に16bitでも32bitでもCPUが同じなら機械語は同じだろ
ただ、それを解釈するCPU、もしくはCPUのモード(方言)が違うだけ
0195デフォルトの名無しさん
NGNGまあ基本的にはそうなんだが、
x86の場合はデータサイズが変わっちゃうからねえ。
どっちのモードで動いているか把握しておかないと悲惨な事になるぞ。
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGメモ帳の二進数モード
0198デフォルトの名無しさん
NGNGstirling
0199デフォルトの名無しさん
NGNG0200山崎 渉
NGNG0201デフォルトの名無しさん
NGNGif (n>100) return n-10;
else return mc91(mc91(n+1));
}
上のCプログラムを出来ればアセンブリでおながいします m(_ _)m
0202デフォルトの名無しさん
NGNGしょーがねーな
_mc91:
cmp.l #100,er0
ble 1f
sub.l #10,er0
rts
1:
inc.l #1,er0
jsr @_mc91
jsr @_mc91
rts
展開するのはめんどいので素直に再帰。
0203201
NGNG有難う御座います。
しかしプログラム間違えてました申し訳無いです
else return mc91(mc91(n+11));
でした。しかも、MIPSアセンブリ言語でした。
因にプログラムの動きは
n>100の時は1回だけ-10して終了。
n=<100の時はn=91になるまで計算を繰り返す。
でつ
0204山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207
NGNGあるいは、こういうこと解説してある本でも良いんですけど。
今はとりあえず我流で3バイトの整数部+1バイトの指数部(X*2^n)でやってるんですが、
なんか違うというか、もっと上手いやり方があるような気がして。
0208デフォルトの名無しさん
NGNGC実践プログラミング(オライリー)に書いてあった
0209207
NGNG即レスありがとう。
ググってみると結構高い本みたいですが、探してみます。
0210デフォルトの名無しさん
NGNGフォーマットは、IEEEの規格があるのでCPUのマニュアルなんかに書いてあるはず。
足し算引き算は、指数部の桁を合わせて仮数部を計算。
掛算は、指数部を足し算して仮数部だけで掛算。
割算は、指数部を引き算して仮数部だけで割算。
誤差がどうのこうのってな事があるので、数値演算の本を読んだほうがいいと思う。
0211デフォルトの名無しさん
NGNGftp://download.intel.co.jp/jp/developer/jpdoc/24547003_j.pdf
第8章を参照。
0212デフォルトの名無しさん
NGNG0213207
NGNGレスありがとうございます。
>>211
あ、私の説明が全く不十分だったのですが、8ビットの加減算しか出来ないCPUで
(今使っているのは8051って石の派生チップなんですが)Cのfloat相当の
浮動小数点の処理を効率よくやる方法はないものかな、と思っておりまして。
でもレスありがとうございます。
0214デフォルトの名無しさん
NGNG浮動小数点のフォーマットがよく分かるよ、
ってことだったんだけど。
0215デフォルトの名無しさん
NGNG8051か。
外とfloatのデータをやりとりしないなら、
俺フォーマットのほうが幸せかもしれない。
昔Z80で数値演算する本がえらく参考になったが…
もう手に入らんだろうなあ。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG---------------------------------
00 00 95 B3 00 00 00 83 : 00 00 00. 83
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG0221名無し@沢村
NGNGhttp://hp.vector.co.jp/authors/VA015412/
0222デフォルトの名無しさん
NGNG0223鳥取砂丘&rlo;ムレーハ村リ゚フ@&lro; ◆Dream/3P/.
NGNG・PEヘッダがある
・オプショナルヘッダが独自
あとはエクスポート・インポート関係?(´・ω・`)
0224デフォルトの名無しさん
NGNG「コンパイラ・スクリプトエンジン」相談室 3
http://pc2.2ch.net/test/read.cgi/tech/1070089173/
↑の401が貧乏人向けに素敵なページを紹介して解決した模様?
解決したならしたとこっちで言わんと駄目だろうに。
0225↑スレの388
NGNG乙であります。
来週からそこの資料見て作業しようと思っております。
ありがとうございました。
自分はインストラクションコードへのコンパイルや外部シンボル
などのリロケーションテーブルまでは作成済みの段階であり、
あとはその資料を見ながら適当にexeやobjの形にしていく
だけであります。
今はexeを作成する際に、Cランタイムをmsvcrt.dllから拝借でき
ないか、と考えておりまして、とりあえずmingwのスタートアップ
コードを眺めている次第であります。stdioやmallocとかの初期化は
どうやんのかとか、その辺の情報ありましたら引き続き情報提供
願います。オーバー
0226名無し@沢村
NGNG恐ろしすぎるぞ!!おまーら↓
http://hp.vector.co.jp/authors/VA015412/
0227デフォルトの名無しさん
NGNGもう少し読みやすくしてくれ。
オンライン・ハイパーテキストのためのスタイルガイド
http://kanzaki.com/docs/Style/
0228デフォルトの名無しさん
NGNGデバッガで見た時わかりやすいように関数名とか埋めこみたいんだけれども
0229デフォルトの名無しさん
NGNG文字列の表示だけじゃつまらん。TSRの作り方も解説してくれ。
>>228
たいていアセンブラにデバッグ情報を埋め込むためのオプションがあると思うけど。
0230デフォルトの名無しさん
NGNGbcc32とかで-S付けてアセンブリソース吐かせると、?debugなんちゃらが付いてくるじゃないですか
簡易コンパイラ作りたいので、あの意味が知りたいのです
0231名無し@沢村
NGNGC言語?C++?Java?VB?COBOL?HSP?ふっ…おまーらって、ホントザコだな。
おれはE言語やってるね。
おまーら、D言語ってのは聞いたことあるが、E言語って聞いたことないだろ?
おまーらよ、E言語ってのはな、「executive language」日本語に訳すると「実行可能言語」だよ。
まあ、ぶっちゃけ、早い話がマシン語のことなんだよ。わかる?
おまーらよ、E言語はまたの名を「実行可能言語」とか「実行ファイル記述言語」とか呼ばれるよ。
それにしても、E言語ってすげー命名だな。命名者はおれだぞ!このおれだ。
おれはもしかして、E言語の祖と呼ばれるようになるかもしれないな。どうよ?
http://hp.vector.co.jp/authors/VA015412/
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG> Douglas Crockford writes:
> 'I chose E because of the progression B, C.
> I observed that there was no language D.
> I figured it was a bad luck letter, so we moved on to E.
> That 'E' was also the initial of Electric Communities was noticed at the time.
> It also tied in to our development of the Unum distributed object model.'
0234デフォルトの名無しさん
NGNG1110010101101000!
10100100?
0235デフォルトの名無しさん
NGNGインポートテーブルとか、超面倒ですな。
やる気なくなってきた。
0236デフォルトの名無しさん
NGNGあがくなって
0237デフォルトの名無しさん
NGNG0238名無し@沢村
NGNGほんにおまいら〜♪
http://hp.vector.co.jp/authors/VA015412/
0239わかるかな。
NGNG0240わかるかな。
NGNG0241わかるかな。
NGNG6E 75 72 75 70 6F
6E 75 72 75 70 6F
6E 75 72 75 70 6F
6E 75 72 75 70 6F
6E 75 72 75 70 6F
0242ANSI
NGNG0243デフォルトの名無しさん
NGNG8140814081408140814081408140814081402081510A814081408140814081408140837E814081DA
8151816A0A8140814081408140814081408140814081402F0A814081408140814081408140814081
40202F814081408140815F815F0A814020B3B2B0DD8140814083A12F97B9814081408140207C8140
7C0A81408140B3B2B0DD8140207C2E81977C81408140814081407C81407C8140B6DEAFB6DEAFB6DE
AF0A81408140814081408140814081407C202F207C8140814081408140906C0A8140814081408140
8140814081407C2F81407C814081408140203C2081403E814083A981BF0A81408140814081408140
2081512F8140207C8140815E815E2E82753B814581CD8145292F0A81408140814081408140816981
5183749C638140814081408140814081408140202F20814081A93E3E3233392D323432
0244デフォルトの名無しさん
NGNG0245あぼーん
NGNG0246あぼーん
NGNG0247デフォルトの名無しさん
NGNGwフィールドとは8bitのレジスタアクセスが可能な
命令にだけあるフィールドであって、セグメント属性や
命令プリフィックスで指定されるオペランド長(16/32bit)
の指定とは全然別の概念でしょ。
0248デフォルトの名無しさん
NGNG>>246
いったい何が・・・
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGよく見るオタクのAA。
0252デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG175 :ム板住人 :04/03/11 15:31 HOST:ipf011-087.kcn.ne.jp<8080><3128><8000><1080>
削除対象アドレス:
http://pc2.2ch.net/test/read.cgi/tech/1035288252/255-257
削除理由・詳細・その他:
5. 掲示板・スレッドの趣旨とは違う投稿
6. 連続投稿・重複
7. エロ・下品
3連続のウンコAA+削除人に対する悪態です。
未来の書き込みに削除依頼を出す馬鹿。
↓では、三連続ウンコAA+削除人に対する悪態どうぞ。
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNG多分 254 と同じ人が 255-257 を書き込んだんだと判断したんだろ。
0258デフォルトの名無しさん
NGNG削除報告していないあたり、依頼を見て削除したわけじゃなさそうだな。
0259デフォルトの名無しさん
NGNGがんばってるのは良いことなのにな。
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNGインポートテーブルとか、超面倒ですな。
やる気なくなってきた。
0263名無し@沢村
NGNGプログラム言語の歴史が変わった歴史的瞬間だ。
http://hp.vector.co.jp/authors/VA015412/
0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNG俺を導いてくれ!
0266デフォルトの名無しさん
NGNGウィルス
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNGコンパイルしたら機械語なんです。
若いヒトにはそれがわからんのです。
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNGただのしったか
0271デフォルトの名無しさん
NGNGforth もある。
0272デフォルトの名無しさん
NGNG教えてください。NOPとして無視されるのでしょうか?
(K6-2でSSE命令とか、Pentium4で3DNow!命令とか)
0273デフォルトの名無しさん
NGNGそのふたつならエラー
0274デフォルトの名無しさん
NGNGアプリケーションが不正な処理で
強制終了されるということでしょうか?
0275274
NGNG(DelphiだとEInvalidOpになるようです)
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNG0280名無しさん
NGNG01 08 04 fe 38 22 65 88
アセンブリ(例)
LDA $100
STA $101
JMP ADDRESS100
マシン語をバイナリエディタで組んだ人なんて聞いたことない。
もっとも本についていたバイナリデータを打ちこんだことは
あるが。。。今だったらあり得ない。
簡単なお絵かきツールだったのだが根性で打ちこんだ15年前。
懐かしい。
0281デフォルトの名無しさん
NGNGところで、マシン語とかよく分からないんで、
検索したら以下のサイトにたどり着きました。
http://hp.vector.co.jp/authors/VA015412/
そこでマジ質問なんですが、
このサイトって信用して大丈夫なんでしょうか?
なんか全面的に不安なんですが…。
0282名無し@沢村
NGNG>同じコードの表現方法が違うだけですからね
そうとも限らないぞ。
解釈の仕方によっては、同じアセンブリ言語が別のマシン語コードに翻訳される場合も有り得る。
0283デフォルトの名無しさん
NGNG>今だったらあり得ない。
まーそう仰らずに
「ファイル名を指定して実行」で debug と入れてくださいな。
0284デフォルトの名無しさん
NGNG究極だったのはAlphaプロセッサー上でのVAXマクロコンパイラだったなあ。
VAXアセンブリで書かれたコードをコンパイルしてAlphaのバイナリを
吐き出すというゲテモノ。
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNG「惑星アライメント・・・、半端者は生きることを許されない星・・・」
0288デフォルトの名無しさん
NGNGLD (ERO), A
0289デフォルトの名無しさん
NGNGゴダイゴなら俺に質問しろ!
http://pc5.2ch.net/test/read.cgi/tech/1035288252/
0290デフォルトの名無しさん
NGNGあれ、どこにあるかわかる人いますか?
0291デフォルトの名無しさん
NGNG転載サイト
http://www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/intro.html
本家MSサイトに残っているページへのリンク集
http://ec.uuhp.com/~archive/make_exe_for_hsp/msdn_peheader.html
0292デフォルトの名無しさん
NGNGあー、これこれ。探してたのは。どもね。
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295名無しさん@そうだ選挙に行こう
NGNGああ、昭和は遠くなりにけり。
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNGintelにあるよ
0299デフォルトの名無しさん
NGNGまぁマシン語を組むのに必要なのはどちらかというと
CADとかアイディアプロセッサとかの類だからな。
0300デフォルトの名無しさん
NGNG命令はMSB側4ビットで、次の4ビットがアドレッシングで、残りは全部データっつう
簡単な代物だけど。
アセンブラを自作するのが面倒で、それで遊ぶのをやめてしまったな。
今からすると命令16個しかないから、簡単そうだけど。
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNGなんかもっと根本的に知りたくなって今、Z80の古い本読んでるんだけど、
これから
トラ技系の簡単なので物理的になんかやりつつttp://www.cqpub.co.jp/hanbai/hmenu.htm
「はじめて読むマシン語」「はじ〜8086」「はじ〜486」
といって問題ないですか?
0305デフォルトの名無しさん
NGNGその方がもっと君の腕の幅が広がるだろう。
0306デフォルトの名無しさん
NGNGx86だけやってても駄目。いろんな言語を選り好みなく
使わないと。
0307デフォルトの名無しさん
NGNGマシン語の勉強したいんですけど、
何かいいのありますか?
0308デフォルトの名無しさん
NGNG0309ほんたま
NGNGおみゃ〜よ、そりは「スリムドカン」を使って勉強するといいよ。
「スリドカン」はdos窓で動くプログラムはもちろんのこと、windowsプログラムもサクッ!とつくれるマシン語でプログラムする開発環境よ。
おまけにダイアログボックスを編集してプログラムに取り込めるリソースエディタまで付属しているから、ちょっとしたマシン語版のVisual C++といえるな♪
これだけのものが無料でダウンロードできるんだから、マシン語を勉強したいと思う者にはバイブル的存在だ。
「スリムドカン」によるプログラミングの詳しい解説は↓のホームページを見るといいよ♪
http://hp.vector.co.jp/authors/VA015412/
0310デフォルトの名無しさん
NGNGありがとうございます。
評価してみたいと思います。
0311デフォルトの名無しさん
NGNGhttp://hp.vector.co.jp/authors/VA015412/colum/menu.htm
0312デフォルトの名無しさん
NGNG0313デフォルトの名無しさん
NGNGリソース書き換え出来るのはよく知られてはいるけどさ、色んな海外製
フリー/シェアソフトの日本語化とかやってるの見ても、直接リソース
書き換えているのって無いじゃん。みんなパッチという形にしてるじゃん。なんでかな?
直接弄ったら、著作権侵害されたとかリバースエンジニアリングされた
とか、クラックされたとかで訴えられたりしないようにするためにわざわざパッチという
グレーな形態にしてごまかしているんだよ。それなのに、よりによってマイクロソフトの製品に
対して実例で図付きで示すなんて、勇気あるな。しかもワードなんかもやってみようなんて
改竄を薦めているし。これはマジ訴えられる可能性大きいよ。
まあ、訴えられないにしても、ベクターにチクッたら即刻ID永久削除だね。
せっかくいいソフト作ってたのにかわいそう。スリムドカンは永久に
抹殺されるのか。残念。こういうコラム書くなら別のサイトで完全に名前
隠してやれば良かったのに。正直な人なんだなぁ。
0314ほんたま
NGNGおみゃ〜らよ、リソースエディタ2つ以上つくれるようになったぞ。不完全ではあるがな…
おみゃ〜らよ、サンプルのDaialog.asmをビルドすると、2つあるダイアログのうちのひとつが開き問題ないように見える。
だがこりはリソース内部ではデータ
がまだどっかおかしくなっているのだ。だからいろいろいじくるとボロが出てくる…
おみゃ〜らよ、もう少しデバッグしなけれなならんようだ…
だがここまでくるとおりはもはや神だな♪
だがおみゃ〜らよ、おりは次のメニューの作成に移ってもいいかな?どうじ?
メニューをつくりながら、ひまを見てはダイアログをあとちょっとデバッグするという路線でいこうと思うのよ。自分じどうか?
0315デフォルトの名無しさん
NGNGワラタ
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNGに機械語開発環境として
Z80シミュレータ for Win32が紹介されてた
スリムドと同じようなもんなのかな
0318ほんたま
NGNGおみゃ〜ら〜、「スリムドカン」のダイアログエディタはひとつのダイアログばかりでなく、複数のダイアログを自在に編集し、しかもそれをメインウィンドウから別々に開くことができるまでに進化したぞ!わかるか?
つまりおりは神だってこと!!
おみゃ〜らよ、一応自己テストではバグは出なかったが、使っているうちにバグが見つかるかもしれんから、そのときは報告してくれ♪
おみゃ〜らよ、「スリムドカン」もいよいよ完全なダイアログエディタを備えるまでになったってことだ!!
おりは神だな♪
おみゃ〜らよ、次はいよいよメニューエディタの作成に取り掛かるぞ!
今年中にメニューエディタ、アイコンエディタまでは完成させときたいな♪どうよ?おみゃ〜ら〜?
おりは神だな♪
03198086アセンブリ言語の質問。
NGNGcount=0
for(i=0;i<=1499;i++)
{
if(Array(i)<0)
{
Array(i) = -Array(i)
count++
}
}
;Arrayはsigned 32bitsの整数です。
;どなたかお願いします。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG...
0322デフォルトの名無しさん
NGNGvariable as signed number and leaves the answer in ANSWER.
That is,
ANSWER = Dbyte + Dword + DDword
どなたか、help meっす。
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGたぶんどっかの工業高校でしょ?
0325324
NGNG0326デフォルトの名無しさん
NGNG1. Write an 8086 assembly language module that emulates the C language program section shown. The data Array is a long integer (signed 32 bits).
count = 0;
for ( i = 0;i<=1499;i + +)
{
if (Array(i)<0)
{
Array(i) = -Array(i)
count + +
}
}
2. Write an 8086 assembly language module that adds the following (partial) variable
as signed number and leaves the answer in ANSWER. That is ANSWER = Dbyte+Dword+DDword (DDword is double word)
3. Write equivalent string instruction for these two program portions :
a) mov ax, [SI]
mov [DI],ax
inc SI
inc DI
b) mov ax, [SI]
dec SI
dec SI
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNG0329デフォルトの名無しさん
NGNGそういうお前もアフォ。
0330デフォルトの名無しさん
NGNG8086にはDDwordはない。
問題が不適当なので、答えは書けない。
てか、こんな問題を出す低レベルな学校やめちまえ。
0331デフォルトの名無しさん
NGNGQ.2 なんて余計な "D" 取れば意味通じるし。
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
NGNGもうこんなスレこないだろ
0334デフォルトの名無しさん
NGNG8086には、ここで云うDDwordくらいあるだろゴルァ!
DDword is double word って書いてあるだろ。16+16=32 bitだよ。ボケが。
得意げな顔して何が、「8086にはDDwordはない。問題が不適当なので、
答えは書けない。」だよ。お前は本当に8086知ってるのかと問いたい。
問い詰めたい。小1時間問い詰めたい。お前、偉そうに書込みたいだけちゃうんかと。
0335ほんたま
NGNGおみゃ〜よ、Dwordがすでにdouble wordだよ。わかるか?
つまりDwordがすでに16+16=32 bitなんだよ。
ちなみにwordなら8+8=16 bitな。
だからおみゃ〜よ、DDwordとDが2つつけば、double double wordのことだよ。
つまり32+32=64 bitな。わかるか?
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNGほんたま、中坊レベルの英語も出来んのか。カワイソウ
その理論だとDbyteはdouble byteってことになるが、
wordも使ってるのに、double byteはないでしょう。
最初のDはdigitで、ここでは単に数値を意味してる。
0338デフォルトの名無しさん
NGNG教えてください
0339ほんたま
NGNGおみゃ〜ら〜、「スリムドカン」の最新版をアップしたぞ〜♪
おみゃ〜ら〜、「スリムドカン」の最新版はすげーぞ〜♪
まずダイアログエディタにバグが見つかったので、それを直した。
次におみゃ〜らよ、サンプルプログラムをすこぶる充実させたから、見ちみれ?
おみゃ〜ら〜、サンプルにはビットマップの描画サンプルと、「ファイルを開く」コモンダイアログを出すサンプルが仲間入りしたぞ〜。わかる?
特に「ファイルを開く」コモンダイアログを出すのは難しく、nasmとかのいいサンプルがないか探したんだが、結局見つからず自力で実装したという次第よ。
おみゃ〜ら〜、「スリムドカン」のサンプルもいよいよ「猫でもわかる…」のサンプルと同レベルのものが登場してきたよ。
つまり、「スリムドカン」はいよいよ中級のウインドウズソフトがつくれるソフトになってきたってこと!!
おみゃ〜ら〜、サンプルにビットマップの描画サンプルと、「ファイルを開く」コモンダイアログを出すサンプルがあるってことは、もはや「スリムドカン」でつくれないウインドウズソフトはないといっても過言ではないのではなかろうか?
どうじ?おりはもはやここまで来ると神だな♪自分じどうじ?
0340デフォルトの名無しさん
NGNG↑のマルチレス削除依頼通るか?
0341デフォルトの名無しさん
NGNG所構わず突如投入される単発質問よりよっぽどいい
0342デフォルトの名無しさん
NGNG0343ほんたま
NGNGおれに甘えていいぞ♪
0344デフォルトの名無しさん
NGNG拠点を構え、業績急上昇中!未経験者大募集中!の
ソフトウェア開発会社
グリーンシステムを応援するHPです。
http://www.geocities.jp/grs_hp/
応援するスレはこちら!
http://school4.2ch.net/test/read.cgi/job/1077432387/
最高の会社にするため、みんな頑張ってます!
0345ほんたま
NGNGグリーンシステム…造園会社?
0346デフォルトの名無しさん
NGNG神!
小鳥!
0347ほんたま
NGNGおみゃ〜らよ、なぜ宇宙一すげーかわかるかな?
おみゃ〜らよ、おりはな、「Visual C++」で自作したDLLをスリムドカンでつくったプログラムから呼び出すのに成功したんだよ!わかる?
おみゃ〜らよ、DLLを呼び出すプログラムを「Visual C++」」でつくるには、Libファイルをリンクに設定したり、ヘッダファイルをインクルードしたりとやるべきことは多いだろ?
おみゃ〜らよ、DLLを呼び出すプログラムを「HSP」でつくるにも、やはりDLLの他に「.as」ファイルが必要だよ。
だが、「スリムドカン」の場合、DLLの他には一切何も必要ないんだな〜う〜ん、これが…自分じわかる?
つまり「スリムドカン」の場合、DLLさえあればDLLを呼び出すプログラムがビルドできるってわけ♪
おみゃ〜らよ、おりは宇宙一画期的だと思わないか?
おみゃ〜らよ、宇宙一すげ〜とわめいたのはそういうことよ♪
おみゃ〜らよ、自分じどうじ?
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG情けなくって涙が出てくらぁ。
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG0353emulator 8086
NGNGアセンブラ言語(emulator8086 & logic flex使用。)を書いてます。console portのcarriage returnに基づいて日付を
outputしなければなりません。一応、プログラムを書いたんですが未完成です。このcodeのbcdsioのsubroutineをちょっと変えなきゃいけないと思うのですが。
もしわかる人がいたら、助けてください。
0354emulator 8086
NGNGstart:movah,00h
moval,11100011b
mov dx,1
int14h
movah,04h
int1Ah
jcerror
movcentury,ch
mov year, cl
movmonth,dh
movday,dl
moval,month
callbcdsio
moval,'/'
callsiochar
moval,day
callbcdsio
moval,'/'
callsiochar
moval,century
callbcdsio
moval,year
callbcdsio
0355emulator 8086
NGNGerror: moval,0dh
callsiochar
moval,0ah
callsiochar
ret
bcdsio: movch,al
movcl,4
shral,cl
oral,30h
callsiochar
moval, ch
andal,0Fh
oral,30h
callsiochar
ret
siochar: movdx,1
movah,01h
int14h
ret
centurydb ?
yeardb ?
monthdb ?
daydb ?
0356デフォルトの名無しさん
NGNGCQlpbnQJMTRoDQoNCgkJbW92CWFoLCAwNGgNCgkJaW50CTFBaA0KCQlqYwllcnJvcg0KDQoJCW1v
dgljZW50dXJ5LCBjaA0KCQltb3YJeWVhciwgY2wNCgkJbW92CW1vbnRoLCBkaA0KCQltb3YJZGF5
LCBkbA0KDQoJCW1vdglhbCwgbW9udGgNCgkJY2FsbAliY2RzaW8NCgkJbW92CWFsLCAnLycNCgkJ
Y2FsbAlzaW9jaGFyDQoJCW1vdglhbCwgZGF5DQoJCWNhbGwJYmNkc2lvDQoJCW1vdglhbCwgJy8n
DQoJCWNhbGwJc2lvY2hhcg0KCQltb3YJYWwsIGNlbnR1cnkNCgkJY2FsbAliY2RzaW8NCgkJbW92
CWFsLCB5ZWFyDQoJCWNhbGwJYmNkc2lvDQoNCmVycm9yOg0KCQltb3YJYWwsIDBkaA0KCQljYWxs
CXNpb2NoYXINCgkJbW92CWFsLCAwYWgNCgkJY2FsbAlzaW9jaGFyDQoJCXJldA0KDQpiY2RzaW86
DQoJCW1vdgljaCwgYWwNCgkJbW92CWNsLCA0DQoJCXNocglhbCwgY2wNCgkJb3IJYWwsIDMwaA0K
CQljYWxsCXNpb2NoYXINCgkJbW92CWFsLCBjaA0KCQlhbmQJYWwsIDBGaA0KCQlvcglhbCwgMzBo
DQoJCWNhbGwJc2lvY2hhcg0KCQlyZXQNCg0Kc2lvY2hhcjoNCgkJbW92CWR4LCAxDQoJCW1vdglh
aCwgMDFoDQoJCWludAkxNGgNCgkJcmV0DQoNCmNlbnR1cnkJZGIgPw0KeWVhcglkYiA/DQptb250
aAlkYiA/DQpkYXkJCWRiID8NCg==
0357デフォルトの名無しさん
NGNGなぜでしょう?ちなみに、コードそのものはデバッガのCPU画面で見たアセンブリコードを見る限り正しいんですが...。
#define _CODE(X) (((void (*)())X)())
int main(int,char**,char**)
{
_CODE
(
"\x54"//PUSH ESP
"\x57"//PUSH EDI
"\xB4" "\x02"//MOVE AH 02h
"\xB7" "\x41"//MOVE BD 41h
"\xCD" "\x21"//INT 21h
"\x5F"//POP EDI
"\x5C"//POP ESP
"\xC3"//RET
);
return 0;
}
0358デフォルトの名無しさん
NGNG0359何か教えてくれ
NGNG32 2E 64 6C 6C 00 F3 8D 9A C0 C0 CC C0 C0 C0 02
C4 FF FF 33 30 EC 60 80 00 07 06 C2 60 03 10 F3
C9 EF E2 63 D8 C2 79 56 71 07 A3 CF 59 C5 90 8C
CC 62 85 82 A2 FC F4 A2 C4 5C 85 E4 C4 BC BC FC
12 85 A4 54 85 A2 D2 3C 85 CC 3C 05 17 FF 60 85
DC FC 94 54 3D 5E 5E 2E 15 A8 19 EE D7 BF DF 66
DE 36 B3 03 86 FF 4F EB EE 60 02 D2 DF 56 76 81
E9 A0 CC E4 0C 90 38 CC CE 00 57 06 06 1F 46 66
06 F9 EA BD 8E 30 B1 07 0C 7C 8A DC 8C AC 3C 0C
4C 50 8F 80 80 00 14 2B 40 79 20 36 13 42 1A 46
83 3D 0A E5 30 C1 34 0A 20 D3 50 0A 68 4E 00 11
61 C2 60 C0 C0 C0 C3 40 7D A0 57 92 5A 51 02 A4
DD 60 0E 42 F6 2B 14 00 9D 98 A0 57 94 92 58 92
08 75 AB 02 54 1D 1B AA 3A A0 97 1D F4 8A 52 73
F2 93 A1 6E 35 80 AA E3 C0 50 E7 C4 30 0A 86 35
D8 C1 08 24 0E F1 30 84 85 07 EE 53 03 E6 92 EE
1A 15 91 9D A0 74 F0 79 29 58 2A 32 3E EE 10 07
83 F6 9D 8F 8D 0C 13 22 E7 9A 98 4B EB C5 07 EB
88 29 3A EE C9 3F 20 10 C1 DB A0 20 FF 3F D5 D2
EC CB 68 38 0E 65 00 2B 4B 8D 80 E5 05 28 CE 61
58 03 C8 D7 01 62 03 20 E6 00 96 39 76 E0 B2 34
B5 AA 28 37 33 C5 48 2F 25 27 87 C1 39 31 27 C7
AD 34 2F B9 24 33 3F 2F B8 24 B1 A8 64 34 30 87
1A 10 80 D4 01 3C 06 A3 41 31 12 01 00 BB 4E 94
BB 00 0A 00 00
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNG現代のパンチカード
http://www.izu.fm/shop/sheetorga.htm
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNGC30000
0368デフォルトの名無しさん
NGNGカナをふれといっといて C30000 ですか。そうですか。JP 0 ですか。
C7
0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNGこれをどうやったら日本語、もしくはURLか何かに変換できますか?
変換コードは多分shift-JISだと思います。
0371デフォルトの名無しさん
NGNGその例なら左から68,74,7x 右からだとxB,0E,8E 半端の所はxで書いた。
区切る所を間違えると文字らしいコードにならないよ。
0372デフォルトの名無しさん
NGNGレスありがとうございます。
>>370に書いた数列は実は最初のごく一部で、実際の書き込み
を全て16進数に直してみたら、こうなりました。
68 74 74 74 3A 2F 2F 66 34 31 2E 61 61 61
2E 6C 69 76 65 64 6F 6F 72 2E 6A 70 2F 2F
6B 61 7A 75 6B 6F 62 65 2F 70 68 70 6A 6A
79 66 75 6C 2F 6A 6F 79 66 75 6C 2E 70 68 70
これをいちいちコード表を見ながら変換していくのは面倒なので、
何かいいツール、任意の変換コードを使って自動で変換できる
やつなんかありませんか?
また、最初の2進数を16進数に変換する段階で、このツール
ttp://www.vector.co.jp/soft/win95/personal/se139137.html
を使ったんですけど、これだと一度に8文字ずつしか変換できないので、
もっと効率的に変換できるツールはありませんか?
よろしくお願いします。
0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNGundump とか。
httt://f41.aaa.livedoor.jp//kazukobe/phpjjyful/joyful.php
ページが見つかりませんけど。
0375デフォルトの名無しさん
NGNGあった気がするのですが、どなたかご存じないですか?
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNGツマンネ
0378デフォルトの名無しさん
NGNG>>375は正しい解答だと思うが。
0379デフォルトの名無しさん
NGNGここの"Hello World"の記事なのですが
B4 09 BA 0B 01 CD 21 B4 4C CD 21 91 E5 89 BA 97
65 8E 71 82 CD 8F 97 8E 71 83 41 83 69 82 CC 92
86 82 C5 88 EA 94 D4 83 4C 83 8C 83 43 82 C5 83
58 83 65 83 4C 81 F4 0D 0A 24
これをメモ帳で貼り付けてcomに拡張子を直して
コマンドプロンプトで実行しても、何もなりません。
なぜでしょうか?
0380デフォルトの名無しさん
NGNGかな
0381デフォルトの名無しさん
NGNG電気代払えずに凍死したかな?
0382デフォルトの名無しさん
NGNGしょうがねぇ、つられてやるか
バイナリエディタを使え
0383デフォルトの名無しさん
NGNGマ板の某スレで初心者のプログラムを間違っていると罵倒したあげく、反論を食らって撃沈された。
しかも、直後に初心者でもやらないよいような勘違いを論拠に、見当外れの勝利宣言をして再度轟沈。
たぶん恥ずかしくて出てこれないのではないかと思われ。
#リアルタイムで見ててかなーり面白かった。
0384デフォルトの名無しさん
NGNGこれか?
http://pc5.2ch.net/test/read.cgi/prog/1087570224/802-839
笑かしてくれるなw
0385デフォルトの名無しさん
NGNG書いてあるじゃないですか。
0386デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGhttp://www.din.or.jp/~kocharin/
単純すぎてあんまり勉強にはならんが
機械語恐怖症の治療にはなる。
0391デフォルトの名無しさん
05/01/23 06:21:56演習問題があったな。
0392デフォルトの名無しさん
05/01/24 08:09:16http://science3.2ch.net/test/read.cgi/math/1060287216/325
0393デフォルトの名無しさん
05/02/15 22:09:44おっ、なかなか面白いプログラムだね。
まあ、実用性重視して、4行目の一つ目、C9
としたのは、まあ許せるけど、次の EF は、×。
正解は、EAだ。 そうしないと無限ループに
おちいる。 とにかく、楽しいコーディングだな。
この機械言語見てるだけで、半日はイケる。
0394デフォルトの名無しさん
05/02/21 09:50:170395デフォルトの名無しさん
05/03/04 20:54:190396デフォルトの名無しさん
05/03/04 23:35:320397デフォルトの名無しさん
05/03/05 02:33:290398デフォルトの名無しさん
05/03/05 02:54:120399デフォルトの名無しさん
05/03/05 03:12:300400デフォルトの名無しさん
05/03/05 04:09:410401デフォルトの名無しさん
05/03/05 04:52:02Import Table address and size (offset 104)
と、PEヘッダの後ろのほうにある
IAT(Import Address Table) address and size (offset 192)
てどう違うの?(pecoff.doc表記)
0402デフォルトの名無しさん
05/03/05 15:37:44思い切ってあげてみる。
0403デフォルトの名無しさん
05/03/05 15:42:40スレ主のあれの仕様上の欠陥は64bitCPU対応OSのセキュリテーで動かなくなることなのか??
0404デフォルトの名無しさん
05/03/05 16:20:06とかいう決まりってあるんですかね。
例えば セクションの並びが
.text(Virtual Address= 0x1000 raw addres=0x400)
.data(Virtual Address= 0x2000 raw addres=0x800)
の場合、
.data(Virtual Address 0x2000 raw addres=0x400)
.text(Virtual Address 0x1000 raw addres=0x800)
という配置をして良いのかどうか。
0405デフォルトの名無しさん
05/03/05 20:30:49でた。
ほんとうにたまげた〜話
略してほんたま
あれはほんたま氏のサイトではない。
0406デフォルトの名無しさん
05/03/07 19:48:33私には信じられません。
0407デフォルトの名無しさん
05/03/07 21:21:07無限ループにならないというか「不正な〜」で終了させられる。
>>356はbase32ですか?
0408デフォルトの名無しさん
05/03/07 21:43:27アセンブリで書かれてた。
0410デフォルトの名無しさん
05/03/07 22:06:38>>359は何マシンか解りますか?
条件によっても変わってくるけど、
EF:out dx,eax
で良いか?
EAだとjmpになった。
0411デフォルトの名無しさん
05/03/07 22:39:04いえいえ、そういうんではなくて、
なぜあれで解ってしまうのか理解できなかったってことです((;^_^A
本当にわかってるんですね。。。
0412デフォルトの名無しさん
05/03/07 22:44:59付属している虐アセンブル機にかけるという手順。
0414デフォルトの名無しさん
05/03/07 23:06:260415デフォルトの名無しさん
05/03/07 23:06:580416デフォルトの名無しさん
05/03/07 23:07:320417デフォルトの名無しさん
05/03/07 23:08:15フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
0418デフォルトの名無しさん
05/03/07 23:24:10フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
0419デフォルトの名無しさん
05/03/07 23:24:42フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
0420デフォルトの名無しさん
05/03/08 00:00:27フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
0421デフォルトの名無しさん
05/03/08 00:05:170422デフォルトの名無しさん
05/03/08 00:07:17フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
フォンタマ氏のスレは埋めさせてもらう。
0423デフォルトの名無しさん
05/03/08 00:08:040424デフォルトの名無しさん
05/03/08 00:21:27専用ブラウザにNGワード設定して透明あぼ〜んで放置しとき。
0425デフォルトの名無しさん
05/03/08 08:20:210426デフォルトの名無しさん
05/03/08 14:47:080428デフォルトの名無しさん
05/03/08 19:34:130429デフォルトの名無しさん
05/03/08 19:34:440430デフォルトの名無しさん
05/03/08 19:56:550431あぼーん
NGNG0432あぼーん
NGNG0433あぼーん
NGNG0434あぼーん
NGNG0435あぼーん
NGNG0436あぼーん
NGNG0437あぼーん
NGNG0438あぼーん
NGNG0439あぼーん
NGNG0440デフォルトの名無しさん
05/03/09 20:35:01http://pc5.2ch.net/test/read.cgi/tech/1104898734/
0441あぼーん
NGNG0442あぼーん
NGNG0443あぼーん
NGNG0444あぼーん
NGNG0445<><><>>>>>>>>>>444
05/03/10 12:51:510446デフォルトの名無しさん
05/03/11 21:20:150447デフォルトの名無しさん
05/03/11 23:41:360448デフォルトの名無しさん
05/03/11 23:42:51ポカポンタス!!
0449デフォルトの名無しさん
05/03/11 23:53:040450デフォルトの名無しさん
05/03/11 23:58:360451デフォルトの名無しさん
05/03/11 23:59:110452デフォルトの名無しさん
05/03/12 00:08:35やつの立てたスレなら、たとえばこんなのがあるが、
量子コンピューティングを語る
http://pc5.2ch.net/test/read.cgi/tech/1094684787/
とっくに退治されてるよ、あのバカは。
ttp://uper.on.pc1.jp/upload/so/up0763.txt
0453デフォルトの名無しさん
05/03/12 00:17:04口調や内容から似ているキガスッケド。
しかし教えてもらったからには猿しかない。
0454デフォルトの名無しさん
05/03/12 01:45:48あの自己顕示欲の塊がスレ立てて半年近く書き込みをしないなんて考えられんだろ。
0455デフォルトの名無しさん
05/03/12 09:33:18初めの頃は来てたように思う
途中から自己顕示欲が満たされなくなって移動した模様
0456デフォルトの名無しさん
05/03/12 10:33:260457デフォルトの名無しさん
05/03/12 10:57:41http://pc5.2ch.net/test/read.cgi/gamedev/1109310990/
0458デフォルトの名無しさん
05/03/12 13:19:27ここは普通の質問スレとして機能してるんだから、沢村が立てたスレか他人様のスレかは関係ないと思うが。
それに、何より荒しは迷惑なんだよな。
>>450が、沢村の立てたスレが目ざわりだから埋め立てるっていうなら、代替になるスレを立てるか、すでにあるスレに住人を誘導してから埋め立てをするべきだ。
それに単に埋め立てだけが目的なら、他人がNGワードで透明あぼーんできるように特徴的なフレーズを埋めこんだ書き込みにするべきだろ。
0459デフォルトの名無しさん
05/03/12 19:50:59スレ消化書き込みを始めたということにしておいてこの話はおしまい。
0460デフォルトの名無しさん
05/03/12 20:26:420461デフォルトの名無しさん
05/03/13 14:40:460462デフォルトの名無しさん
05/03/13 21:28:21PEの中身とかリンカとかの話がしたいんだけど。
0463デフォルトの名無しさん
05/03/13 22:01:570464デフォルトの名無しさん
05/03/14 08:11:48それもそうですね。
タイトルは「あれ以外の機械語」でお願いします。
0465デフォルトの名無しさん
05/03/14 10:25:030466デフォルトの名無しさん
05/03/15 08:00:20機能は似ててもローダだとOSがらみになりそう。
0467デフォルトの名無しさん
05/03/15 14:12:43ほんたまのツール面白そうなんだが、周りの話を聞いてると不安で仕方ない。
0468デフォルトの名無しさん
05/03/15 14:22:50WinXPSP2「俺はうごかないらしい。」
ほんたま氏のマシーンはNT 4.0だから
「それ以外のWinの不都合は直しようが無い」
らしい。
0469デフォルトの名無しさん
05/03/15 14:28:28「ほんたま氏が居れば発展したのにな。」
と言う人も居る。
本人が消えたのだよ。それが一番の問題。
機械語学びたいなら
一対一であれだという、アセンブラでも良い気がする。
0470デフォルトの名無しさん
05/03/16 01:23:27冗談抜きでアレはやめたほうがいい。
あのツールは発想というか、プログラミングに対する考え方が現在の基準から30年は遅れているし、何より作った奴の知識が無さ過ぎる。
解説ページに堂々と嘘書いて、間違いを指摘されても直す気配すらないんだから。
悪いこといわないから普通のアセンブラ使いなさいって。
頭の中でビット演算してマシンコードを直書きできますなんてのは、技術じゃなくて宴会芸の部類。
0471470
05/03/16 01:34:19ttp://members.a1.net/ranmasaotome/main.html
アセンブラのRADだそうだ。
0472469
05/03/16 09:42:40というか名前が
RadAsm
だから検索にかかる
確率が高いと推理してみる。
0473デフォルトの名無しさん
2005/03/27(日) 09:28:28Cで作って逆汗とかデバッグとかすれば十分にいける。
あとはアセンブリコードの意味とかをどっかの汗入門みたいなとこで照らし合わせてみればいい。
ちなみに俺はOllyDbgってデバッガ使ってる。英語だけど性能はかなりのもの。
検索すればすぐに出てくる。
0474デフォルトの名無しさん
2005/03/27(日) 13:28:430475デフォルトの名無しさん
2005/03/28(月) 12:15:10例えば…403000に64と入ってたとしてこれをchar*型で100つまり、0x313030にするには?
0476デフォルトの名無しさん
2005/03/28(月) 12:18:37403000に0x64と入ってたとして
0477デフォルトの名無しさん
2005/03/28(月) 12:52:270478デフォルトの名無しさん
2005/03/28(月) 14:45:100x64(10進数で100)
1,0,0の文字コードが0x31,0x30,0x30
あなたの言いたいことは
a=100
printf("%s",a);
(のような事)にあたる
アセンブラのコード希望
0479とか言ってみる
2005/03/28(月) 17:39:580480デフォルトの名無しさん
2005/03/28(月) 23:08:23NASM表記のx86で
mov eax,100
push 0x7325
push eax
lea eax,[esp + 4]
push eax
call _printf
0481デフォルトの名無しさん
皇紀2665/04/01(金) 16:01:14>>480
できました。ありがとうございました。
余談ですが>>478は正しくは
int i = 0x64; //100
str s;
sprintf(s,"%d",i);
です。
0482デフォルトの名無しさん
皇紀2665/04/01(金) 16:24:330483デフォルトの名無しさん
皇紀2665/04/01(金) 19:52:11俺のジェーン調子悪だな。
あ〜わからん。俺はパス。
0484デフォルトの名無しさん
2005/04/11(月) 21:07:240485デフォルトの名無しさん
2005/04/11(月) 22:00:280486デフォルトの名無しさん
2005/04/12(火) 01:29:57漏れはクズなんだ
あ
0487デフォルトの名無しさん
2005/04/29(金) 06:15:49するのに、BASICインタープリターじゃ遅くて話にならないので、
機械語で直接組みました。アセンブラーというものがよくわかってなくて
当然もってなかったので、アセンブリ言語でノートに書いたプログラムを
Z-80のインストラクションセットの表と首っ引きで16進数に直してそれを
打ち込んで行きました。そんな事を毎日やってたら、卒業する頃には、
よく使う命令は覚えてしまったので、殆ど、機械語表を見なくても
直接16進数でプログラムが書けるようになりました。今は殆ど忘れて
しまったけど。
0488デフォルトの名無しさん
2005/06/05(日) 03:58:07HPご存知でしょうか。
スクリプト言語でNASMクローンをつくれたら面白いかな、と思ったが、
どんなファイルを出力するのかでまずはまってしまて。。。
0489デフォルトの名無しさん
2005/06/05(日) 14:36:410490デフォルトの名無しさん
2005/06/05(日) 16:15:53http://www.linux.or.jp/JM/html/LDP_man-pages/man5/elf.5.html
COFFはそのものずばりは記憶にないけど、COFFを元にしたPE(Windowの奴)なら
MSDNに載ってる。
0491デフォルトの名無しさん
2005/06/07(火) 14:14:05某有名書籍のこの章が参考になると思う。
http://www.iecc.com/linker/linker03.html
0493デフォルトの名無しさん
2005/06/08(水) 00:00:450494デフォルトの名無しさん
2005/06/08(水) 06:59:01機能があれば、よりオブジェクトファイル形式に馴染めるんだけどねえ。
オブジェクトファイルを書き換えるようなアプリケーションのプログラマは、
ヘッダー情報の構造ぐらい暗記してるから、必要ないって感じなのかな?
0495しーた
2005/06/09(木) 21:07:26教えてください。多少は調べたのですがC言語とかばっかりでアセンブラがありませんでした。
提出が明日で切羽詰ってます。考え方はなんとなく分かるのでソースの書き方を
おねがいします。
0496デフォルトの名無しさん
2005/06/09(木) 21:56:460497デフォルトの名無しさん
2005/06/09(木) 21:59:490498しーた
2005/06/09(木) 22:44:34どうも参考になりましたw
アキラメマシタw
明日おこられまつwww
0499デフォルトの名無しさん
2005/06/10(金) 04:15:060500デフォルトの名無しさん
2005/06/10(金) 04:48:150501デフォルトの名無しさん
2005/06/10(金) 05:05:400502499
2005/06/11(土) 05:28:31私にはアドレステーブルと全く同じデータのように思えるんですが、設計者は何らかの意図があってこういう形にしたわけなんでしょう?
設計意図を簡単でかまいませんので示唆して下さい。
0503デフォルトの名無しさん
2005/06/11(土) 07:57:400504デフォルトの名無しさん
2005/06/11(土) 16:25:13分割コンパイルとかリンクとか?
0505502
2005/06/12(日) 19:41:120506デフォルトの名無しさん
2005/06/13(月) 03:19:16のでLoadLibraryのソース誰かください。
0507デフォルトの名無しさん
2005/06/13(月) 03:19:580508デフォルトの名無しさん
2005/06/13(月) 05:15:46ヒープにマップしてるだけかと。
0509デフォルトの名無しさん
2005/06/13(月) 07:54:100510デフォルトの名無しさん
2005/06/14(火) 22:01:060511デフォルトの名無しさん
2005/06/16(木) 02:48:09俺はジャガード織機のプログラミングができるぞ
0512505
2005/06/18(土) 11:41:59OSのPEローダーは
1. (インポートする外部ルーチンの情報に関しては)ルックアップテーブルのみを参照してインポートを行う。アドレステーブルにどんなデータが入っていようと一切無視する。
2. ただし、ルックアップテーブルへのポインタが0だった場合には、アドレステーブルに入っているデータをルックアップテーブルの代わりに使う。
というようなアルゴリズムみたいですね・・・
2.の場合があるわけだから、やはりルックアップテーブルは必要がないのでは?
# それにしてもUSER32.DLLは不審だ・・・最初アドレステーブルにインポート済みらしいデータが入っているを見て、OSがインポートアドレスを厳密にチェックしているのか?と思ったんだけど、別に何もしていないみたい。(Win98の場合)
0513デフォルトの名無しさん
2005/06/18(土) 14:07:33参考にしちゃいかんべ
0514デフォルトの名無しさん
2005/06/18(土) 20:54:07OS自体全く違うがKDEはビルドのときにpreloadしておくと
起動時間が半分になるという話もある。
KERNEL32.DLLとかUSER32.DLLなどシステム固有のDLLは
どんなアプリでも同じアドレスにマップされる。(できる。)
しかしユーザ作成のDLLの場合、どんなアプリが何時ロード
するか分からんので、アドレス固定にすることは出来ない。
因みにVStudioはインストール時にアドレス解決するらしい。
>>512
という話と関係ある?
0515デフォルトの名無しさん
2005/06/19(日) 00:08:32最終的にアドレステーブルだけあればいい=ルックアップテーブルを上書きすればいい、
つまり同じ用途で二箇所もいらないっていう意味で言ってるなら、そう言えないこともないかもな。
ローダーとモジュールの都合だけ考えれば。
ただ、両方テーブルがあると、デバッガとかでプロセス内部をのぞき見する場合には便利なことが多い。
たとえば、アドレス解決住みのアドレステーブルを見て何の関数なのか(可読名称)知りたいとき、
ルックアップテーブルが残ってれば名前テーブルがすぐ引ける。
ルックアップテーブルが残ってなければ、DLLのエクスポートテーブルを検索する必要がある。
また、API乗っ取り等のためにアドレステーブルを書き換えてしまった場合、
ルックアップテーブルが残ってれば、本来あるべきアドレスを再検索することができる。
ルックアップテーブルが残ってなければ、二度と本来のアドレスは分からない。
(まあ、本来のアドレスがわかったとして、それを素直に書き戻していいかは、
多重乗っ取りの可能性を考えると難しい面もないではないが、ここでは関係ない)
以上がPEの設計者が意図したものなのかどうかは知らないが、
そういう利用法はあるし、実際利用されてることを鑑みれば、
まるっきり無駄ってわけでもないとは言えると思う。
0516デフォルトの名無しさん
2005/06/19(日) 06:47:29>因みにVStudioはインストール時にアドレス解決するらしい。
詳しく
0517デフォルトの名無しさん
2005/06/19(日) 12:40:47インストール時にrebase.exeで処理するってことじゃないの?
0518512
2005/06/19(日) 22:44:11>同じ用途で二箇所もいらない
そうそう!そういう意味です。
>両方テーブルがあると、デバッガとかでプロセス内部をのぞき見する場合には便利なことが多い。
そうなんですよ!だからこそ不審なんですよ。まるでクラッカーのために用意されているかのような2重テーブル。
OSの設計者が意図的にクラックしやすくするわけはないと思うので、何の意図があるのか、と思ったわけですが・・・
>>514
>KERNEL32.DLLとかUSER32.DLLなどシステム固有のDLLは どんなアプリでも同じアドレスにマップされる。
システムDLLでもOSのバージョンが違えば違うので、少なくとも普通のEXEとかユーザーDLLではビルド時解決は全くできないと思いますが・・・
USER32.DLLはたぶん特定のKERNEL32.DLL上でしか動かさないのでKERNEL32ターゲットのアドレステーブルが解決されていると思うんですが・・・
これって結局ロード時に上書きされちゃうんですよね・・・?
XPとかのUSER32.DLLはそうなってないですか・・・?
0519デフォルトの名無しさん
2005/06/19(日) 23:15:460520Hg
2005/06/20(月) 00:35:16キーボードフックをして、hook.txtに出力するコードを教えください。
0521デフォルトの名無しさん
2005/06/20(月) 00:37:030522Hg
2005/06/20(月) 01:17:510523デフォルトの名無しさん
2005/06/20(月) 02:00:25copy con > hook.txt
0524デフォルトの名無しさん
2005/06/20(月) 04:45:51>システムDLLでもOSのバージョンが違えば違うので、少なくとも普通のEXEとかユーザーDLLではビルド時解決は全くできないと思いますが・・・
書き方悪かったのかな。そういってるつもり。
だからVStudoはOSが特定できるインストール時なんでしょ。
0525デフォルトの名無しさん
2005/06/21(火) 14:06:24M
S
(モビルスーツ)のOSの設計者を知りませんか?
0526デフォルトの名無しさん
2005/06/21(火) 14:29:12サンライズ?
0527Hg
2005/06/22(水) 01:26:44>>1
のデフォルトの名無しさん、"con con con"について知ってますか?
0528518
2005/06/25(土) 07:10:56後で気がついたんだけど、514さんの書きこみは、'インポート'ではなく、'フィックスアップ'ですね。
「高価」というのは、DOS EXEからPEになって、絶対アドレスはすべてフィックスアップの対象になったわけで、場合によってはえらい数のリロケートが必要になる、ということでしょう。
フィックスアップは、通常ビルド時に仮想解決しますね・・・特にEXEは殆どの場合'望ましいベース'にロードできるので、リロケートが必要なく、素早いロード(安価)が可能となっているようです。
05291は失踪中
2005/06/26(日) 05:28:48わかんない。標準入出力じゃないの?
ちなみにキーボードフックは、アセンブラや機械語どうこうっていうより、OSアーキテクチャの問題なんだけど?
Windowsで完璧を期するならデバドラを偽造するしかない。
デバドラスレ↓
http://pc8.2ch.net/test/read.cgi/tech/1063453024/
DOSはTSRで十分でしょ。
DOSプログラミングスレ↓
http://pc8.2ch.net/test/read.cgi/tech/1047001533/
機械語でキーを読むのはATの場合'IN AL,60h'が普通。USBキーボードとかはそう簡単じゃないけど。
0530528
2005/07/09(土) 05:31:17どうも、すみません。514さんので正しいみたいです。
http://www.windowsitlibrary.com/Content/356/11/4.html
この文書の
'BINDING IMPORTS FOR A PE FILE'
という項目に詳しく載っていました。
インポートデータの'アドレステーブル'が解決済みのファイルを'BOUND'、そのようなファイルを作ることを'BIND'と言うそうです。
'BOUND'のファイルはインポートデータの'タイムスタンプ'が0以外に設定されることで区別されます。
ローダーは、このタイムスタンプが、インポート対象モジュールのと同じかどうかチェックし、同じならアドレステーブルをそのまま使う、という仕組みみたいです。
そして、USER32.DLLはバウンドでした。
0531デフォルトの名無しさん
2005/07/09(土) 17:23:55あんたスゲーよ。
俺の場合、概念的というか感覚的なレベルでしか
理解してないけど、それをキチンと調べて細かい
部分まで抑えていくあたりは、技術者の鏡だよ。
0532デフォルトの名無しさん
2005/07/09(土) 17:25:290533デフォルトの名無しさん
2005/07/10(日) 03:39:41fixupってのは*基本的には*コンパイル単位(OBJファイル)間のアドレス解決。
Win32(PE)のEXEみたいに固定アドレスにしかロードしないものだとそれで終わりだけど、
DLLみたいにロード時に再配置する場合は関係することもある。
(絶対アドレス参照とかしてたらね・・・最近はそういう例はあんまりないとは思うけど自信はない)
一方、bindってのは共有ライブラリ類に対するロード時のアドレス解決。
>>530がいろいろ調べてるのはこっちね。
>>514が言ってる「あらかじめアドレス解決する」ってのは実はこの両方の話を含んでて、
前者を前解決してくれるREBASE.EXE、後者を前解決してくれるBIND.EXEというツールが
VCやPlatformSDKに付属してる。
(やってることは>>530のリンク先のページにあるAPIを読んでるだけ、らしい)
もちろんロード先は環境に依存するので、それぞれの環境にあわせてrebasing/bindingしないと無意味。
OS付属のDLLの場合は環境が固定なので、あらかじめrebasingもbindingもやってある。
>>512とかでUSER32.DLLが不審だと思っちゃったのはそれが原因。
>>514のVCは、インストール時(つまり環境が固定される時)にrebasing/bindingをやってしまうという話。
>>531
自分が必要なとき、知りたいときに、どこを調べれば解決できるか分かる程度に理解してれば十分だよ。
0534デフォルトの名無しさん
2005/07/29(金) 03:30:170535愛也
2005/12/22(木) 20:46:30パソコン関係の初心者なのでお尋ねさせていただきたいのですが・・
下の問題が分かる方はいらっしゃいますでしょうか??
問題。次のプログラムを機械語に翻訳しなさい。なおプログラムの先頭番地を#0100とし、
メモリの番地も示しなさい。また、このプログラムを実行すると答えはいくつになるか。
PROG START
LD GR1,DATA1
LEA GR2,1
ADD GR1,DATA1,GR2
ST GR1,ANS
EXIT
DATA1 DC 25
DC −19
ANS DS 1
END
頭脳明晰な方、どうか教えてくださいませ(−_−;)
ここは最近の書き込みがないからダメかなぁ〜〜〜(><。)
0536デフォルトの名無しさん
2005/12/22(木) 20:47:490537デフォルトの名無しさん
2005/12/22(木) 20:49:28CPUは何を想定しますか?
0538デフォルトの名無しさん
2005/12/22(木) 20:51:15聞いてる態度にしては挑戦的だがそれでいいと思ってるのか?
0539デフォルトの名無しさん
2005/12/22(木) 20:52:24アセンブラを使え。この馬鹿者が!
0540デフォルトの名無しさん
2005/12/22(木) 20:56:230541デフォルトの名無しさん
2005/12/22(木) 20:57:590542デフォルトの名無しさん
2005/12/22(木) 21:15:57http://pc8.2ch.net/test/read.cgi/tech/1132761638/206
******** 糸 冬 了 ********
0543デフォルトの名無しさん
2005/12/22(木) 21:17:33ttp://h.pic.to/49f77
0544愛也
2005/12/22(木) 22:05:10スレありがとうございます(^^)例題があるのですが〜例題では、「アドレス#4001から格納すると仮定し、メモリ番地を左側に、また機械語の16進表現を機械語の右側に示せ。」
「ソースプログラム」
EX1 START
LD GR1,DATA1
ADD GR1,DATA2
ST GR1,DATA3
EXIT
DATA1 DC #0123
DATA2 DC #4567
DATA3 DS 1
END
「機械語プログラム」
メモリ番地 機械語 16進表現
#4001 0001 0001 0001 0000 (#1110)
#4002 0100 0000 0000 1001 (#4009)
#4003 0011 0001 0001 0000 (#3110)
#4004 0100 0000 0000 1010 (#400A)
#4005 0001 0010 0001 0000 (#1210)
#4006 0100 0000 0000 1011 (#400B)
#4007 1010 0011 0000 0000 (#A300)
#4008 0000 0000 0000 0000 (#0000)
#4009 0000 0001 0010 0011 (#0123)
#400A 0100 0101 0110 0111 (#4567)
#400B xxxx xxxx xxxx xxxx (#xxxx)
0545デフォルトの名無しさん
2005/12/23(金) 04:04:050546デフォルトの名無しさん
2005/12/23(金) 07:25:23あっちが解決済みならこっちにもその旨書いとけ
0547デフォルトの名無しさん
2005/12/23(金) 21:27:330548デフォルトの名無しさん
2005/12/24(土) 01:36:190549デフォルトの名無しさん
2006/01/24(火) 13:41:420550デフォルトの名無しさん
2006/01/24(火) 16:01:10という問題できるかたいらっしゃいませんか?
0551550です
2006/01/24(火) 16:08:11アセンブリ言語をつかっておねがいします!
0552デフォルトの名無しさん
2006/01/24(火) 16:16:08入力時スタックに詰め込んで
出力時スタックから取り出す。
0553550
2006/01/24(火) 16:25:44ちなみにCOMETを使っているんですが具体的にどういう風にやればいいのでしょうか?今日はじめてアセンブリを学んで壁にぶつかりました。。。。
なんかインデックスアドレッシングとループを使うとのことなんですが。助けてください。
0554550
2006/01/24(火) 16:39:130555デフォルトの名無しさん
2006/01/24(火) 17:06:13http://pc8.2ch.net/test/read.cgi/tech/1132761638/
↑こっちの方が人いるぞ。
0556デフォルトの名無しさん
2006/01/24(火) 17:25:56MAIN START
IN BUF,LEN
LD GR1,LEN
SUB GR1,C1
LEA GR2,0
LOOP LD GR0,BUF,GR1
ST GR0,BUF2,GR2
ADD GR2,C1
SUB GR1,C1
JPZ LOOP
OUT BUF2,LEN
RET
C1 DC 1
BUF DS 80
BUF2 DS 80
LEN DC 0
END
0557550
2006/01/24(火) 17:38:330558550
2006/01/24(火) 19:37:22キーボードから文字列を入力し、その文字列に含まれる数字の数を、
コンソールへ表示するプログラムを作成せよ。
ただし、入力される最大文字列は、20文字とし 入力される文字は、
ASCIIコード表(プリント11ページ)に
載っている文字に限定する。
とのことです。だれか助けてください。。。。。。。
0559デフォルトの名無しさん
2006/01/24(火) 19:41:28(プリント11ページ)見せろや
0560デフォルトの名無しさん
2006/01/24(火) 19:43:36合格情報処理でも読んでから出直してこい。
0561550
2006/01/24(火) 19:47:31でかんがえていただければ。
ちなみに今回もマシンはCOMITを使用します。
ホントにどなたかお願いします。
0562デフォルトの名無しさん
2006/01/24(火) 19:50:2611ページ見なくてもネットに存在するぞ。
むしろバイナリエディタがあれば判定できる。
0563デフォルトの名無しさん
2006/01/24(火) 19:51:50マルチは無視でいいと思うお
0564デフォルトの名無しさん
2006/01/24(火) 19:54:520565デフォルトの名無しさん
2006/01/24(火) 19:56:380566デフォルトの名無しさん
2006/01/24(火) 20:39:320567デフォルトの名無しさん
2006/01/24(火) 20:42:59今回もCOMETでいいんだよな?数字がいくつあるか数えるんだよな?
先頭の全角スペースは半角スペースに置換しる。
MAIN START
IN BUF,LEN
LEA GR1,0
LEA GR2,0
L1 CPL GR1,LEN
JZE L1E
LD GR0,BUF,GR1
LEA GR1,1,GR1
CPL GR0,NS
JMI L1
CPL GR0,NE
JPZ L1
LEA GR2,1,GR2
JMP L1
L1E LEA GR1,0
0568デフォルトの名無しさん
2006/01/24(火) 20:43:53JMI L2E
LEA GR1,1,GR1
LEA GR2,-10,GR2
JMP L2
L2E ADD GR1,NS
ADD GR2,NS
ST GR1,RESULT
LEA GR3,1
ST GR2,RESULT,GR3
OUT RESULT,RLEN
RET
NS DC 48
NE DC 58
C10 DC 10
BUF DS 80
LEN DC 0
RESULT DS 2
RLEN DC 2
END
0569デフォルトの名無しさん
2006/01/24(火) 21:08:190570550
2006/01/24(火) 21:21:23よくわからなくてロードアドレスでなにをしてるんでしょうか?
また7行目とかでGR1、1、GR1とでてきますがレジスタとレジスタの
間の1は何のいみがあるんですか?他にもオペランド中に文字が3つならんだり
あんまりわかりません。。。すいませんがよければおしえてもらえませんか?
0571デフォルトの名無しさん
2006/01/24(火) 21:24:05責任とって詩ね
0572デフォルトの名無しさん
2006/01/24(火) 21:39:33ひでえ!
>>570
おい!おまえのせいで
死ねといわれたぞ!
コノ状況でのんきに
「教えて君」やってんじゃねえ!
0573550
2006/01/24(火) 21:42:010574デフォルトの名無しさん
2006/01/24(火) 22:06:55じゃ、責任取って>>550にも分かるように説明してやれ。
0575デフォルトの名無しさん
2006/01/24(火) 22:20:03ひでえ!
>>573
おまえのせいで
責任取らされそうになってるぞ!
なんとか自己解決しろ!
0576デフォルトの名無しさん
2006/01/24(火) 23:55:120577デフォルトの名無しさん
2006/01/24(火) 23:59:36LEA GR1,1,GR1はGR1にGR1とアドレス1を足したを代入。つまり、GR1にGR1+1を代入。
LDやADDでは即値での代入、加減算ができないから、
LEAを利用して代入や加減算をしてる。
0578550
2006/01/25(水) 14:04:260579デフォルトの名無しさん
2006/01/25(水) 14:31:36GR0>ADDRの内容だったらFRレジスタを正。
GR0=ADDRの内容だったらFRレジスタを零。
GR0<ADDRの内容だったらFRレジスタを負。
FRレジスタはJPZ等の分岐命令でジャンプするかどうか判定するのに使われるやつな。
0580デフォルトの名無しさん
2006/01/25(水) 16:18:190581デフォルトの名無しさん
2006/01/25(水) 16:36:25はじめての2ゲット
0582デフォルトの名無しさん
2006/01/25(水) 16:36:41CASLIIだろ。
0583デフォルトの名無しさん
2006/01/25(水) 16:38:070584デフォルトの名無しさん
2006/01/25(水) 16:46:07糞スレの再利用&隔離
0585デフォルトの名無しさん
2006/01/25(水) 17:22:42CASLじゃなくて?
CASL2の話題には見えんが。
0586デフォルトの名無しさん
2006/01/25(水) 20:29:37今ならCASLよりCASL II関係の方が手に入れやすいやん。
0587デフォルトの名無しさん
2006/01/25(水) 20:35:53しかし今なぜCASLやってるのかは永遠の謎だね。
0588556
2006/01/25(水) 21:19:26書き込もうと思ったら、COMETって補足されてて凹んだよ俺は。
ちなみに俺、昨日までCASLもCASLIIも名前しかしらなかったw
0589デフォルトの名無しさん
2006/01/25(水) 22:11:421.先生が十数年前に作った授業ノートを後生大事に使い続けている
2.基本情報技術者試験を受けようと思い古本屋で買った参考書に載っていた
3.COMETとCOMETIIを同じ物だと思いこんでいる
0590デフォルトの名無しさん
2006/01/27(金) 05:41:570591デフォルトの名無しさん
2006/01/27(金) 08:01:410592デフォルトの名無しさん
2006/02/03(金) 06:50:510593デフォルトの名無しさん
2006/02/03(金) 12:45:400594デフォルトの名無しさん
2006/02/03(金) 18:39:52CASL を直接理解出来る CPU は難しそうだな。
0595デフォルトの名無しさん
2006/02/03(金) 23:11:58って何のCPUの機械語?
0596デフォルトの名無しさん
2006/02/04(土) 22:28:000597エLヘ!
2006/02/13(月) 02:47:140598デフォルトの名無しさん
2006/02/13(月) 03:08:460599デフォルトの名無しさん
2006/02/16(木) 13:50:42MOV ECX,0000002AH
RDMSR
TEST AX,0800H
JZ 〜
これは MSR 2Ahのbit11をチェックしているんですよね?
IA-32のマニュアルを見ても、該当部分は「予約済み」となっているのですが、
このチェックにどういう意味があるのでしょうか?
0600デフォルトの名無しさん
2006/02/16(木) 14:15:40そのアラブ人が来る日は座敷でなくカウンターが予約済みだった
0601デフォルトの名無しさん
2006/03/12(日) 20:17:36自分の人生を1行プログラムにするスレ
に、
123 デフォルトの名無しさん 2006/03/12(日) 06:59:57
クy$Phkkhhi2タムネムネTZヘ!2タムネHムタヘ!エLヘ!
テキストエディタにコピペ 拡張子comで保存、実行
という書き込みがあったのですが、
意味を教えていただけないでしょうか。
逆コンパイルだけはやってみました。
0602デフォルトの名無しさん
2006/03/12(日) 20:18:483573:0103 50 PUSH AX
3573:0104 68 DB 68
3573:0105 6B DB 6B
3573:0106 6B DB 6B
3573:0107 68 DB 68
3573:0108 68 DB 68
3573:0109 69 DB 69
3573:010A 32C0 XOR AL,AL
3573:010C D1C8 ROR AX,1
3573:010E D1C8 ROR AX,1
3573:0110 54 PUSH SP
3573:0111 5A POP DX
3573:0112 CD21 INT 21
3573:0114 32C0 XOR AL,AL
3573:0116 D1C8 ROR AX,1
3573:0118 48 DEC AX
3573:0119 D1C0 ROL AX,1
3573:011B CD21 INT 21
3573:011D B44C MOV AH,4C
3573:011F CD21 INT 21
0603デフォルトの名無しさん
2006/03/12(日) 21:43:51PUSH AX ; AX = 2479h = '$y'
PUSH 6B6B ; 6B6Bh = 'kk'
PUSH 6968 ; 6968h = 'ih'
XOR AL,AL ; AX = 2400h
ROR AX,1 ; AX = 1200h
ROR AX,1 ; AX = 0900h
PUSH SP
POP DX ; DX = SP ('hikky$')
INT 21 ; 文字列表示 ("hikky")
XOR AL,AL ; AX = 0900h
ROR AX,1 ; AX = 0480h
DEC AX ; AX = 047Fh
ROL AX,1 ; AX = 08FEh
INT 21 ; キーボードから1文字入力
MOV AH,4C
INT 21 ; 終了
0604デフォルトの名無しさん
2006/03/13(月) 06:37:13脱力。
0605http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 21:05:11もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
0606デフォルトの名無しさん
2006/03/29(水) 03:49:5703E00008
00041027
0607デフォルトの名無しさん
2006/03/31(金) 23:19:360608デフォルトの名無しさん
2006/03/31(金) 23:49:14まずどっちが対応してるかってどうやって判別すればいいのですかね?
0609デフォルトの名無しさん
2006/03/31(金) 23:52:550610デフォルトの名無しさん
2006/04/11(火) 22:18:45アプリ起動時に選択メニューを表示し、ユーザーに選択してもらう。
0611デフォルトの名無しさん
2006/04/12(水) 02:26:430613デフォルトの名無しさん
2006/05/02(火) 19:48:13ゲーデルを超えて オメガ数が示す数学の限界
G. チャイティン
日系の記事なんだがこれわかる椰子いる?
なんかコンピュータとかかわりが深いらしいんだが。
買ってみようとも思うが難しそうだしトンデモ系にも見えるし。
0614デフォルトの名無しさん
2006/05/02(火) 19:55:090615デフォルトの名無しさん
2006/05/10(水) 17:08:04数学の価値を破壊しようと必死に企む逆賊は。
0616デフォルトの名無しさん
2006/05/28(日) 15:34:09いい奴あったら教えてください
0617デフォルトの名無しさん
2006/05/28(日) 15:41:22個別のスレがあるんだから、こちらでお聞きなさい。
アセンブラ言語 CASL�Uを語るスレ
http://pc8.2ch.net/test/read.cgi/tech/1033876116/l50
0618デフォルトの名無しさん
2006/05/28(日) 15:47:33すまない
0619デフォルトの名無しさん
2006/06/04(日) 03:20:24エアマックス
0620デフォルトの名無しさん
2006/06/04(日) 14:20:19つまり6の言うことに間違いは無く、11は根本的にアセンブリ言語とアセンブラを混同している。
0621デフォルトの名無しさん
2006/06/04(日) 15:24:470622デフォルトの名無しさん
2006/06/04(日) 15:39:070623デフォルトの名無しさん
2006/06/04(日) 18:17:06やはり変
0624デフォルトの名無しさん
2006/06/04(日) 18:33:260625デフォルトの名無しさん
2006/06/04(日) 18:42:110626デフォルトの名無しさん
2006/06/06(火) 23:43:43某エレベータの誤動作が問題になっているよな。
あれって、原因として
(1)センサー系統
(2)ROM内のコード
みたいなことが考えられると思うけど、俺は(2)が原因だと思う
あのクラスのコードサイズ(バイト数)、大体どれぐらい?
開発経費、ってか組み込み屋の労働単価ってどれくらいかな?
わかる?興味本位だが(笑
0627デフォルトの名無しさん
2006/06/07(水) 00:42:47俺もプログラムに問題あると思うな。>殺人エレベータ
ttp://www.asahi.com/national/update/0606/TKY200606050530.html
>東工大によると、使い始めた昨年8月以降、(1)内部に人が閉じこめられる(2)扉が外れる
>(3)停止時に床との段差が生じる(4)停止するはずの階を通過する(5)異常音がする――
>などのトラブルが10カ月間で14件起きた。その多くが港区の公共住宅の不具合と酷似しているという。
あくまで想像だが、何かの拍子にスタック破壊して変なところコールしてるとか。
それでも"扉が外れる"なんてのは、どうすれば実現可能なのか悩むところだな・・・
0628デフォルトの名無しさん
2006/06/07(水) 01:04:53ようは品質管理が全然できてないんだろ。
0629デフォルトの名無しさん
2006/06/07(水) 01:56:100630デフォルトの名無しさん
2006/06/07(水) 03:01:31エレベータって必ず、上下に移動する部屋と逆に方向に動く重りがあるだろ。
多分、その重りがある程度人が乗ってる状態の部屋と同じぐらいの重さなんだろ。
で、人があんまり乗ってなかったら重りの方が重いから部屋は上昇するんじゃないの?
0631626
2006/06/07(水) 11:59:06ありえない条件が発生しちまったとき、連続した次のサブルチン
に入ってく、なんてのが素人のコードでよくあるんだけど、
まさかそんなようなことはないだろうしなあ…
自転車と一緒に後ろ向きに降りようとしたらしい。
センサとしてみると、ずいぶんとでかい幅の人間だと思うかも。
で、閉じるルチンも呼ばれていないわけだ。
ある時間待ちで戻っちまうとか。
シンドラのコード、見たことある香具師いないの?俺はリストも見ていないくらいなんで。
0632デフォルトの名無しさん
2006/06/07(水) 15:45:07ttp://pc8.2ch.net/test/read.cgi/prog/1146121527/349-350
0633デフォルトの名無しさん
2006/06/07(水) 18:09:36さんくすこ。あっちへいくわ。
0634デフォルトの名無しさん
2006/06/26(月) 08:12:25リアルでさんくすこって、ノリでついいっちゃうと大変なことになるから注意な
0635デフォルトの名無しさん
2006/09/07(木) 23:39:510636デフォルトの名無しさん
2006/09/08(金) 05:20:24デリカシーの無い人は嫌い><
0637デフォルトの名無しさん
2006/09/08(金) 06:22:26マシニスト?
カクイイ!
0638_
2006/09/12(火) 17:39:05>>627の
>何かの拍子にスタック破壊して変なところコールしてるとか。
の場合は、スタック破壊したら、CPUじたいマトモな動作しない=エレベータとしての動作しない、ほうの確率が非常に高くて、
変なとこコールが起こる確率は僅かで、そればかりが起こる確率なんて微の微の微であるから、まずない。
0639デフォルトの名無しさん
2006/12/03(日) 09:01:12064022
2006/12/13(水) 11:37:26comet�Uです><
0641デフォルトの名無しさん
2006/12/14(木) 02:03:56for(i=1;i<=9;i++){
for(j=1;j<=9;j++){
printf("%d*%d=%d\n",i.j.i*j);
}
}
をcometに翻訳汁
0642デフォルトの名無しさん
2006/12/14(木) 02:04:51printf("%d*%d=%d\n",i,j,i*j);
に訂正
0643デフォルトの名無しさん
2006/12/15(金) 06:50:440644641
2006/12/15(金) 21:23:02ttp://www.officedaytime.com/dcasl2/pguide/chapter1f.html
を見ると
OUT BUF,LEN ; 文字列を出力
のようだね。ただし、puts()レベル。
3つの"%d"の部分は、BUFの内容を書き換えるながら出力するしかないな。
0645デフォルトの名無しさん
2007/03/12(月) 15:19:11これがどういう計算かしらないが10進数で24になるんだが
何やったら24になるんだ?
0646デフォルトの名無しさん
2007/03/12(月) 16:07:53下5bitだけ見れば24になるが。
0647デフォルトの名無しさん
2007/03/13(火) 10:34:41おお、ありがとうございます。
これでやっと進められます。
0648デフォルトの名無しさん
2007/03/18(日) 18:55:250649デフォルトの名無しさん
2007/05/15(火) 07:48:09え?違うの?
システムって機械じゃないの?
プログラムとかのこと?
ベーシックなら数学1でやったお♪
110行 GOTO HELL
120行 PRINT(OMAEMONAH)
0650デフォルトの名無しさん
2007/05/31(木) 22:37:468086で未定義命令を実行するとどうなるかが判りません。80186以降は
例外になるようですが。。。
0651デフォルトの名無しさん
2007/05/31(木) 22:51:450652デフォルトの名無しさん
2007/05/31(木) 23:29:48特定の動作をするわけじゃないんですね。リセットとかハングするのかと思ってました。
0653デフォルトの名無しさん
2007/06/01(金) 03:05:460654機械語は初心者(VBS好きです)
2007/07/22(日) 23:18:21機械語って何から学べばいいんだああ。
具体的な学び方がわからない機械語プログラミングの方法が
書いてあるHPでもあったら出してくれませんか。
0655デフォルトの名無しさん
2007/07/23(月) 08:16:06当たり前の流れに吹いた。
0656デフォルトの名無しさん
2007/08/07(火) 22:45:110657デフォルトの名無しさん
2007/08/07(火) 23:21:260658デフォルトの名無しさん
2007/08/07(火) 23:33:140659デフォルトの名無しさん
2007/08/07(火) 23:47:320660デフォルトの名無しさん
2007/08/08(水) 00:54:10りんご3個分の猫より小さい犬
0661デフォルトの名無しさん
2007/08/08(水) 04:04:31実際に使いこなせるやつは皆無な状況だからな。
0662まったくの機械語初心者
2007/08/08(水) 20:19:16おねがいぽ・・・・。
0663まったくの機械語初心者
2007/08/08(水) 20:21:240664デフォルトの名無しさん
2007/08/08(水) 20:24:59もうスレ主はこのスレ見て無いかもな
0665デフォルトの名無しさん
2007/08/08(水) 21:33:49ふつうの言語のプログラムは書けるのか?
機械語つっても目標は?どのCPUの?何でもいいの?
0666デフォルトの名無しさん
2007/08/08(水) 22:35:0511010111111000101010.
100101010wwwwww
10,1101010111101110100101010?
0667デフォルトの名無しさん
2007/08/08(水) 22:36:420668デフォルトの名無しさん
2007/08/08(水) 23:18:34この世にインテルしか存在しないならともかく
0669デフォルトの名無しさん
2007/08/08(水) 23:23:160670デフォルトの名無しさん
2007/08/10(金) 21:48:22機械語はCPUとアセンブラプログラマー/コンパイラーのインターフェース。
CPUが変われば機械語も当然かわる。
CPUの違いによる機械語の主な違いは
・命令セット(当然か) 命令セット数はCISC>RISC
・アドレッシング方法
・汎用レジスター/制御レジスタの種類と数
・I/Oポートの割り振り方法 メモリーマップドI/O,I/OマップドI/O
0671デフォルトの名無しさん
2007/08/10(金) 22:06:440672デフォルトの名無しさん
2007/08/10(金) 22:29:08まあ、そうかもしれないな。
転送命令、条件比較命令、JUMP命令、四則演算命令
アセンブラのコードの95%はこれらだから
これらだけサクッと覚えればたいていのCPUのアセンブラはかける。
0673デフォルトの名無しさん
2007/09/18(火) 13:34:360674デフォルトの名無しさん
2007/09/19(水) 20:07:54後からゴタゴタ追加した部分に関してはx86と同じ程度だと思うが・・・
0675デフォルトの名無しさん
2007/10/13(土) 18:09:240676デフォルトの名無しさん
2007/10/13(土) 19:35:56此れ→ <8d>¡<93>ú<82>Í
0677デフォルトの名無しさん
2007/10/17(水) 11:00:51PC相対アドレシングを手で書くのは苦痛すぎる
0678デフォルトの名無しさん
2007/10/17(水) 13:25:070679デフォルトの名無しさん
2007/10/17(水) 17:04:290680デフォルトの名無しさん
2007/10/17(水) 18:02:390681デフォルトの名無しさん
2007/10/17(水) 18:08:30I/O専用バスにI/Oを接続してるかメモリバスに接続してるかだけ。
組み込み用では
CPUによってはI/O命令を持たないものもあるし
メモリバスが外に出てないものもあるし、
キャッシュを持つような高機能・高速のCPUではメモリマップドI/Oだと逆にハードウエアコストが増えるので
ビデオRAMのような用途以外は まあ使われない。
0682デフォルトの名無しさん
2007/10/23(火) 19:11:03xor eax,ecx
これわかりません;;優しい人教えていただけませんか?
0683デフォルトの名無しさん
2007/10/23(火) 19:40:32難しい問題だね
0684デフォルトの名無しさん
2007/10/24(水) 03:29:180685デフォルトの名無しさん
2008/01/31(木) 03:23:33あるよ。
以上。
はい次の方。
0686デフォルトの名無しさん
2008/02/16(土) 17:10:27デーモンツールも試して見たんですが、何故かエラーばかりで結局無理でしたorz
スレチならすみませんが、何かよい方法は無いでしょうか。
0687デフォルトの名無しさん
2008/02/16(土) 17:45:310688デフォルトの名無しさん
2008/02/21(木) 23:36:50int 21h
0689デフォルトの名無しさん
2008/03/06(木) 22:24:370690デフォルトの名無しさん
2008/03/06(木) 23:07:03lヽ ノ l l l l ヽ ヽ
)'ーーノ( | | | 、 / l| l ハヽ |ー‐''"l
/ D | | |/| ハ / / ,/ /|ノ /l / l l l| l D ヽ
l ・ i´ | ヽ、| |r|| | //--‐'" `'メ、_lノ| / ・ /
| V l トー-トヽ| |ノ ''"´` rー-/// | V |
| ・ |/ | l ||、 ''""" j ""''/ | |ヽl ・ |
| D | | l | ヽ, ― / | | l D |
| !! | / | | | ` ー-‐ ' ´|| ,ノ| | | !! |
ノー‐---、,| / │l、l |レ' ,ノノ ノハ、_ノヽ
/ / ノ⌒ヾ、 ヽ ノハ, |
,/ ,イーf'´ /´ \ | ,/´ |ヽl |
/-ト、| ┼―- 、_ヽメr' , -=l''"ハ | l
,/ | ヽ \ _,ノーf' ´ ノノ ヽ | |
、_ _ ‐''l `ー‐―''" ⌒'ー--‐'´`ヽ、_ _,ノ ノ
 ̄ ̄ | /  ̄
0691デフォルトの名無しさん
2008/03/07(金) 04:46:000692デフォルトの名無しさん
2008/03/09(日) 13:02:170693デフォルトの名無しさん
2008/08/12(火) 16:39:24などの言語を学んできました。
機械語の勉強をしたいのですが、入門書など基礎に成るものが
有りましたらよろしくおねがいします。
0694デフォルトの名無しさん
2008/08/13(水) 05:07:500695デフォルトの名無しさん
2008/09/26(金) 14:41:21機械語は0と1の組合せですが、0と1の機械語が複雑な動作を実行する仕組み
を教えてくだい。
0696デフォルトの名無しさん
2008/09/26(金) 15:13:46この仕事は一回あたり何時間ぐらいで終わるものなのですか?
0697デフォルトの名無しさん
2008/09/26(金) 15:19:11「複雑」ってそもそもどういう状態?
で,実は「複雑」じゃないってオチ
機械語と機械の動作が1対1対応している様な簡単なCPUなら
1と入力されたら手を挙げて
2と入力されたら手のひらを開いて
3と入力されたら手のひらを閉じて
4と入力されたら手を下げる
って機械なら,1,2,3,4という機械語はリンゴくらいならつかめる動作も可能
これが複雑なのか単純なのかわからないけど
0698デフォルトの名無しさん
2008/09/26(金) 22:07:42「0と1の機械語」というよりも機械語がコード化されているだけ。
CPUはそのコード化された機械語を解釈して、所定の動作を実行する。
機械語はCPUに対する動作の指示書のようなものです。
0と1が複雑な動作をするわけではないです。
0699デフォルトの名無しさん
2008/09/28(日) 21:23:51意味のあるまとまりは8bit以上から
0700デフォルトの名無しさん
2008/09/28(日) 23:19:180701デフォルトの名無しさん
2008/10/06(月) 17:58:15たとえば68000のMOVE命令は16bitなんだが、これは↓な感じに分解できる。
MOVE命令を示す固定値(2bit)
転送サイズ(2bit)
ディスティネーションのレジスタ番号(3bit)
ディスティネーションのアドレッシングモード(3bit)
ソースのアドレッシングモード(3bit)
ソースのレジスタ番号(3bit)
なに?そういう話じゃない?信号がサーキット内をどう走るか知りたい?
そんなものは知らなくてもプログラムはガーっと動くんだよ!
0702デフォルトの名無しさん
2008/10/15(水) 00:31:230703デフォルトの名無しさん
2008/12/19(金) 22:21:130704デフォルトの名無しさん
2008/12/20(土) 15:41:420705デフォルトの名無しさん
2008/12/25(木) 02:00:270706デフォルトの名無しさん
2008/12/25(木) 10:34:420707デフォルトの名無しさん
2008/12/25(木) 21:34:220708デフォルトの名無しさん
2008/12/26(金) 04:54:100709デフォルトの名無しさん
2008/12/27(土) 21:56:190710デフォルトの名無しさん
2008/12/28(日) 11:11:120711デフォルトの名無しさん
2009/01/20(火) 20:47:479365820592393377723561443721764030073546
9768018742981669034276900318581864860508
53753882811946569946433649006084096
0712デフォルトの名無しさん
2009/03/13(金) 07:41:570713デフォルトの名無しさん
2009/03/13(金) 11:24:05まだしゃべれるとこまではいかないな。特に発音が。
0714デフォルトの名無しさん
2009/03/13(金) 13:37:27そういう処理をアセンブリ言語で書いてアセンブラにかけ、出力されたオブジェクトファイルを参考に機械語をしゃべればOK。
0715デフォルトの名無しさん
2009/03/14(土) 01:52:390716デフォルトの名無しさん
2009/05/19(火) 10:30:19こやつめw
0717デフォルトの名無しさん
2009/08/10(月) 20:29:000718デフォルトの名無しさん
2009/08/10(月) 21:23:41CPUは何でしょう?
0719デフォルトの名無しさん
2009/08/11(火) 07:40:140720デフォルトの名無しさん
2009/08/17(月) 02:23:350721デフォルトの名無しさん
2009/09/05(土) 14:43:05参考になってとっつきやすいサイトないし書籍はありますか?
『IA-32 SIMD リファレンスブック』はちょっと立ち読みしてみたけど
少々キツイです(内容的にも財布的にも)。
0722デフォルトの名無しさん
2009/09/07(月) 12:15:48iccの関連文書にそれなりの情報がある。つーか、SSEを齧る程度ならWebで検索すればヒットするだろ。
0723デフォルトの名無しさん
2009/09/13(日) 14:39:21アレは出てすぐぼったくり本認定されたから買っちゃダメ。
広く浅くでいいのならCQ出版のx86アセンブラ入門でもどうぞ。
サイトなら光成のところとか。まぁ自分でググった方が早い。
0724デフォルトの名無しさん
2009/09/13(日) 14:40:54ごめんなさいorz
0725デフォルトの名無しさん
2009/09/13(日) 15:05:48インテルのサイトで技術資料をPDFで配布してるよ。
あとで必ず必要になるものばかりだからダウンロードしといたほうがいい。
ttp://www.intel.com/jp/download/#ia32
0726デフォルトの名無しさん
2009/09/13(日) 20:00:060727デフォルトの名無しさん
2009/10/19(月) 16:45:58一つのプログラムに割り当てられるアドレスも知りたいです。
それと、どのcpuから64ビットでしょうか
0728デフォルトの名無しさん
2009/10/19(月) 16:49:17「EM64T アドレス空間」でぐぐりなさい。
0729デフォルトの名無しさん
2009/10/19(月) 19:39:30失礼します
mov ah,4ch int21h
0730デフォルトの名無しさん
2009/10/21(水) 11:39:53ttp://purebasic.coolverse.jp/bbs/viewtopic.php?f=5&t=60
問題;
いまXMM128ビットのレジスタのうち、64ビット分しか使っていません。
どうしたらフルに使えるようになるでしょうか? PXORで初期化した領域
から、幽霊がでてきて襲われました。この幽霊はいったいなに?
0731デフォルトの名無しさん
2009/10/21(水) 19:48:53pxor xmm6,xmm6
mov ecx, 16
_For1:
prefetchnta [edi]
cvtps2pd xmm2, [edi]
cvtps2pd xmm3, [edi+8]
cvtps2pd xmm4, [edi+16]
cvtps2pd xmm5, [edi+24]
prefetchnta [esi]
movddup xmm0, [esi]
movddup xmm1, [esi+8]
mulpd xmm2, xmm0
mulpd xmm3, xmm1
movddup xmm0, [esi+16]
movddup xmm1, [esi+24]
addpd xmm6, xmm2
addpd xmm6, xmm3
mulpd xmm4, xmm0
mulpd xmm5, xmm1
addpd xmm6, xmm4
addpd xmm6, xmm5
add esi,32
add edi,32
loop _For1
_Next1:
cvtpd2ps xmm6, xmm6
movlps [p.p_out_buffer_ptr], xmm6
0732デフォルトの名無しさん
2009/10/31(土) 13:25:140733デフォルトの名無しさん
2009/11/08(日) 15:20:500734デフォルトの名無しさん
2009/11/08(日) 15:55:360735デフォルトの名無しさん
2009/11/08(日) 16:42:400736デフォルトの名無しさん
2009/11/08(日) 20:11:26cmovの方が有意義だったと思うけどね。
SSE系は、使用可能な部分においては圧倒的な差が出るけど
使える分野が限られるから。
もちろん、cmovも
互換性が必要なプログラムでは使われてないんだけどさ。
0737デフォルトの名無しさん
2009/11/30(月) 01:25:56・同じものを足す
・左に1ビットシフト
・2を掛ける
C言語ではどのコーディングが最も高速ですか?
0738デフォルトの名無しさん
2009/11/30(月) 01:35:5468 6C E6 26 01
0739デフォルトの名無しさん
2009/11/30(月) 10:00:19C言語でその程度の内容なら、普通に書けばどう書いても最適化される。
読みやすいように書け。
>>738
プロセッサの種類がわからないとわからない。
0740デフォルトの名無しさん
2009/12/06(日) 07:58:5168 MOV l,b
6C MOV l,h
E626 ANI 26h
01 LXI b,この後ろの2バイト この一連のコードではスジが通らないな。
0741デフォルトの名無しさん
2010/02/20(土) 11:07:54x86の32bitコードなら
push $0x0126e66c
0742デフォルトの名無しさん
2010/02/22(月) 22:44:17「ニーモニックを知ってるCPUを挙げろ
ただし、ニーモニックが重複しないように」
0743デフォルトの名無しさん
2010/02/23(火) 00:02:100744デフォルトの名無しさん
2010/02/23(火) 01:21:19教えてください
0745デフォルトの名無しさん
2010/02/23(火) 01:53:260746デフォルトの名無しさん
2010/02/23(火) 01:55:15これから寝るので朝までにお願いします
できれば回答はこっちにしてください
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1237107132
0747デフォルトの名無しさん
2010/02/23(火) 09:10:14本当にわからないってんなら、留年どころの話じゃあない。
いますぐ学校辞めた方がいいぞ。時間と金の無駄だ。
というか、これってどうせVIPPERが釣り遊びしてんだろ?
こんなもんそんなとこに質問丸投げするのと同じ手間で答えそのものを得られるだろ。
0748デフォルトの名無しさん
2010/02/23(火) 10:44:42・MMX命令セットの開発理由を簡潔に述べよ。
分かる方おねがいします
0749デフォルトの名無しさん
2010/02/23(火) 13:46:240750デフォルトの名無しさん
2010/02/23(火) 18:51:450751デフォルトの名無しさん
2010/02/24(水) 08:59:150752デフォルトの名無しさん
2010/02/24(水) 16:14:53それに電源切ったらアキュムレータの値はゼロじゃなくて不定になるよね。
0754デフォルトの名無しさん
2010/03/13(土) 05:39:38SHの機械語はMOV系のニーモニックが使われてるが、アーキテクチャはLD/ST系だ。
C++やCが吐いた機械語で動いているので、人間がASMでプログラムする訳じゃない。
0755デフォルトの名無しさん
2010/03/13(土) 06:22:010756デフォルトの名無しさん
2010/03/13(土) 07:10:580757デフォルトの名無しさん
2010/03/13(土) 23:34:080758デフォルトの名無しさん
2010/03/14(日) 12:24:450759デフォルトの名無しさん
2010/03/14(日) 16:41:140760デフォルトの名無しさん
2010/03/14(日) 18:03:560761デフォルトの名無しさん
2010/03/15(月) 16:27:530762デフォルトの名無しさん
2010/03/15(月) 19:22:49SHだと主張しているのは組込やってる負け組
ということだろうか?
0763デフォルトの名無しさん
2010/03/15(月) 21:16:240764デフォルトの名無しさん
2010/03/15(月) 21:36:580765デフォルトの名無しさん
2010/03/16(火) 01:08:570766デフォルトの名無しさん
2010/04/26(月) 15:09:47検索してたら、ここに来てしまいました。
どなたかご存じの方いらっしゃいますか?
0767デフォルトの名無しさん
2010/04/26(月) 16:44:320768デフォルトの名無しさん
2010/04/26(月) 16:57:11英語版ですがみつけました。ありがとうございました。
0769767
2010/04/26(月) 18:14:170770デフォルトの名無しさん
2010/04/28(水) 07:48:36,/ ノ ヽ ~\
/ ノ IPA ヽ ~\
/ ノ ヽ、 `ヽ
| ノ / ̄\ / ̄~ヽ ヽ i
| ノ | ノ
\ | <●> <●> ( )
\ | | | i /
| / ヽ レ
i (●_●) /
i、 ,-――-、 ・ /
i、 <(EEEEE)> ∵/ どういたしまして
i、 \ ./ /
\ ーー ,ノ
,,.....イ.ヽヽ、ー-―一ノ゙-、.
: | '; \_____ ノ.| ヽ i
| \/゙(__)\,| i |
0771デフォルトの名無しさん
2010/04/30(金) 22:37:040772デフォルトの名無しさん
2010/05/01(土) 00:32:48ろくなもんじゃないけどな
0773デフォルトの名無しさん
2010/05/03(月) 11:40:08アセンブリ言語で書かれたソースコードにコメントを付けているのですが、
見やすいコメントの付け方についてご意見ください。
0774デフォルトの名無しさん
2010/05/03(月) 16:04:370775デフォルトの名無しさん
2010/05/11(火) 16:58:34職場とかで
0776デフォルトの名無しさん
2010/05/11(火) 17:18:140777デフォルトの名無しさん
2010/05/11(火) 17:19:430778デフォルトの名無しさん
2010/05/12(水) 00:29:34バイナリで走るプログラムを書くなら、高級言語で書いてあっても吐いたコアを
解析しなければならない場面というのは結構あるのではないかな?
オプティマイズされてたら、機械語でレベルで追ってかないと十分な情報を引き出せない。
もちろんバグの再現は出来ず、コアは顧客の環境でのみ、数週間、数ヶ月に一回しか吐かれない
って状況。
0779デフォルトの名無しさん
2010/05/12(水) 00:32:54ディスアセンブルしてニーモニックになってるならオケ。
0780デフォルトの名無しさん
2010/05/12(水) 00:51:560781デフォルトの名無しさん
2010/05/24(月) 00:47:00Z80でコンピュータの仕組みを学んだことがあるんだけど、わすれちゃった。
3Eが格納で32が代入25が足し算たったっだかな?
0782デフォルトの名無しさん
2010/05/24(月) 02:26:433E 32 25 と並んでいるなら、3E32 で1命令で、Aregに32hが入る。
その後ろの25が、HLregをデクリメント。
並んでいるのじゃなくて32が命令の頭なら、32の後ろの16bitアドレス(25xx)に
Aregを格納する命令。
0783デフォルトの名無しさん
2010/05/29(土) 21:47:15並びに特別な意味はないよ。
ただなんとなく覚えてる命令を列挙しただけ。
やばいほとんど忘れてる。
>>782の言ってることが理解できないorz
もしくは始めから理解なんてしてなかったのか・・・。
修正:
>足し算たったっだかな?
足し算だったかな?
0784デフォルトの名無しさん
2010/05/30(日) 04:54:1200 NOP
01FFFF LXI b,65535
02 STAX B
・・・
FE80 CPI 128
FF RST 7
全ての命令コードについてこんなリストを作って、命令コードでソートしてある。
これを参照すれば任意のHEXの断片をASMコードに翻訳できるんだよ。
もちろん8085のコードだと判っているHEXでなければ意味ないけど
0785デフォルトの名無しさん
2010/07/23(金) 23:11:32x86 で欲しいのだが
0786デフォルトの名無しさん
2010/07/24(土) 21:22:03作ればいいじゃん。
0787デフォルトの名無しさん
2010/07/25(日) 03:31:560788デフォルトの名無しさん
2010/07/25(日) 05:40:09一行逆アセンブラがついてる
0789デフォルトの名無しさん
2010/07/25(日) 07:11:36>石を限定してから聞かないとね。Z80/8085 なら、3E=Aregに次の1byteをロード。
>3E 32 25 と並んでいるなら、3E32 で1命令で、Aregに32hが入る。
>その後ろの25が、HLregをデクリメント。
H = 100
L = 101
n = 110
(HL) = 110
A = 111
24 = 00 100 100 = INC H 64 = 01 100 100 = LD H, H
25 = 00 100 101 = DEC H 65 = 01 100 101 = LD H, L
26 = 00 100 110 = LD H, n 66 = 01 100 110 = LD H, (HL)
2E = 00 101 110 = LD L, n 6E = 01 101 110 = LD L, (HL)
36 = 00 110 110 = LD (HL), n 76 = 01 110 110 = HALT
3E = 00 111 110 = LD A, n 7E = 01 111 110 = LD A, (HL)
http://njprog.com/z80_002.htm
0790デフォルトの名無しさん
2010/07/25(日) 15:21:04初歩的ですいません
0791デフォルトの名無しさん
2010/07/25(日) 16:05:53インストラクションセットごとに微妙に意味合いが違う場合があります。
0792デフォルトの名無しさん
2010/07/25(日) 16:36:27プログラムを書く場合において、MOV A,Bとあらわされている部分をLXI A,Bとあらわしても問題はないのですか?
0793デフォルトの名無しさん
2010/07/25(日) 16:41:24だから、お使いのインストラクションセットでの意味を把握してお使いくださいと。
同じCPUでも表記の違うインストラクションセットがある場合がありますから。
0794デフォルトの名無しさん
2010/07/25(日) 19:24:480795デフォルトの名無しさん
2010/07/25(日) 20:20:370796デフォルトの名無しさん
2010/07/25(日) 20:54:27[80B3h][80B2h]←[80B0h]+[80B1h]*2
この処理を行うプログラムの書き方がわかりません・・・。
教えてください><
0797デフォルトの名無しさん
2010/07/26(月) 02:34:120798デフォルトの名無しさん
2010/07/26(月) 09:42:45アセンブラと機械語は基本的に1対1で対応している
0799デフォルトの名無しさん
2010/07/26(月) 10:04:52同じ機械語に複数のアセンブリ言語の表現があることもあるし、
同じアセンブリ言語に対応する複数の機械語があることもあるし。
0800デフォルトの名無しさん
2010/07/26(月) 10:07:390801デフォルトの名無しさん
2010/07/27(火) 05:19:30印字機能のON/offなど、いろんな機能を総合したものがアセンブラ。
0802デフォルトの名無しさん
2010/07/27(火) 08:54:500803デフォルトの名無しさん
2010/07/27(火) 12:38:05コンパイラと比べて弱いのは構造体の記述能力あたりかな。
コンパイラがいいのは、レジスタ使いの標準化。ASMで書いてもコンパイラと同じ
レジスタコンベンションを採用するようにしてるよ。
0804デフォルトの名無しさん
2010/07/27(火) 13:18:260805デフォルトの名無しさん
2010/07/27(火) 17:08:500806デフォルトの名無しさん
2010/07/27(火) 21:59:06機械語を直接読んでる人で、2進数のまま読んでいる人なんて、まず見かけないでしょ。
普通は16進数になっているものを読んでるから。
例えば>>784のように、ね。
そもそも、アセンブラ(アセンブリ言語)と機械語の違いをわかってないという
とっても恥ずかしい点には関係ないし。
0807デフォルトの名無しさん
2010/07/28(水) 02:15:050808デフォルトの名無しさん
2010/07/28(水) 02:16:100809デフォルトの名無しさん
2010/07/28(水) 02:20:07意味が判らないね
0810デフォルトの名無しさん
2010/07/28(水) 02:41:16場面があるけど、あの2進数も漫画の吹き出し上の表現であって、
実際はスイッチのON/OFFなんだよ。シリアル転送っぽいから、
その場合LSB、MSBどっちからとか色々あるんだけどね。
そういう事って>>804レベルの読者だと理解してないんだよな。
0811デフォルトの名無しさん
2010/07/28(水) 02:46:08機械語とは2進数のこと
機械語とは2進数だが、(人間がそれを直接読むときは)16進数として表示して読む
この程度の文章も理解できないの?
0812デフォルトの名無しさん
2010/07/28(水) 02:49:44二進数って、人の目で見ないと二進数じゃないんですか?
CPUが扱っているのは二進数じゃないんですか?
0813デフォルトの名無しさん
2010/07/28(水) 02:56:170814デフォルトの名無しさん
2010/07/28(水) 02:56:54機械語ってのは、2進数の並びのことだぞ
機械語ってのは、(人の目で見るときは)16進数の並びのことだぞ
0815デフォルトの名無しさん
2010/07/28(水) 03:02:31何がおかしいのか考えるなりぐぐるなりしなさい
お休み
0816デフォルトの名無しさん
2010/07/28(水) 03:11:200817デフォルトの名無しさん
2010/07/28(水) 03:16:16「2進数も16進数も、同じ数字の表現方法を変えたものだけ」
なんていう、あまりにも当然過ぎて誰も気にもとめなかったことを
「自分は指摘しているから正しい」と言いたいわけじゃないよねぇ。
まさか。
0818デフォルトの名無しさん
2010/07/28(水) 06:59:52プログラマは中身と表現をきちんと区別して意識するものだよ。
2進法、16進法、じゃなくて、2進数、16進数、と書いてるあたり、気にもとめてない
おバカさんだったようだけどwwwwwwwww
0819デフォルトの名無しさん
2010/07/28(水) 07:27:570820デフォルトの名無しさん
2010/07/28(水) 13:08:16「機械語とは2進法の並びである」と言いたかったのか。
さすが三国人の使う言葉は違うね。
0821デフォルトの名無しさん
2010/07/28(水) 13:16:29生 同 .じ . /´ | (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / |∨ ` ̄
/ ..:.:./ | 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
|、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/|.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0822デフォルトの名無しさん
2010/07/28(水) 13:20:50言っとくけど、本当にちゃんと「同じ数字だとわかった上で」書いてるよ。
だからこその、「人が見るときは16進数に直す」だから。
実際に16進ダンプからの読み取りとかすると
命令の一部のビットを2進に直して見ることも必要になるけど
相対ジャンプの計算とかの、2進のままじゃ面倒なこともやらなきゃいけないから。
口先だけで実際にやったことが無い人には
わざわざ16進と付け加えた意図がわからないだろうけどね。
まあ「日本語が理解できない」とひたすら叫んでいた人には関係ないけど。
0823デフォルトの名無しさん
2010/07/28(水) 13:30:03そこは「同じ数」だろ?
「日本語が理解できない」というのが事実だと、また一つ明らかになったねw
0824デフォルトの名無しさん
2010/07/28(水) 13:33:40石の入出力は一般的に電圧の高低であって
2進数にしろ16進数にしろ人が見るための物に過ぎない
ということを話している
0825デフォルトの名無しさん
2010/07/28(水) 13:36:37誰?
何人?
日本語読めない人を除いて
0826デフォルトの名無しさん
2010/07/28(水) 13:41:49えーと、「機械語とは何か」の話をしてるってこと、わかってたかな?
つまり、「機械語とは電圧の高低」と言いたいわけ?
ねえ、普段周りの人と会話とか、してる?
一人でただマンガ読んでるだけじゃないよね?
ちゃんと他人とコミュニケーション取れてる?
0827デフォルトの名無しさん
2010/07/28(水) 13:48:060828デフォルトの名無しさん
2010/07/28(水) 14:01:15一人でただマンガ読んでるだけじゃないよね?
ちゃんと他人とコミュニケーション取れてる?
0829デフォルトの名無しさん
2010/07/28(水) 14:02:13> 一人でただマンガ読んでるだけじゃないよね?
> ちゃんと他人とコミュニケーション取れてる?
むしろ、おまえはどうなんだ?
コンピュータとのコミュニケーションすらちゃんとできてなさそうだぞ。
0830デフォルトの名無しさん
2010/07/28(水) 14:07:44アセンブリ言語という、人間が扱うもの、と
機械語とを混同している人に対して説明するために
ニーモニックが並んだアセンブラのリスト、
これと対比できるものを挙げるのは当然のこと。
流れを読めず、状況を想像することもできず
ただひたすら上げ足取りだけをいつもいつも考えている人には
理解できないだろうけど。
0831デフォルトの名無しさん
2010/07/28(水) 14:09:36>お前以外は
誰?
何人?
日本語読めない人を除いて
ねえ、普段周りの人と会話とか、してる?
一人でただマンガ読んでるだけじゃないよね?
ちゃんと他人とコミュニケーション取れてる?
0832デフォルトの名無しさん
2010/07/28(水) 14:10:400833デフォルトの名無しさん
2010/07/28(水) 14:21:38それでは2進と16進の扱いの差を説明できていないぞ
0834デフォルトの名無しさん
2010/07/28(水) 19:16:36ネタにマジレスしとくがレベル低い基地外に絡まれたらマジ厄介。
0835デフォルトの名無しさん
2010/07/28(水) 22:18:45もし本気で二進数というのは数値の表現方法に過ぎないということを
もったいぶって、俺は知ってるから偉いんだぞ、的なことを書いていたのだとしたら
ちょっと恥ずかしすぎる。
0836デフォルトの名無しさん
2010/07/29(木) 04:15:340837デフォルトの名無しさん
2010/07/29(木) 05:16:2534 28 50 5E 29 37 43 43 29 37 7D 24 45 49 43 41
52 2D 53 54 41 4E 44 41 52 44 2D 41 4E 54 49 56
49 52 55 53 2D 54 45 53 54 2D 46 49 4C 45 21 24
48 2B 48 2A 29 3B
0838デフォルトの名無しさん
2010/08/01(日) 05:23:570839デフォルトの名無しさん
2010/08/01(日) 09:48:080840デフォルトの名無しさん
2010/08/01(日) 09:59:350841デフォルトの名無しさん
2010/08/01(日) 13:31:31ちなみに文字列にしたらこんなのだった。
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*);
0842デフォルトの名無しさん
2010/08/02(月) 00:52:520843デフォルトの名無しさん
2010/09/19(日) 21:56:220844デフォルトの名無しさん
2010/09/19(日) 22:34:21これでも高速化の可能性はあるのでしょうか?
0845デフォルトの名無しさん
2010/09/19(日) 22:45:190846デフォルトの名無しさん
2010/09/19(日) 22:48:47ベクトル演算自動生成で。コードが短くなるはずなんですけどもね。
0847デフォルトの名無しさん
2010/09/19(日) 22:51:140848デフォルトの名無しさん
2010/09/19(日) 22:54:590849デフォルトの名無しさん
2010/09/20(月) 03:28:250850デフォルトの名無しさん
2010/09/20(月) 04:02:42それを手動で最適化するだけの技術はありません。
例えば配列のデータはバイトだけどintにしないとコンパイラは自動的に
SSE2のベクトル演算にしてくれません。最適化の道のりは遠いです。
0851デフォルトの名無しさん
2010/09/21(火) 11:06:040852デフォルトの名無しさん
2010/11/07(日) 12:10:47いよいよ、64bitなPCを買うことになった
64bitの逆汗でいいのがあったら教えて
32bitで使ってたのは、IDA Pro Freeware 64bitは、Advancedのみだそうだ
割れを探せばあるにはあるが、逆汗の成果を自作物(アマチュア)に取り込むので、
製作過程に割れをかましたくはない…。
0853デフォルトの名無しさん
2011/01/04(火) 00:05:31VisualStudioのデバッガとかGDBとかメジャーなデバッガで出きるだろ。
もし逆コンパイルの事なら聞くな。元のコードに戻すのは不可能だから。
0854デフォルトの名無しさん
2011/01/26(水) 23:36:09いや、覗くだけなら、cdb/ntsdで十分だな、たしかに
ちょっと意味が違うが、cl /Fa も使うようになった
その後、radareってのを試した ちょっとキツかった
ちなみに、IDA Pro 製品版には、逆コンパイラが付くようになったそうだが、
それはまあ、俺には過ぎた代物だな プロと違って、量を読む必要はないし
スタックマシンタイプの仮想マシンのバイトコードは、逆コンパイラがあるとラクだが、
x86程度なら、レジスタ数もそこそこあるし、素で読んでもおおよその流れは掴める
0855天使 ◆uL5esZLBSE
2011/07/05(火) 16:42:39.23Rubyだとつけなくてよくなるんだけど
土方が何をいっても
0856デフォルトの名無しさん
2011/07/05(火) 18:07:17.880857天使 ◆uL5esZLBSE
2011/07/06(水) 19:01:12.51--
<<<<<< これ ; デリミタっていうんだけどさ、よく打ち忘れるよね >>>>>>(きリッ!ッッ!!
---------
<<<<<<<<<<< Rubyだとつけなくてよくなるんだけど >>>>>>>>>>>(きリッッッ!!キリ!!キリキリッッキリッッッ!!ッッッッ!!!!
---------
<<<<<<<<<<<<< 土方が何をいっても >>>>>>>>>>>>>(キリッッッッ!キリッッキリッッ!きリッッッッ!!きリッッッ!ッッッ!!
放射性廃棄物のほうがマシ
天使#test_s
「天使の煽り」の提供でお送りしました
0858デフォルトの名無しさん
2011/07/09(土) 01:24:07.530859デフォルトの名無しさん
2011/07/09(土) 07:47:49.870860デフォルトの名無しさん
2011/07/16(土) 15:15:50.33表示されないコメント文ってありますか?
0861デフォルトの名無しさん
2011/07/16(土) 18:54:19.27rem コメント
だっけ?
つかバッチファイルはスレチだろおい
0862デフォルトの名無しさん
2011/07/17(日) 03:51:26.25@echo off
0864デフォルトの名無しさん
2011/07/17(日) 14:43:28.310865デフォルトの名無しさん
2011/07/17(日) 15:09:01.850866デフォルトの名無しさん
2011/07/18(月) 13:30:53.330867デフォルトの名無しさん
2011/07/18(月) 13:59:25.670868デフォルトの名無しさん
2011/07/20(水) 15:24:56.770869名無し募集中。。。
2011/07/20(水) 17:07:43.42Call 0108h
Ret
0870862
2011/07/21(木) 05:40:25.48という本に載っていました。 スレ立てるまでもない疑問・質問 というスレがありました。
こういうのはあっちが良かったですね。相手してくれた人たち、ありがとうございました。
0871! 【36.2m】 【東電 66.0 %】 忍法帖【Lv=8,xxxP】 【Dnews1316155242972309】
2011/09/23(金) 18:56:43.09コメント代わりに多用してたな
exx
http://codezine.jp/article/detail/419/
で説明されているプログラムで生成したEXEを実行すると、ノートンがウィルスと思って削除してしまいます。
どうしたらウィルスと思われなくできますか?
どこをみてウィルスと判断されたのでしょうか?
どのパラメータとかいじっていいかわかりません。
0873872
2011/09/24(土) 15:37:48.84test.exeだとチェックが厳しいのでしょうが、それでもどこでウィルスと判断されたのでしょうか?
0874デフォルトの名無しさん
2011/09/26(月) 14:55:19.33ノートンのログに、なんというマルウェアと認識したか位記載されていないの?
0875872
2011/09/26(月) 19:13:21.86疑わしい動作を検出しました、としかありません。
でも、いろいろ元のプログラムをいじったら解決しました。
無駄に大きいexeのサイズをコンパクトにできるようにしたり、
最後にExitProcessを呼ぶようにしたりしました。
どれが決定的な役割を果たしたのかはわかりませんが。
ありがとうございました。
0876デフォルトの名無しさん
2011/11/28(月) 23:01:41.150000 : 0F00 mov
この命令を、far callで実行したい場合、
9A 0000 0F00 call far ptr
という感じにアドレス指定(セグメント:アドレス)のバイナリ命令で良いのでしょうか?
0877デフォルトの名無しさん
2011/11/28(月) 23:27:33.830878デフォルトの名無しさん
2011/11/29(火) 02:19:27.66しかし、それだけのミスなら良いのですが。。。自分のセグメントの扱いの知識が怪しいので。
セグメントに関して、もう1つ質問させてもらいます。
各セグメントのサイズは、64kbまでって書いてあったんですが、
逆汗が出力したコードの、データセグメントと思われる大きさが、
[FFFFh]を越えてたのですが、これはどういうことですか?
0879デフォルトの名無しさん
2011/11/29(火) 05:28:10.56セグメント番号とセグメント内オフセットを別々に計算して、セグメント番号は
セグメントレジスタに、オフセットは別のレジスタにセットしてアクセスするとか、
32bitの絶対アドレスで計算するとか、それなりの気遣いが必要になる。
よくやる間違いは、配列のn番目をオフセットだけで計算する間違い。
0880デフォルトの名無しさん
2011/11/29(火) 19:11:32.76セグメントレジスタ値の演算をいかに減らすかが腕の見せ所か
Cコンパイラにhugeモデルのアセンブラソース吐かせれば
勉強になるんじゃないかな
0882デフォルトの名無しさん
2011/11/30(水) 07:26:51.03電気通信大学の知り合いから、「機械語はプログラミング言語ではない」との指摘を受けたのですが、そうなのでしょうか?
0883デフォルトの名無しさん
2011/11/30(水) 07:42:37.550884デフォルトの名無しさん
2011/11/30(水) 10:50:11.290885デフォルトの名無しさん
2011/11/30(水) 12:54:03.00バイト列のことを言ってるのかもしれないし、
(CPUが直接理解しない)中間言語のことを含めて言ってるのかもしれない
>>868 で意味は読めたが、0108が何だったか思い出せない
俺も耄碌したな ぴーろくだったかな
0886デフォルトの名無しさん
2011/11/30(水) 15:08:44.88>>882の知り合いの言うようにプログラミング言語としてはアセンブラだろな。
アセンブラの吐く最終目的は実行コードである機械語だが、言語としては
他にデータ定義、領域定義、アセンブル方法に関する命令など色々な機能がある。
0887デフォルトの名無しさん
2011/11/30(水) 15:22:52.25それともノイマンアーキテクチャが出た当初から、
(机上であれ)アセンブリ言語は存在したのか?
0888デフォルトの名無しさん
2011/11/30(水) 15:36:38.83hexで機械語とか語ってる奴はにわか。とかって思われるのかな、俺ら。
0889デフォルトの名無しさん
2011/11/30(水) 16:25:52.090890デフォルトの名無しさん
2011/11/30(水) 17:06:20.46A20M とかいう感じで書かれたプログラムの紙テープを読み取って、
バイナリに変換してたぞ。
もっとも、この例では「A」の部分は紙テープ上のコードがそのままオペコードの
バイナリになってたのだが、その次のアドレス指示部は、普通の文字で
十進で書かれたものをバイナリに変換してる。
0891デフォルトの名無しさん
2011/11/30(水) 22:44:43.580892デフォルトの名無しさん
2011/12/01(木) 05:43:47.63起動すると、ROMみたいな感じのハードウェアから、RAM(水銀遅延管)に書き込まれるんだと思った。
0893デフォルトの名無しさん
2011/12/01(木) 06:47:35.75「ブートローダーを読み込ませるコード」 を書き込み、「実行」 させると
紙テープからブートローダーが読み込まれ、さらに複雑なローダーが常駐する、
なんてことやってたぞ。昭和50年代だったかな
0894デフォルトの名無しさん
2011/12/01(木) 11:58:24.32…ほんと、いい経験してて羨ましいと思うぜ、まじで
俺は、Z80から入ったニワカ
0895デフォルトの名無しさん
2011/12/02(金) 05:22:21.65俺にはいまだに8085の仕事が来るんだが、年に数枚出るこの基盤のために、
廃棄された基盤から外したチップを調達するのが年々大変になってる。
こんな石のマニュアルなんて紙のはとっくに絶滅してるし、生産中止になって長い
から、netにも僅かしか残ってない。火星まで行って仕事した由緒正しい石なのに。
0896デフォルトの名無しさん
2011/12/02(金) 07:40:14.86とっとと置けるように制度作ってほしいよな。
0897デフォルトの名無しさん
2011/12/02(金) 12:42:19.00ついでにセラミックの780も連想してみたが、…なんか懐かしさが沸かない
今なら、PIC(エミュ入りドータボード)かFPGA(俺には書けない)で代替できたりしないかなって思う
0899デフォルトの名無しさん
2011/12/02(金) 17:19:49.46すまんやっかみ
FM7欲しかった
http://www.bbc.co.uk/news/technology-15968878
http://www.canyoucrackit.co.uk/
解説: http://www.itmedia.co.jp/news/articles/1112/02/news085.html
# 一応試しましたが、見た感じのとおりです。
0901895
2011/12/03(土) 04:00:15.87プロジェクトの記録が残っている最古の仕事だ。26年前のF社の製品。
(これより前は、「職歴」 しか残ってない。)
ROMが8KBの物しか無く、2000h番地ずつ4個に焼くのが面倒だった。
数年後保守を部下に任せた頃にはROMが1個になってて感動した(w
2764 ですかあ。27128 まではみたことがあるんですが。
0903デフォルトの名無しさん
2011/12/03(土) 18:49:43.230904895
2011/12/04(日) 05:08:57.36だから、脚がへなへなに曲がってるのばかり。27512刺しても使えるんじゃね?
とか話してる。
0905デフォルトの名無しさん
2011/12/04(日) 11:52:53.29# 「ない話」な。ふと思い出したので
0906デフォルトの名無しさん
2011/12/12(月) 19:23:06.89ttp://www.google.co.jp/logos/2011/noyce11-hp.jpg
0907デフォルトの名無しさん
2012/01/27(金) 05:42:46.20A=09 の所に INR A して、DAA すると 0A→10 になる?
A=90 の所に DCR A して、DAA すると 8F→89 になる?
DAA っていうのがどんな動作するのかよく判らないので、なんでそうなるのかも。
0908デフォルトの名無しさん
2012/01/27(金) 05:55:25.70それとも仕組みが判らないのか
しょぼいマイコンのそれもごく稀なケースでしか使い道ないし
今更別に覚える必要ないよ
0909デフォルトの名無しさん
2012/01/27(金) 17:25:53.13知りたいのです。 ハーフキャリーが立ってたら何かを足す、というメカではないか
と想像してるのですが、実地に知ってる人の話を聞くのが早いと思いまして。
0910デフォルトの名無しさん
2012/01/27(金) 17:31:55.93俺もちょっと聞きたい
0911デフォルトの名無しさん
2012/01/27(金) 17:46:54.96http://www.alles.or.jp/~thisida/mycpu13.html
0912デフォルトの名無しさん
2012/01/27(金) 17:50:22.230913デフォルトの名無しさん
2012/01/27(金) 19:55:32.74http://www.onlyme.sakura.ne.jp/mycpu80_img080_81_82_83.jpg
リンク元: http://www.alles.or.jp/~thisida/nd80z3syokai.html
0914909
2012/01/28(土) 13:47:27.73これはインストラクションセットの説明だけでは想像できませんでした。
BCD3バイト(LSB,2バイト目,MSB)からBCD1バイトを引く計算は、Creg=引く数で
LDA LSB
ADD C
DAA
STA LSB
LDA 2バイト目
SBI 0
DAA
STA 2バイト目
LDA MSB
SBI 0
DAA
STA MSB
これでうまく行きそうに思います。どうでしょうか?
0915デフォルトの名無しさん
2012/01/28(土) 14:01:19.49SUB C ○ でした(m_ _m)
0916デフォルトの名無しさん
2012/01/29(日) 17:44:55.193E 01 C3 08 01 でおkと何度いえば
0917デフォルトの名無しさん
2012/01/29(日) 18:52:18.270918デフォルトの名無しさん
2012/02/20(月) 10:35:58.26TTLが並んでるのを見ると懐かしさと同時に何故かワクワクしてくる
0919デフォルトの名無しさん
2012/04/29(日) 08:02:28.49この時代のコンパイラ、アセンブラはどういったものがあるんでしょうか?
または、これらが走るプログラムをコンパイル、アセンブルするにはどうすればいいでしょうか?
0920デフォルトの名無しさん
2012/04/29(日) 10:12:19.55CでいいならLSI-C試食版が手頃かな。癖はあるけどアセンブラも付いているぞ。
0921デフォルトの名無しさん
2012/04/29(日) 13:58:50.06適当に拾ってこれるTD(無償配布版)って、16ビット対応だったっけ
0922デフォルトの名無しさん
2012/05/02(水) 01:43:57.790923デフォルトの名無しさん
2012/05/04(金) 17:55:54.30数字しかないからもしかして機械語か?と思ったが自分にはわからないからもし機械語なら
意味を教えてほしい
http://hissi.org/
必死チェッカー1位のやつだ
0924デフォルトの名無しさん
2012/05/05(土) 05:12:14.61突っ込みどころ満載だな。
・今見たら既に二位だ。
・スクリプト投下ってなんだよ。こんなもん手打ちできる時間じゃないか。
・数字しかないから機械語っておめでてぇな。
・それが本当に機械語だとして、たった数個の数値だけで何が判るんだ。
まぁ、文字を数値化して書き込んでいるんだろうな。
0925デフォルトの名無しさん
2012/10/10(水) 10:37:57.300927デフォルトの名無しさん
2012/11/20(火) 11:57:23.530928片山博文MZボット ◆0lBZNi.Q7evd
2012/11/21(水) 11:52:04.990929デフォルトの名無しさん
2012/11/26(月) 20:30:08.04http://www.microsoft.com/
0930デフォルトの名無しさん
2012/12/16(日) 01:53:33.15strcpy(dst,1行目);
strcat(dst,2行目);
strcat(dst,3行目); strcat関数はstrlenとstrcpyを使うだろうからコール2つだろう
と思っていたら、コール5つも含んでいた。string.hを調べて、copyした末尾のnullキャラ
のアドレスを返す、stpcpy(dst,src) という関数を見つけた。それだと上のはこう書ける。
strcpy(stpcpy(stpcpy(dst,1行目),2行目),3行目); 上のよりは速い。
ところが、stpcpy関数はcで書かれていて、strlenとstrcpyの他にコール2つを含む
コードになっていた。つまりstrcatの4/5にしか短縮できない。第一引数はHLだから
strcpyした末尾アドレスをそのまま返せばstrcpyと同程度の性能になるのに許せん!
0931つづき
2012/12/16(日) 02:02:11.52stpcpy_::; char*stpcpy(char *s, const char *t) {
LDAX D
INX D
MOV M,A ; (*s++ = *t++)
INX H
ORA A
JNZ $-5
DCX H ; return(末尾アドレス)
RET
strcpyより僅かに速い関数ができた。机上での論理チェックもしたし、実装が楽しみ。
strcatもASMで書き直したら純粋にstrlenとstrcpyだけの性能にできた。
8085はレジスタが少ないので、automaticクラス変数のメモリアクセスがネックだな。
0932デフォルトの名無しさん
2012/12/16(日) 02:36:01.05改良してやったぞ。
INX D
INX H
stpcpy_::; char*stpcpy(char *s, const char *t) {
LDAX D
MOV M,A ; (*s++ = *t++)
ORA A
JNZ $-5
RET
0933デフォルトの名無しさん
2012/12/16(日) 03:07:18.33INX H
stpcpy_::; char*stpcpy(char *s, const char *t) {
LDAX D
MOV M,A ; (*s++ = *t++)
ORA A
RZ
INX D
INX H
LDAX D
MOV M,A ; (*s++ = *t++)
ORA A
RZ
INX D
INX H
LDAX D
MOV M,A ; (*s++ = *t++)
ORA A
RZ
INX D
INX H
LDAX D
MOV M,A ; (*s++ = *t++)
ORA A
JNZ $-23
RET
0934931
2012/12/16(日) 06:48:10.81の中に書いてるんで、どうやったらそれにできるかな。やってみよう・・・
0935931
2012/12/16(日) 07:15:46.55char* stpcpy(char *d, const char *s) { /* stpcpy()関数の最適化 12.12.11*/
*d = *s; /* do { } while( */
_asm_c("\n\tORA\tA\n\tJNZ\t$$-5\n"); /* *d++=(LDAX D;INX D;) ); */
} 関数の外に_asm_c( )が書けないので、これが最善でしたね。
定数を別の場所に集めるコンパイラでは使えなくなっちゃうけど(w
0936デフォルトの名無しさん
2012/12/16(日) 11:25:50.22dummy() {
_asm_c(" INX D\n");
_asm_c(" INX H\n");
_asm_c("stpcpy_::; char*stpcpy(char *s, const char *t) {\n");
_asm_c(" LDAX D\n");
_asm_c(" MOV M,A ; (*s++ = *t++)\n");
_asm_c(" ORA A\n");
_asm_c(" JNZ $-5\n");
_asm_c(" RET\n");
}
0937931
2012/12/16(日) 19:05:52.30振って、if ( (*d = *s)==0 ) goto do1; とかやれば殆どcにできそうですね。
明朝やってみますね。 ありがとう。
0938931
2012/12/17(月) 04:44:25.32illegal EXTRN stpcpy_ というエラーになりました。cのコールは外部コールなのに
内部にそのラベルがあるのはおかしいということですね。
ASMのラベルはcには見えなくて、アセンブルフェーズでエラーになるんですね。
結局、932のコードを実装するには935が最善みたいです。定数をstpcpyの中に
書くと INX D から実行が始まっちゃうし。932のsofをromlibのstpcpy_と置換する
のが正論なんでしょうけど、配布済みのromlibをいじるのも畏れおおいし(w
0939デフォルトの名無しさん
2012/12/17(月) 05:15:29.70>cのコールは外部コールなのに
>内部にそのラベルがあるのはおかしいということですね。
>ASMのラベルはcには見えなくて、アセンブルフェーズでエラーになるんですね。
ラベルにコロン二個付けててそんなわけないだろう
0940931
2012/12/17(月) 06:00:05.25#include <string.h>
#include <stdlib.h>
char _asm_c(char *);
charCUR[190],WCUR1[64],WCUR2[64];
void dummy(void) {
_asm_c("\n\tINX\tD\n");
_asm_c("\n\tINX\tH\n");
_asm_c("\nstpcpy_:: ;\n");
_asm_c("\n\tLDAX\tD\n");
_asm_c("\n\tMOV\tM,A\n");
_asm_c("\n\tORA\tA\n");
_asm_c("\n\tJNZ\t$$-5\n");
_asm_c("\n\tRET\n");
}
void setcur(char *buf) {
if( WCUR1[0] & WCUR2[0] ) {
strcpy(stpcpy(stpcpy(CUR,WCUR1),WCUR2),buf);
}
WCUR1[0]=WCUR2[0]=0;
}
0941931
2012/12/17(月) 06:16:33.17NR80 -P test.lst test.asm でアセンブルすると、 EXTRN stpcpy_ の行について
illegal extrn strcpy_ が出ますよ。 63行目
EXTRNstpcpy_
*** illegal extrn stpcpy_
lcc80の実行フェーズは、CPP=cソース展開、CF、CG80=cからASMを展開、
NR80=アセンブル という構成になってます。ASMのラベルのstpcpy_::は、
2番目のフェーズでは存在を認められないので、こういうことが起こります。
0942デフォルトの名無しさん
2012/12/17(月) 12:12:50.78アセンブルでエラーになるなら対策すりゃいいだけの話じゃね?
NR80ってアセンブラの仕様が分からんからなんでエラーになってるのか判らんが
>>935でエラーにならないなら>>935のコードで出力される相当の内容を
_asm_c()で書けばいいだけのことだろう。
0943931
2012/12/18(火) 04:44:08.12書かれたのが936でしょ。 対策すりゃいいだけ、ってのに対応していろいろいじった
経過が938で最後はやっぱり935。LSIC80では936は実装できませんでした、という話。
>アセンブラの仕様が分からんからなんでエラーになってるのか判らんが
アセンブラの仕様は分からなくてもエラーメッセージから推測できましたけど。
cはstpcpy_を外部ラベルとしてコールする機械語を吐くが、同じソースの中に
stpcpy_というラベルがある。それじゃ外部であるという宣言 (EXTRN stpcpy_) が
間違いなんじゃね? という意味のエラーですね。
936のstpcpy_::のラベルの場所をコールするcの書式とかあります?
asmなら call dummy+2 とか書けるけど、cではそうは書けないよ。
cからの呼びだし書式は<string.h>準拠で書ける機械語コード、という条件で
俺がたどりついたのが935だった。
0944デフォルトの名無しさん
2012/12/18(火) 06:14:47.51>936のstpcpy_::のラベルの場所をコールするcの書式とかあります?
>asmなら call dummy+2 とか書けるけど、cではそうは書けないよ。
typedef char*(*pstpcpy)(char *s, const char *t);
((pstpcpy)((char*)dummy + 2))(CUR, WCUR1);
0945デフォルトの名無しさん
2012/12/18(火) 06:24:17.24((char*(*)(char*, const char *))((char*)dummy + 2))(CUR, WCUR1);
>>944もだが恐らくは CALL dummy+2 よりは冗長なコードを吐くとは思うのでこういう呼び出し方を
することが無意味なのは言うまでもない。
0946デフォルトの名無しさん
2012/12/18(火) 07:51:43.46char*stpcpy(char *s, const char *t) {
_asm_c(" DEFB 01H\n");
_asm_c(" INX D\n");
_asm_c(" INX H\n");
_asm_c(" LDAX D\n");
_asm_c(" MOV M,A ; (*s++ = *t++)\n");
_asm_c(" ORA A\n");
_asm_c(" JNZ $-5\n");
_asm_c(" RET\n");
}
とかなんか変な苦労するぐらいならインラインアセンブラなんか使わずに素直にアセンブリソースに分割すべき。
0947931
2012/12/18(火) 14:38:23.3901HはLXI Bなのね。よく思いつくなあ・・・
BCは壊してもいいのですが、たしかに素直じゃないですね。
こんな小さなコードでもいろんな見解が聞けてよかったです。ありがとうございました。
0948デフォルトの名無しさん
2012/12/18(火) 15:33:12.24条件付ジャンプでオペランド部分に飛び込むのは常套手段。
--
; aが0なら0xffにそうでないなら0にする
and a
jp z $+2
xor a
db 0dah ; jp c
ld a, 0ffh
--
とか。
0949デフォルトの名無しさん
2012/12/18(火) 15:46:24.93例がマヌケ杉
cpi 1
sbb a
0950931
2012/12/18(火) 16:56:00.718085はけっこう深入りしたけど、ゼッパチはふつうのユーザー止まりでした。
7801で、現場に行ってから32bit/16bit:DEHL/BCを書いたことがあります。
それが初めてのソフト除算で、よくパツイチで通ったなあ・・・
ご先祖様は助けてくれない (そんなもん無かったから) 前世の行い?
あんな奇跡はそのとき一回きりでした。その後宝くじは買いません。
0951デフォルトの名無しさん
2012/12/19(水) 05:32:16.03そもそも LSI-C80 ならバカなソース書かなきゃそんな酷いコード吐かないんでない?
char*stpcpy(char *s, const char *t)
{
while (*s = *t) {
s++;
t++;
}
return s;
}
手許の LSI-C86 試食版での結果は↓だったよ。
stpcpy_::
PUSH SI
MOV SI,AX
JMP _1
_2:
INC SI
INC BX
_1:
MOV AL,[BX].B
MOV [SI].B,AL
TEST AL,AL
JNE _2
MOV AX,SI
POP SI
RET
0952デフォルトの名無しさん
2012/12/19(水) 05:45:13.54LSI-C80 → LSI C-80
LSI-C86 → LSI C-86
0953デフォルトの名無しさん
2012/12/19(水) 08:35:02.17→80版は86版ほどタイトなコードは生成しない。
第二に、初回のジャンプを省略しようかと言うレベルの話をしていること。
→8086のコードは参考にしかならない。
全く的外れと言わざるをえない。
0954デフォルトの名無しさん
2012/12/19(水) 12:27:27.27>先ず第一に、80と86ではコードジェネレータが違うこと。
>→80版は86版ほどタイトなコードは生成しない。
じゃあどんなコード吐くの? 参考に晒してくれたっていい罠。
>第二に、初回のジャンプを省略しようかと言うレベルの話をしていること。
少なくとも>>930-931はそんな話してない訳だが。
>→8086のコードは参考にしかならない。
参考になるならいいじゃん。アホか?
0955デフォルトの名無しさん
2012/12/19(水) 12:52:55.10>第二に、初回のジャンプを省略しようかと言うレベルの話をしていること。
そこまで気にすんなら関数呼び出しのコストも削れよw
0956デフォルトの名無しさん
2012/12/19(水) 13:14:11.67そう真っ赤になるなって。自分の投稿時間でも眺めて和めよ。
0957デフォルトの名無しさん
2012/12/19(水) 13:40:48.460958デフォルトの名無しさん
2012/12/19(水) 13:47:51.40>8085用のLSIC-80で、3行分溜めてからまとめるコードを以下のように書いていた。
> strcpy(dst,1行目);
> strcat(dst,2行目);
> strcat(dst,3行目);
>strcpyした末尾アドレスをそのまま返せばstrcpyと同程度の性能になるのに許せん!
実際その部分が全体のパフォーマンスにどの程度影響及ぼしてるわけ?
多少効率が悪かろうとも、間に合ってるなら以降の作業は徒労ということになるが。
0959931
2012/12/19(水) 16:54:57.384800BPSを4CH同時に入出力してて、あるCHがこの例です。1CHだけならイイが、
4CHみんな整数変換とかstrcatを使うと危ないので軽くできればしておきたいです。
間に合わない=受信ringで周回遅れが発生して行の再構成が失敗します。
clockは3.072MHzで、これを8253で分周して8251用と10mS割込用のclock作ってます。
まあ、暇だから最適化で遊んでるってのもありますけど。
0960デフォルトの名無しさん
2012/12/19(水) 17:19:47.09sprintf(dst, "%s%s%s", 1行目, 2行目, 3行目);
とか書けば保守性は向上するな。
sprintf()の実装や連結する文字列のバイト数によっては負荷ともなりうるが。
0961デフォルトの名無しさん
2012/12/19(水) 17:23:55.25>sprintfで実数変換使うと間に合わない、整数変換でも幾つもやると同様、ぐらい。
重い箇所分かってんなら最適化で一番効果が期待できるのはそこだが?
0962デフォルトの名無しさん
2012/12/19(水) 17:38:54.44>8085用のLSIC-80で、3行分溜めてからまとめるコードを以下のように書いていた。
> strcpy(dst,1行目);
> strcat(dst,2行目);
> strcat(dst,3行目);
最初からひとつのバッファに3行分溜めればまとめる必要もねんじゃね?
0963デフォルトの名無しさん
2012/12/19(水) 17:50:04.64それでもダメってところで、ようやくアセンブラ。
0964デフォルトの名無しさん
2012/12/19(水) 18:01:44.75LSI C-80って基本的な仕様が古いみたいだし、実数はfloatでも一旦doubleに昇格してから
演算するとかですげえ遅いんじゃないの?C89以前では普通だったけど。
実数が本当に必要かも検討するべき。
0965デフォルトの名無しさん
2012/12/19(水) 18:14:14.31まして80じゃぁしょうがない。多分自力で固定小数点数ライブラリを作るのが一番。
0966デフォルトの名無しさん
2012/12/19(水) 18:18:40.15>Cで速度最優先なら、str系ではなく、自分で長さを保持して全てmemcpy。
8085での実装なら、memcpy()よりstrcpy()の方が速い。
0967966
2012/12/19(水) 19:45:54.678085での実装なら、memcpy()よりstrcpy()の方が速い。
↓
8085での実装で、場合分けによる処理の最適化をしない前提なら、memcpy()よりstrcpy()の方が速い。
LSI C-80での実装がどうなってるかは知らん。
0968デフォルトの名無しさん
2012/12/19(水) 20:18:33.62暇ならLSI C-80に>>951のソース喰わしたらどういうコード吐くかやってみて
0969931
2012/12/20(木) 06:43:03.90__2:
LDAX D
MOV M,A
ORA A
JZ __3
%17
INX H
%18
INX D
%19
JMP __2
__3:
%20
RET
JMPが2つあるのでサイズ最小ではないけど、素直なコードですね。
_asm_が混じるcコードより可読性はグー!
memcpyよりstrcpyのほうが速いのは知って使ってます。
0970デフォルトの名無しさん
2012/12/20(木) 13:33:15.10成る程、86版とは違うコードになるんだなあ。
1ループ中にジャンプ命令が2回あるからコピーする文字列が長いと86版に比べて効率は悪いが、
逆に、コピーする文字列が""で、結果1バイトしかコピーしない場合には効率は良いとも言えるな。
JZ __3
(略)
__3:
RET
のところは
RZ
になってればループを抜けなかった際のサイクル数が少なかったのに惜しい。
0971931
2012/12/20(木) 13:55:00.11if( r_ptr ^ w_ptr )
func( ); は、lda r_ptr、lxi H,w_ptr、xra M、JZ 飛び越し、call func
が出ます。 これを lhld r_ptr、mov A,H、xra L、cnz func と、最適化しました。
(r_ptrとw_ptrは並んでいるので) メインループ中にこれが4種類あるので、
メモリアクセス削減になってます。
0972デフォルトの名無しさん
2012/12/20(木) 14:52:08.260973931
2012/12/20(木) 17:14:18.48だけなのに、strncpy( ) は、目的stringがソースより長いとき 「残りを全て0で埋める」
ように書かれていました。 これは実害は無いにしろ、「余計なこと」 ですね。
0974931
2012/12/22(土) 05:50:34.74char*stpcpy2(char *s, const char *t) {
goto do2;
do1: s++; t++;
do2: if (*s = *t) goto do1;
return(s);
} これだと頭のジャンプ1回が静的動的に無駄なだけで、あとはASMのコードと同性能
_asm_で書くより可読性は良いから、cでの実装にはこれがベストかと。
0975デフォルトの名無しさん
2012/12/22(土) 09:31:32.92それがstrncpy()の奇妙な仕様。なので、余計ではない。
0976931
2012/12/22(土) 12:37:11.14なってるんだろう? 末尾nullだけでは困る事情がかつてあったのだろうか。
0977931
2012/12/22(土) 13:08:23.06forで、頭JMPで実行条件判定に飛び込むパターンも見たことあるのですが、何が
決め手になるのかよく判らないなあ。
0978931
2012/12/28(金) 04:30:02.13push H
push D
pop H
push H
push H
call LAUTO4
call strlen
mov C,L
mov B,H
call LAUTO4
DAD B
POP D
call strcpy
call LAUTO2
pop B
pop B
ret コールが5回もあるの(*o*) あんまりだ!
0979931
2012/12/28(金) 04:36:00.53strcat_: ; char *strcat(char *s, const char *t) {
push H ; 第1引数を保存
mov A,M
inx H
ora A
jnz $-3 ; 末尾を探す
dcx H ; 末尾アドレスに戻す
call strcpy_ ; その位置にcopy
pop H ; 第1引数を復元(HL=返却値)
ret
0980デフォルトの名無しさん
2012/12/28(金) 08:37:20.92call して pop hl する代わりに、pop af して jmp してはどうだろう。
0981デフォルトの名無しさん
2012/12/28(金) 08:38:15.510982デフォルトの名無しさん
2012/12/28(金) 09:39:18.01速度優先なら、PUSH H〜POP HはBC に退避〜復帰させた方が早い。
但しstrcpy()の中で破壊されないこと前提になるから保守性は低下する。
strcpy()も展開した方がいいな、速度優先なら。
0983デフォルトの名無しさん
2012/12/28(金) 09:47:24.05OS創りたいのですが
何から始めれば良いでしょう
0984デフォルトの名無しさん
2012/12/28(金) 09:48:59.43PCを拾ってくる
0985デフォルトの名無しさん
2012/12/28(金) 09:50:44.89バイトでもいいから仕事に就く
0986デフォルトの名無しさん
2012/12/28(金) 09:52:47.51まずOSを創ります → 終了
0987デフォルトの名無しさん
2012/12/28(金) 10:35:15.370988デフォルトの名無しさん
2012/12/28(金) 11:29:19.560989デフォルトの名無しさん
2012/12/28(金) 13:27:11.770990979
2012/12/29(土) 04:06:22.83strcpyする時は目的stringの末尾ですよね。
>>982 速度だけ優先ならそうですね。libであることを考慮すると速度・サイズ両面で
納得のゆく落とし所、ということで979にしました。 同サイズで速度ちょっと改善版:
strcat_: ; char *strcat(char *s, const char *t) {
push H ; 第1引数を保存
xra A
cmp M
inx H
jnz $-2 ; 末尾を探す
dcx H ; 末尾アドレスに戻す
call strcpy_ ; その位置にcopy
pop H ; 第1引数を復元(HL=返却値)
ret
徹底するなら速度版とサイズ版2種のlibを用意するのがイイですね。
0991979
2012/12/29(土) 04:13:24.07速度・サイズ両面で充分練られた物だろう」 と思いこんでいたのが違った、という話。
乗除算のルーチンなんかはきっちりコンパクトでしたけどね。
stringがこんだけルーズだと、printf系なんか読んだら憤死するかも(^o^)
0992デフォルトの名無しさん
2012/12/29(土) 05:53:01.810993デフォルトの名無しさん
2012/12/29(土) 05:53:36.750994デフォルトの名無しさん
2012/12/29(土) 08:01:12.510995デフォルトの名無しさん
2012/12/29(土) 08:04:54.76http://toro.2ch.net/test/read.cgi/tech/1356735624/
0996デフォルトの名無しさん
2012/12/29(土) 08:38:16.290997デフォルトの名無しさん
2012/12/29(土) 09:16:36.240998デフォルトの名無しさん
2012/12/29(土) 09:17:11.080999デフォルトの名無しさん
2012/12/29(土) 09:21:04.331000デフォルトの名無しさん
2012/12/29(土) 09:21:32.9310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。