アセンブラ… (0w0)ウェーイ
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2005/05/04(水) 15:32:49【前スレ】
アセンブラ… (´・∀・`)ヘー
http://pc8.2ch.net/test/read.cgi/tech/1101390110
0002デフォルトの名無しさん
2005/05/04(水) 15:33:40アセンブラ… (°Д°)ハァ?
http://pc5.2ch.net/test/read.cgi/tech/1093519463/
アセンブラ… (゚д゚)ウマー
http://pc2.2ch.net/test/read.cgi/tech/1060928704/
アセンブラヽ(`Д´)ノモルァ
http://pc2.2ch.net/tech/kako/1040/10402/1040297337.html
アセンブラヽ(`Д´)ノモルァ
http://pc3.2ch.net/tech/kako/1016/10169/1016991911.html
アセンブラ… (・∀・)イイ!
http://pc.2ch.net/tech/kako/1002/10022/1002267809.html
アセンブラ… (*´д`*)アハァ…
http://pc5.2ch.net/test/read.cgi/tech/1076157613/
アセンブラ… (;´Д`) ハァハァ
http://pc5.2ch.net/test/read.cgi/tech/1087897801/
0003デフォルトの名無しさん
2005/05/04(水) 15:34:150004デフォルトの名無しさん
2005/05/04(水) 15:34:40はじめて読む8086―16ビット・コンピュータをやさしく語る
http://www.amazon.co.jp/exec/obidos/ASIN/4871482456/
Computer Organization and Design Second Edition : The Hardware/Software Interface
http://www.amazon.com/exec/obidos/tg/detail/-/1558604286/
Computer Architecture: A Quantitative Approach
http://www.amazon.com/exec/obidos/tg/detail/-/1558605967/
VAX Assembly Language
http://www.amazon.com/exec/obidos/tg/browse/-/3954/
0005デフォルトの名無しさん
2005/05/04(水) 15:37:45ttp://www7.plala.or.jp/keny01/asm/win32/
0006デフォルトの名無しさん
2005/05/04(水) 15:50:58Digital Travesia
http://hp.vector.co.jp/authors/VA028184/
●関連書籍
はじめて読む8086―16ビット・コンピュータをやさしく語る
http://www.amazon.co.jp/exec/obidos/ASIN/4871482456/
Computer Organization and Design Second Edition : The Hardware/Software Interface
http://www.amazon.com/exec/obidos/tg/detail/-/1558604286/
Computer Architecture: A Quantitative Approach
http://www.amazon.com/exec/obidos/tg/detail/-/1558605967/
VAX Assembly Language
http://www.amazon.com/exec/obidos/tg/browse/-/3954/
●警告
プログラマからもゲーム解析者からもクラッカーからもクズ扱いの要注意な本。
「いまどきのアセンブラプログラミング」
http://www.amazon.co.jp/exec/obidos/tg/detail/-/books/4839912025/customer-reviews/ref=cm_cr_dp_2_1/249-5397889-8897164
「いまどきのアセンブラの教科書」
http://www.amazon.co.jp/exec/obidos/ASIN/4839917183/qid=1115189330/sr=1-1/ref=sr_1_10_1/250-7109447-1688239
0007デフォルトの名無しさん
2005/05/04(水) 16:42:49乙。
ホントにこのスレタイで立てたんだな…。
0008デフォルトの名無しさん
2005/05/04(水) 17:35:31アセンブラヽ(`Д´)ノモルァ
アセンブラヽ(`Д´)ノモルァ
アセンブラヽ(`Д´)ノモルァ
アセンブラヽ(`Д´)ノモルァ
アセンブラヽ(`Д´)ノモルァ
アセンブラヽ(`Д´)ノモルァ
アセンブラヽ(`Д´)ノモルァ
アセンブラヽ(`Д´)ノモルァ
アセンブラヽ(`Д´)ノモルァ
ヽ(`Д´)ノモルァ
0009デフォルトの名無しさん
2005/05/04(水) 17:46:57ブレイクについて教えてもらえませんか。
ゲーム解析をしていますが
当該パラメータ格納アドレスを特定し実際に減算イベントを発生させて
ブレイクさせてログを採るところまではできました
一般的にはブレイクしたときのログに載ってるアドレスのどれか近辺が、
実際の減算ルーチンになる可能性が高いのでしょうか。
0010デフォルトの名無しさん
2005/05/04(水) 18:03:36ttp://www.nbk.gr.jp/
0011デフォルトの名無しさん
2005/05/04(水) 18:06:14「ブレイッ ブレイッ」
「1,2」
「ののののの」
0012デフォルトの名無しさん
2005/05/04(水) 18:28:24アセンブラのピの字も知らなかった漏れがここまで理解できるようになったのは
ゲーム解析のおかげ。
0013デフォルトの名無しさん
2005/05/04(水) 20:00:06お前らアセンブラでプログラムを書いているのかと小一時間。
0014デフォルトの名無しさん
2005/05/04(水) 20:12:38吼えてぬる
0015デフォルトの名無しさん
2005/05/04(水) 20:13:530016デフォルトの名無しさん
2005/05/04(水) 20:43:05mov ah,09
mov dx,msg
int 21
int 20
:msg
db "ガッ$"
0017184
2005/05/04(水) 20:49:200018デフォルトの名無しさん
2005/05/04(水) 20:58:11何 か が 違 う
0019デフォルトの名無しさん
2005/05/04(水) 21:00:38ネタにマジレスして悪いんだが、
突っ込みどころ満載のソースだなw
0021デフォルトの名無しさん
2005/05/04(水) 21:45:250022デフォルトの名無しさん
2005/05/04(水) 22:07:490023デフォルトの名無しさん
2005/05/04(水) 22:39:04覚えるにいい方法ないですか。
0024デフォルトの名無しさん
2005/05/04(水) 22:45:330025デフォルトの名無しさん
2005/05/04(水) 23:01:160026デフォルトの名無しさん
2005/05/04(水) 23:02:360027デフォルトの名無しさん
2005/05/04(水) 23:48:01「ウホ ウホホホホ」
おやおや
ゴン太くんは今日も元気ですね
0028デフォルトの名無しさん
2005/05/05(木) 00:20:06x86命令の所要クロック計測スレ
http://pc8.2ch.net/test/read.cgi/tech/1103609337/l50
0029デフォルトの名無しさん
2005/05/05(木) 00:29:580030デフォルトの名無しさん
2005/05/05(木) 02:48:01_DriverEntry:
xor eax,eax
mov [eax],edx
ret
0031デフォルトの名無しさん
2005/05/05(木) 03:41:33ガッ
0032デフォルトの名無しさん
2005/05/05(木) 05:49:54CPUによっちゃ、割り込みベクタがあったりするしな。
0033デフォルトの名無しさん
2005/05/05(木) 06:13:46ぬぽる
0034デフォルトの名無しさん
2005/05/05(木) 08:59:15何阿呆言ってるの?
C言語でも必要があったら0番地に書かなきゃならないんだけど。
つーか、環境と言語の区別ができませんか?
0035デフォルトの名無しさん
2005/05/05(木) 14:14:46カッ゙
0036デフォルトの名無しさん
2005/05/05(木) 15:05:100037デフォルトの名無しさん
2005/05/05(木) 15:06:23くれ
0038デフォルトの名無しさん
2005/05/05(木) 20:08:080039デフォルトの名無しさん
2005/05/05(木) 21:11:420040デフォルトの名無しさん
2005/05/05(木) 21:13:380041デフォルトの名無しさん
2005/05/06(金) 00:55:29RadASM+MASMな感じでやっているのですが
フォントを MS Sans serifからMSゴシックとかに変えてしまうと
ダイアログの大きさとかボタンの大きさが変わってしまって困っています。
dialog box base unit とかが関係しているっぽいのですが
RadASMのリソースエディタというかプレビューする機能を
改造するまでにはいたらず。だれかボスケテ。
全部英語で作ってイメージ貼り付けたボタンとかで逃げようかしらー
0042デフォルトの名無しさん
2005/05/06(金) 03:10:52MSDNにも見つかりませんでした
本当にフリーなんですか
0043デフォルトの名無しさん
2005/05/06(金) 03:14:44とのヘルプがあったのですが
脳天から落とされそうで怖いのです
どうしたらいいですか。
0044デフォルトの名無しさん
2005/05/06(金) 03:56:25http://www.masm32.com/
0045デフォルトの名無しさん
2005/05/06(金) 04:56:35>DDTの申し込み
>脳天から落とされそうで
ワラタ
0046デフォルトの名無しさん
2005/05/06(金) 07:37:520047デフォルトの名無しさん
2005/05/06(金) 09:13:44俺はMSDNでダウンロードしたぞ。
0048デフォルトの名無しさん
2005/05/06(金) 14:36:58Visual C++ 6.0 Processor Pack (vcpp.exe, vcpp5.exe)に含まれている。
ただで落とせるが、ライセンスに関しては自分で判断せよ。
MASMの最新版はVS.NET 2003に付属の7.10.3077。
0049デフォルトの名無しさん
2005/05/06(金) 23:39:23これ使ってます。
version8.2とかなってますがとりあえず動いた。
RadASMでサンプルが動いて楽しいわー
0050デフォルトの名無しさん
2005/05/07(土) 02:12:30NASM使えよ。
0051デフォルトの名無しさん
2005/05/07(土) 02:25:350052デフォルトの名無しさん
2005/05/07(土) 02:41:440053デフォルトの名無しさん
2005/05/07(土) 02:51:590054デフォルトの名無しさん
2005/05/07(土) 02:53:01オープンソースマンセー!!!
0055デフォルトの名無しさん
2005/05/07(土) 03:04:030056デフォルトの名無しさん
2005/05/07(土) 03:07:08フルスクラッチでgasは俺にはムリポ
005756
2005/05/07(土) 03:09:22何か日本語が変だ
まぁ、何にしろ俺にはムリポ
0058デフォルトの名無しさん
2005/05/07(土) 03:17:15gas究めれば、もはや敵無しなのに...
俺は最初はTASMだったが、
TASM → NASM → gas
に移った。
0059デフォルトの名無しさん
2005/05/07(土) 03:35:57俺もgasで書けそうな気はするが。
0060デフォルトの名無しさん
2005/05/07(土) 05:07:130061デフォルトの名無しさん
2005/05/07(土) 05:09:010062デフォルトの名無しさん
2005/05/07(土) 05:50:23( ´∀`) GASを出すのに理屈は要らねえんだよ
/, つ
(_(_, )
しし'
0063デフォルトの名無しさん
2005/05/07(土) 06:00:450064デフォルトの名無しさん
2005/05/07(土) 06:02:290066デフォルトの名無しさん
2005/05/07(土) 06:47:000067デフォルトの名無しさん
2005/05/07(土) 08:00:000068デフォルトの名無しさん
2005/05/07(土) 10:45:05ソースを例にとってソースを語ってみよう。
ソースを買ってきた。
開けた。オープンソースである。
使われないでいると、当然腐ってしまう。
オープンソースは腐るのが早い。
使われているならば腐る前に腹に入るが、
そのうちどんどんなくなってくる。ネタの枯渇である。
このように、ソースとソースの間には密接な関係があると言えるだろう。
0069デフォルトの名無しさん
2005/05/07(土) 22:18:130070デフォルトの名無しさん
2005/05/07(土) 22:27:05つ ttp://www.ctyme.com/rbrown.htm
0071デフォルトの名無しさん
2005/05/07(土) 23:58:050072デフォルトの名無しさん
2005/05/08(日) 00:05:19つ ttp://www.datasource.de/programmierung/tab08_biosint10h.html
0073デフォルトの名無しさん
2005/05/08(日) 07:45:38つ ttp://www.excite.co.jp/world/english/web/body/?wb_url=http%3A%2F%2Fhp.vector.co.jp%2Fauthors%2FVA003720%2Flpproj%2Fint10h%2Fi101301.htm&wb_submit=%83E%83F%83u%83y%81%5B%83W%96%7C%96%F3&wb_lp=JAEN&wb_dis=2
0075デフォルトの名無しさん
2005/05/10(火) 20:36:480076デフォルトの名無しさん
2005/05/10(火) 20:41:050077デフォルトの名無しさん
2005/05/10(火) 20:43:11http://www.amazon.co.jp/exec/obidos/ASIN/4756144667
『プログラミングの力を生み出す本―インテルCPUのGNUユーザへ』も良いらしい
http://www.amazon.co.jp/exec/obidos/ASIN/4274132072
0079デフォルトの名無しさん
2005/05/11(水) 23:29:05借りとけ。
0080デフォルトの名無しさん
2005/05/12(木) 07:43:20誰も反応してくれなかったよ…
0081デフォルトの名無しさん
2005/05/12(木) 08:09:50nop
0082デフォルトの名無しさん
2005/05/12(木) 11:55:090083デフォルトの名無しさん
2005/05/12(木) 12:20:140084デフォルトの名無しさん
2005/05/12(木) 16:05:440085デフォルトの名無しさん
2005/05/14(土) 01:51:510086デフォルトの名無しさん
2005/05/14(土) 02:41:59MIPS神
0087デフォルトの名無しさん
2005/05/14(土) 03:05:490088デフォルトの名無しさん
2005/05/15(日) 03:29:510089デフォルトの名無しさん
2005/05/15(日) 04:21:030090デフォルトの名無しさん
2005/05/15(日) 11:19:01ウホ、ウ(ry
0091デフォルトの名無しさん
2005/05/15(日) 11:38:52xchg ax,regもnopも同じ3clockで区別がつかん
486ではnopは1clockに下がったのでnop専用回路があるんだろう
0092デフォルトの名無しさん
2005/05/15(日) 13:53:14どちらかというと、axレジスタ同士の交換のコードをnopに割り当てたと言うべきだね。
0093デフォルトの名無しさん
2005/05/15(日) 14:39:18じゃないCPUは許せん。
0094デフォルトの名無しさん
2005/05/15(日) 14:52:52UVErasableROMを使っていた頃は心底そう思った。
#そして、0x66番地に0xc9を書き込むと。
0095デフォルトの名無しさん
2005/05/15(日) 16:30:05Sun が出している x86 と SPARC のアセンブラマニュアル見つけた
SysV 直系だけあって AT&T 記法ですた
http://docs.sun.com/app/docs/coll/45.20
0096デフォルトの名無しさん
2005/05/15(日) 21:44:330097デフォルトの名無しさん
2005/05/15(日) 21:53:290098デフォルトの名無しさん
2005/05/15(日) 23:22:10ねこねこねこねこねこねこたーんー
ねこねこねこねこねこねこたーんー
ねこねこねこねこねこねこたーんー
ねーこちゃーねーこーちゃー
にゃーねーこーちゃーねーこーたーんー
ねこねこねこねこねこねこねーこー
ねこねこねこねこねこねこねーこー
ねこねこねこねこねこねこねーこー
テンポ180くらいで
血管ブチ切れるまで
0099デフォルトの名無しさん
2005/05/16(月) 07:40:55sll $zero, $zero, 0
0100デフォルトの名無しさん
2005/05/16(月) 11:29:28だよね〜。
ROM上ではffになるように、データバスの入出力にインバータ入れてたりした?
0101デフォルトの名無しさん
2005/05/16(月) 12:55:160102デフォルトの名無しさん
2005/05/16(月) 15:31:110103デフォルトの名無しさん
2005/05/16(月) 21:58:41ワロタ
0104デフォルトの名無しさん
2005/05/17(火) 00:28:550105デフォルトの名無しさん
2005/05/17(火) 09:50:340106デフォルトの名無しさん
2005/05/18(水) 16:24:58意味が無いコード出すなよ。
0107デフォルトの名無しさん
2005/05/18(水) 21:49:350108デフォルトの名無しさん
2005/05/18(水) 22:05:18昔のPC板に行った方がよくね?
0109デフォルトの名無しさん
2005/05/18(水) 23:28:020110デフォルトの名無しさん
2005/05/19(木) 00:16:11アドレッシングモードが貧弱過ぎて、泣けてくる。
同じ8ビットでも6502のようにアドレッシングモードが豊富だと、ニヤリと
できるのだが。
01118080(8085)
2005/05/19(木) 02:23:040112デフォルトの名無しさん
2005/05/19(木) 02:29:38ほらよ。
http://www.google.co.jp/search?num=50&lr=lang_ja&ie=sjis&oe=sjis&q=アドレッシングモード
0113111
2005/05/19(木) 02:32:19もう寝るわ。
0114デフォルトの名無しさん
2005/05/20(金) 12:06:25x86 CPU で DF の影響を受けるのは lods, cmps, scas, stos, movs 以外にもありますでしょうか?
0115デフォルトの名無しさん
2005/05/20(金) 13:22:39他にもある
0116デフォルトの名無しさん
2005/05/21(土) 00:36:42pushf とか smsw は使った事ありませんでした。もっと勉強しなくては。
0117デフォルトの名無しさん
2005/05/21(土) 13:46:130118デフォルトの名無しさん
2005/05/22(日) 20:52:43先生!意味がわかりません。
もっと、詳しく!
0119デフォルトの名無しさん
2005/05/25(水) 22:40:44メニューを強制的にEnableにするには
引数には何を渡したらいいんですかね。
引数のレジスタもわからない。
アセンブラ orz
0120デフォルトの名無しさん
2005/05/25(水) 22:57:00stdcall関数は引数を渡すのにレジスタは使わずスタックにpushしていく。
push 0
push メニューID
push メニューハンドル
0121デフォルトの名無しさん
2005/05/25(水) 23:01:36ありがとう。
もう一回がんばります!
0122デフォルトの名無しさん
2005/05/26(木) 00:01:44おかげさまで、Enableになりましたが、
ターゲットの項目のうち大部分はクリックしても
その後のウインドウが開きません。もともとリソースの無いものを
呼び出したのかなぁ?
0123デフォルトの名無しさん
2005/05/26(木) 00:15:43ストリングI/O命令がさっぱり速くないのは、そういうもんなんでしょか?
asm-i386/io.hのinsbマクロを使って、0x0100番地台から読み込んでるんですが、
inbをforループで回したときと速度が変わりません。
objdumpで見ると、ちゃんと「rep insb」なコードになってるんですけどねぇ。
0124デフォルトの名無しさん
2005/05/26(木) 00:25:10intelのPDFみてみ。IN/OUT命令そのものが多量のレイテンシを伴う
ので、ストリング命令使ってもほとんど旨味がない。
0125デフォルトの名無しさん
2005/05/26(木) 00:59:28即答ありがとう。
そうだよなぁ、単発でマイクロ秒単位かかる命令だから、ループの判定なんて元々
埋もれちゃってるよなぁ。そんな魔法みたいなウマイ話は無いよね。
薄々は気づいてたんだけど、やっぱ微塵も速くならないとなると不安が拭えなくて。
すっきりしました。
0126デフォルトの名無しさん
2005/05/26(木) 01:28:110127デフォルトの名無しさん
2005/05/26(木) 09:02:55それでも、386より前のDOS MODE下でのIN/OUTは結構早かったんだけどね。
プロテクトモードに移行してから鈍亀みたいに遅くなった。
0128デフォルトの名無しさん
2005/05/26(木) 16:05:40大人(プロテクトモード)には子供(リアルモード)にはない事情があるのですよ。
特に入出力にはね。
0129デフォルトの名無しさん
2005/05/26(木) 18:19:26(;´Д`)ハァハァ
ウッ
0130123
2005/05/26(木) 23:05:24単発の異様な遅さを回避できるなにかを仕掛けてくれてるんじゃないかって。
実は某組込ボードの取説に「insbを使えば高速」とうたってたのに、やってみたらまったく変わらなくて。
0131デフォルトの名無しさん
2005/05/26(木) 23:28:54Cで書いてコンパイラがどんなソースを出力してるか観察しる。
身近な成功例を真似するのは基本だぞ。
>>125
>>127
昔はメモリマップドIOのほうが速いと言われてたけど、今はどうなのかなぁ。
メモリの当該エリアがキャッシュ禁止だと、かなり遅くなるわけで・・・。
repを使っても毎回特権モードのチェックしてるのかなぁ。
それとも、バーストが効かないからダメダメなのかなぁ。
0132デフォルトの名無しさん
2005/05/30(月) 22:25:04それって基本的にswitchの塊になるんですよね。
そういうアプローチじゃなくて自己改変コードによって
動的に実行コードを作っていけたら効率が良いように
思えるんですがどうでしょう?
自己改変コードはキャッシュ書き換えのペナルティ大きいんで
逆効果ですかね?
0133デフォルトの名無しさん
2005/05/30(月) 22:44:16先ずは普通に作ってパフォーマンスを見極めてからにすれば?
0134デフォルトの名無しさん
2005/05/30(月) 23:03:53コンパイラの最適化と同じ
0135デフォルトの名無しさん
2005/06/01(水) 03:21:270136デフォルトの名無しさん
2005/06/01(水) 13:48:51じゃあどういうやつ?
俺の頭では、あとは関数ポインタくらいしか
思い浮かばないんだが・・。これは遅そいぐらいでメリットなさそう。
0137デフォルトの名無しさん
2005/06/01(水) 14:00:00コードテーブル+関数ポインタ。
0138デフォルトの名無しさん
2005/06/01(水) 19:34:57自動的にジャンプテーブルにしてくれる、
という話を昔見たのだけど・・・
0139デフォルトの名無しさん
2005/06/01(水) 20:21:09自分の環境だと関数ポインタテーブルよりswitchの方が無駄なエピローグプロローグコードが生成されずに良好な場合が多かったので
長いswitchブロックを見ると自分のコードながらうんざりするが
0140デフォルトの名無しさん
2005/06/01(水) 20:25:41うっせハゲ
0141デフォルトの名無しさん
2005/06/01(水) 20:40:03メリット: 分岐予測可能
デメリット: コードが見難い
ジャンプテーブル
メリット: コードが見易い
デメリット: 分岐予測不可能
0142デフォルトの名無しさん
2005/06/01(水) 21:09:140143デフォルトの名無しさん
2005/06/02(木) 01:51:09それぞれの処理をする関数を呼ぶだけにすりゃいいじゃん。
マクロで、
ENTRY(0x00, NOP)
みたいなのを、
case 0x00: DoInstructionNOP(&context) ; break ;
みたいに展開してやりゃ、見やすくなるでしょ。
0144デフォルトの名無しさん
2005/06/02(木) 02:03:11ジャンプテーブルにしてくれるよ。
0145デフォルトの名無しさん
2005/06/02(木) 02:05:15フォーマットしちゃうんだって。
0146デフォルトの名無しさん
2005/06/02(木) 02:37:32実際の命令の出現頻度をある程度(種類別に)調べておいて
頻度の高いもの数種類をifで先に処理し
残りをswitchにするかも。
その方が分岐予測的に良さそうな気がするから。
まあifで処理するかswitchで処理するかの判定に
ビットテーブル位は使うかも知れんけど。
0147デフォルトの名無しさん
2005/06/02(木) 07:01:140148デフォルトの名無しさん
2005/06/02(木) 11:38:32あと、コンパイラが根を上げるアセンブラの話もここですね。
0149デフォルトの名無しさん
2005/06/02(木) 14:15:18インラインコンパイラも含めていいことになってるから
ギリセーフ。
0150デフォルトの名無しさん
2005/06/02(木) 20:45:010151デフォルトの名無しさん
2005/06/02(木) 21:29:510152デフォルトの名無しさん
2005/06/02(木) 21:30:24ああ、含めていいんだ… インラインコンパイラ
って、なんだ ?
0153デフォルトの名無しさん
2005/06/02(木) 22:22:250154デフォルトの名無しさん
2005/06/03(金) 03:06:25クロックジェネレーターって時計を作れるほどそんなに正確だったのかな?
0155デフォルトの名無しさん
2005/06/03(金) 04:43:270156デフォルトの名無しさん
2005/06/03(金) 07:51:54日常の時計が必要な場合はRTCデバイスを装備しないとダメ。
0157デフォルトの名無しさん
2005/06/03(金) 15:36:54ですよね 水晶とか必要ですよね
0158デフォルトの名無しさん
2005/06/03(金) 15:52:31時計用の水晶が使われているのですが・・・。
その水晶の品質もあるけど、
発振回路の出来や温度などにもよるわけで・・・。
0159デフォルトの名無しさん
2005/06/03(金) 19:44:57ていうか外界から影響を受けやすいようなもので作っても意味がない
0160デフォルトの名無しさん
2005/06/03(金) 20:15:48起動のたびに現日時を入力させられた
0161デフォルトの名無しさん
2005/06/03(金) 21:00:570162デフォルトの名無しさん
2005/06/03(金) 22:01:420163デフォルトの名無しさん
2005/06/04(土) 00:41:57正確な一日を刻むのは日時計しか(ry
0164test
2005/06/04(土) 18:11:420165デフォルトの名無しさん
2005/06/06(月) 09:04:370166デフォルトの名無しさん
2005/06/06(月) 12:40:580167デフォルトの名無しさん
2005/06/06(月) 12:58:06完璧だろ?
0168デフォルトの名無しさん
2005/06/06(月) 21:05:52デスマの時は長そうだな。
0169デフォルトの名無しさん
2005/06/06(月) 22:16:55次のマイメロが始まるまで
これを元に一日を算出。
0170デフォルトの名無しさん
2005/06/07(火) 18:05:43Good sounds.
0171デフォルトの名無しさん
2005/06/07(火) 22:17:41うまく排他がかからない。(Linux for SMP & pthread)
ひょっとして、システムで用意されてる排他処理関数を使用せずに
ユーザ空間で排他処理作成することって不可能?
0172デフォルトの名無しさん
2005/06/07(火) 22:36:27> うまく排他がかからない。
うまく排他がかかる状況は一つしかないんだけど、
うまく排他がかからない状況は星の数ほどあるわけで…。
0173デフォルトの名無しさん
2005/06/07(火) 22:43:400174デフォルトの名無しさん
2005/06/07(火) 23:02:55排他には歯に詰めてご使用くださいってあるし、間違いないだろう。
0175デフォルトの名無しさん
2005/06/07(火) 23:04:22lock使え
0176デフォルトの名無しさん
2005/06/07(火) 23:05:52lock bt でおk
0177171
2005/06/07(火) 23:44:02不可分処理中にわざと sleep などでコンテキストスイッチを発生させてるのですけど
そういう処理はやってはいけないんですか?
(もし、不可分処理中に別スレッド(排他権限を獲得してない)に移っても排他変数を dec できないはず)
0178デフォルトの名無しさん
2005/06/07(火) 23:54:510179171
2005/06/08(水) 03:54:54>>178
そんな次元でなかったです。単にコード間違ってただけでした。 orz
さて (´・ω・`) 寝るとするか。
0180デフォルトの名無しさん
2005/06/08(水) 11:22:410181デフォルトの名無しさん
2005/06/08(水) 15:26:070182デフォルトの名無しさん
2005/06/08(水) 17:12:300183デフォルトの名無しさん
2005/06/08(水) 20:14:510184171
2005/06/08(水) 20:22:110185デフォルトの名無しさん
2005/06/08(水) 21:43:480186デフォルトの名無しさん
2005/06/08(水) 22:17:020187デフォルトの名無しさん
2005/06/08(水) 22:18:28消えろボケが。
0188デフォルトの名無しさん
2005/06/08(水) 22:21:53単に感覚をマヒさせてるだけで、症状はそのまま進行してるからな。
0189デフォルトの名無しさん
2005/06/09(木) 21:01:22教えてください。
提出が明日で切羽詰ってます。
考え方はどうでもいいのでソースをおながいします。
0190デフォルトの名無しさん
2005/06/09(木) 21:13:17call _qsort
0192デフォルトの名無しさん
2005/06/09(木) 21:26:13正露丸! 正露丸をお持ちの方はいらっしゃいませんか!
>>189 さんが困っています!
0193189
2005/06/09(木) 21:29:170194デフォルトの名無しさん
2005/06/09(木) 21:32:150195189
2005/06/09(木) 21:34:31切羽詰ってるんです(汗)
何とかしてください
おながいしますw
0196デフォルトの名無しさん
2005/06/09(木) 21:37:53つ・・
0198デフォルトの名無しさん
2005/06/09(木) 21:50:48時代の変化を感じさせる今日この頃です。
0199デフォルトの名無しさん
2005/06/09(木) 21:55:46Cで書いてコンパイラに出力させたら?
0200デフォルトの名無しさん
2005/06/09(木) 21:59:02他の言語(含自然言語)でクイックソートを書いてそれを脳内コンパイルすればいい。
0201釣りじゃないならCのソースでも見ながら自分で勝手に書け
2005/06/09(木) 22:02:38漏れは醤油がいいな。
0203デフォルトの名無しさん
2005/06/09(木) 22:14:28プロジェクトの設定。
それ以上は該当スレへ。
0204189
2005/06/09(木) 22:43:06明日おこられまつww
0205デフォルトの名無しさん
2005/06/12(日) 23:26:270206デフォルトの名無しさん
2005/06/12(日) 23:52:340207デフォルトの名無しさん
2005/06/13(月) 00:08:21どうすればいいのでしょうか?
.686/.MMX/.XMMは指定しています。
0208デフォルトの名無しさん
2005/06/13(月) 05:53:20DB
0209デフォルトの名無しさん
2005/06/13(月) 06:36:12.MMXが余計です。
0210デフォルトの名無しさん
2005/06/13(月) 07:25:180212デフォルトの名無しさん
2005/06/13(月) 13:27:570213171
2005/06/13(月) 13:36:15pause 命令は有効に働くんだろうか? nop 使用するよりもお徳なのかわからん。
AMD マニュアルにも載ってないし...うーむ、謎だ。
0214デフォルトの名無しさん
2005/06/16(木) 22:30:14前2冊は『悪書』『詐欺』『デタラメ』など色々言われているし、
いまさら騙される人はいるのかな?
こんな本買ったら1年は後悔し続けそう・・・
『アセンブラ読本 for Game ゼロからはじめるゲーム改造』
●橋本和明, leye (著) 発売日:2005/06/20
http://d.hatena.ne.jp/yaneurao/20050617
前2冊のレビュー
『いまどきのアセンブラの教科書』
http://d.hatena.ne.jp/yaneurao/20050602
http://www.amazon.co.jp/exec/obidos/ASIN/4839917183/250-2477672-5947432
『いまどきのアセンブラプログラミング』
http://www.amazon.co.jp/exec/obidos/ASIN/4839912025/250-2477672-5947432
0215エルデス・モルデル
2005/06/16(木) 22:44:49http://www.mysys.org/eagle0wl/etc/diary/diary.php?no=200502#20050208
http://www.mysys.org/eagle0wl/etc/diary/diary.php
この意見は参考になりましたか? はい/いいえ
0216デフォルトの名無しさん
2005/06/17(金) 00:12:333冊も出てるってことは、売れてるってことだな
グチるより、儲けたモン勝ちか、、、
0217デフォルトの名無しさん
2005/06/17(金) 18:37:081冊目は引っかかった初心者が結構いたけど、2冊目は発売直後に内容のひどさが話題になったから、
あんまり売れてないよ。3冊目は2冊目と同じ内容で他社から出して売ろうという魂胆みたいだね。
そういえば、2冊目は、『なぜか』yahooのセールスランキング集計書店では異常なまでに売れていたらしい。
0218デフォルトの名無しさん
2005/06/17(金) 20:46:42良い本で話題になる本か、
悪い本で話題になる本だ。
腐ってる本でも、腐り度合いによっては話題となり売れるのさ
0219デフォルトの名無しさん
2005/06/17(金) 21:15:48キーボードから整数を10個読み取って配列に格納する方法を教えてください。
宜しく御願いします。
0220デフォルトの名無しさん
2005/06/17(金) 21:48:07それは言えてる。名前は言えないが、某○比○とか。
0221デフォルトの名無しさん
2005/06/18(土) 03:03:010222デフォルトの名無しさん
2005/06/18(土) 03:49:490223219
2005/06/18(土) 06:24:100224デフォルトの名無しさん
2005/06/18(土) 06:59:23厳しいな
0225デフォルトの名無しさん
2005/06/18(土) 09:12:26アマゾンのレビューを見れば分かると思うが、間違いが多すぎて全然使えない。
そもそも、クラッカーやゲームの解析やってる人達からゴミ扱いされている本だよ。
「クラッカー・プログラム大全」とか「解析魔法少女美咲ちゃん」とかの、
まともな本を買った方が良い。他には「はじめて読む8086」とか。
それと、「Digital Travesia」という有名解析系サイトも要チェックかと。
0226デフォルトの名無しさん
2005/06/18(土) 16:42:210227デフォルトの名無しさん
2005/06/18(土) 19:03:03昔、beroって人が訳してた。
エミュレータ関連の資料も書いてたことがある人。
http://www.bekkoame.ne.jp/~bero/
今はこのサイトはもうない。
エミュレータの資料の方のサイトはあるんだが…。
いろんな日本語訳があって便利だったのに。
で、nasmの日本語ドキュメントは保存してたからアプロダに上げとく。
http://ccfa.info/cgi-bin/up/src/up12589.zip
欲しければ早めに取ったほうがいいぞ。
0228デフォルトの名無しさん
2005/06/18(土) 19:05:42うpしてくれてありがとう。
0229227
2005/06/18(土) 19:06:18が「小妖精オブジェクト・フォーマット」
になってるような中途半端な段階のもの。
探せばどっかにもっとマシなものがありそうな気はする。
0230デフォルトの名無しさん
2005/06/18(土) 19:06:29Thx!
俺226じゃないけど。
0231226
2005/06/18(土) 19:12:380232デフォルトの名無しさん
2005/06/18(土) 19:53:230233227
2005/06/18(土) 21:29:35いや、少しづつ手を加えていた。
だけどこれに関してはまだほとんど手を加えてない段階だったと思う。
完成まで至ったものは少なからずいい品質のものがあった。
0234デフォルトの名無しさん
2005/06/19(日) 00:12:09英と米でスラングも違うから書いた人の出身地まで考慮して
訳を進めるなんて芸当はできない
0235デフォルトの名無しさん
2005/06/19(日) 00:15:140236デフォルトの名無しさん
2005/06/19(日) 01:11:26次スレが立つ頃には寒くなってるぞ
0237デフォルトの名無しさん
2005/06/19(日) 02:59:44アイアイサ
0238デフォルトの名無しさん
2005/06/21(火) 22:48:04アドレッシングモードが超面倒臭い
0239デフォルトの名無しさん
2005/06/22(水) 06:00:33頑張って最適なコードを吐くように作らなきゃ。
0240デフォルトの名無しさん
2005/07/05(火) 16:41:140241デフォルトの名無しさん
2005/07/05(火) 17:20:04どうせなら、Opteron(AMD64)専用のアプリとして PAUSE なんか使わずに NOP 使っちゃえ!(w
0242デフォルトの名無しさん
2005/07/05(火) 18:03:41どのCPU製品がCPUIDの0x80000002〜0x80000004に対応しているのかの一
覧表ってないもんでしょうか。
0243デフォルトの名無しさん
2005/07/07(木) 04:40:43何かいい入門書orページありませんか?
ttp://www.nk.rim.or.jp/~jun/lxasm/asm00.html
↑は初心者向きとは思えません。。。
hello,worldをネットを見ながら打ち込んで動作させたのですが
命令各所が意味不明です
javaなら実用レベルなんですが。。。
dosのアセンブラ入門ページは見かけるのですがlinuxの物となると
見つかりません、お願いします。
0244デフォルトの名無しさん
2005/07/07(木) 05:05:31(できればまだ絶版になってない本で)
0245デフォルトの名無しさん
2005/07/07(木) 06:49:57できるZ80
0246デフォルトの名無しさん
2005/07/07(木) 10:24:22Z80 マシン語秘伝の書
ttp://members.aol.com/toruhidaka/hidenz8.html
ttp://members.aol.com/njprog/tuhan.html
0247デフォルトの名無しさん
2005/07/07(木) 11:54:250248デフォルトの名無しさん
2005/07/07(木) 12:00:06push a
mul a, b
mov c, a
pop a
0249デフォルトの名無しさん
2005/07/07(木) 14:40:29ld r2 = [B]
mul r3 = r1,r2
st [C] = r0
0250デフォルトの名無しさん
2005/07/07(木) 15:26:55mul r2,r1 でr1=r2*r1という動作になる。3つのレジスタを同時に触るASMはあまりない。
4行目はもちろんその結果のレジスタを変数Cに入れるのだから、st [C]=r1ね。
0251249
2005/07/07(木) 15:49:370252デフォルトの名無しさん
2005/07/07(木) 16:51:07ARMとか
0253デフォルトの名無しさん
2005/07/07(木) 22:31:04_main:
mov.w r6,@-r7
mov.w r7,r6
mov.w #.LC0,r2
mov.w r2,@-r7
jsr @_printf
adds #2,r7
sub.w r2,r2
mov.w r2,r0
mov.w @r7+,r6
rts
0254デフォルトの名無しさん
2005/07/07(木) 22:59:030255デフォルトの名無しさん
2005/07/07(木) 23:04:480256デフォルトの名無しさん
2005/07/07(木) 23:05:31ですよね〜
0257デフォルトの名無しさん
2005/07/08(金) 00:49:24ttp://www.yuasa.kuis.kyoto-u.ac.jp/~nobu/study/nasm/nasm.html
0258デフォルトの名無しさん
2005/07/08(金) 02:35:31mlb nba,abs
elt trf,kgb
msn co,ltd
みたいなかんじですね?
0259デフォルトの名無しさん
2005/07/08(金) 03:13:502行目と3行目をひねったつもりだろうがつまらん。
きみはまずN88 BASICから始めたまえ。
0260デフォルトの名無しさん
2005/07/08(金) 04:09:360261デフォルトの名無しさん
2005/07/08(金) 21:53:520262デフォルトの名無しさん
2005/07/09(土) 17:44:0816or32bitの最大回数転送じゃなくて何もしないんだっけ?
確かcx(ecx)=0でloop だと、 16or32bitの最大数ループしたよなあ。
0263名無しさん@お腹いっぱい。
2005/07/09(土) 21:13:03記憶違いだろ。
「REPプレフィックスがストリング命令に指定されたとき、ECXが0だとストリング命令は実行されない」
とちゃんと書いてあったぞ?
0264デフォルトの名無しさん
2005/07/10(日) 16:10:36後半はloop命令で回したらってこと。
xor ecx,ecx
lp1:
movsb
loop lp1
0265デフォルトの名無しさん
2005/07/10(日) 20:20:19そりゃぁ、loopニモニックに到達する前にループから脱出することはできないからだね。
0266デフォルトの名無しさん
2005/07/11(月) 09:14:52pushとpopがかみあわない
0267デフォルトの名無しさん
2005/07/11(月) 15:07:34それにしても、関数を何回も呼び出したり再帰したりできるんだから
スタックというデータ構造はすごいな。
0268デフォルトの名無しさん
2005/07/11(月) 15:10:22push R1
push R2
・・・
pop R1
pop R2 ってやったらR1とR2が入れ替わって戻っちゃうよ。
0269デフォルトの名無しさん
2005/07/11(月) 15:24:040270デフォルトの名無しさん
2005/07/14(木) 16:36:59pop ax
dec ax
push ax
ret
0271デフォルトの名無しさん
2005/07/14(木) 17:24:170272デフォルトの名無しさん
2005/07/15(金) 16:36:48func:
mov 4(%esp), %eax
dec (%eax)
ret
0273デフォルトの名無しさん
2005/07/15(金) 16:43:270274デフォルトの名無しさん
2005/07/15(金) 19:29:38>>272のやつはよくわかんね
0275デフォルトの名無しさん
2005/07/15(金) 20:45:07> >>272のやつはよくわかんね
引数に変数のポインタを渡して、その内容を-1してる。
(ポインタサイズを32bitとして)
文法がAT&T形式なんで、Intel形式のsrcとdstを逆に考えればいい。
(その他のアドレッシングの書き方はGoogleさんに聞くのだ)
0276デフォルトの名無しさん
2005/07/15(金) 20:50:450277デフォルトの名無しさん
2005/07/16(土) 03:49:00で?
0278デフォルトの名無しさん
2005/07/16(土) 05:45:05INVOKE以外の命令ではみなできるみたいなんですが・・・
0279デフォルトの名無しさん
2005/07/16(土) 15:46:49http://ruffnex.oc.to/kenji/bkasm/
NASM(The Netwide Assembler)やGAS(GNU Assembler)といったアセンブラを利用して、
Windows、Linuxアプリケーションの作成からブートセクタ関連のプログラミング、
そしてネットワークを扱ったアセンブラプログラミングまで幅広い内容を解説。
本書は、C言語など各種のプログラミング経験のある方はもちろん、
プログラミング知識の浅い初心者の方にも対応できるよう、
アセンブラの基礎から具体的な解説をした、純粋なアセンブリ言語の技術解説書である。
0280デフォルトの名無しさん
2005/07/16(土) 18:19:29初心者の人は役に立たない類似本に注意しましょう。
0281デフォルトの名無しさん
2005/07/17(日) 00:11:24ttp://www.tortall.net/projects/yasm/
* AMD64 support
* NASM の文法も使用可能
* DJGPPで使われる COFF オブジェクト生成可能
* ELF32 と ELF64 オブジェクト生成可能
* 以下のプラットフォームに対応
* UNIX and compatibles (FreeBSD and Linux tested, GNU configure based autoconfiguration)
* DOS (using DJGPP)
* Windows (using Visual C++ or CygWin).
0282デフォルトの名無しさん
2005/07/17(日) 00:16:300283デフォルトの名無しさん
2005/07/17(日) 05:51:02hack & krack so on... と書かれてるのが非常に不安
何でアセンブラはクラック系の本が多いんだろうね?
「真面目なアセンブラ」キボンヌ
0284デフォルトの名無しさん
2005/07/17(日) 08:16:17目次見てもその発言か?
さすがにクラックばっかの内容じゃないだろ
それとも一行でもクラックのやり方書いてあったらアングラ本なのか
0285デフォルトの名無しさん
2005/07/17(日) 08:37:37副題にそういう文字列を入れちゃうセンスが俺の不安をかき立てるんだよ
「これは厨房向けです」と帯に書いてあったら疑って掛かるだろ、普通
0286デフォルトの名無しさん
2005/07/17(日) 08:41:24今時こんな人が居るんだね
確かに目次はマトモそうなんで、期待はしてるよ
0287デフォルトの名無しさん
2005/07/17(日) 09:37:50意図的なものだと思う。
本来区別できないものだと思うし、
無理に分離しようとするほうが不自然。
0288デフォルトの名無しさん
2005/07/17(日) 09:44:10帯などは、著者ではなく出版社でつけているだろうし。
0289デフォルトの名無しさん
2005/07/17(日) 12:24:29出版社をよくみろよな。それだけですべて説明がつくよ。
それにこの著者の前作のTCP/IPの本も
やたらハックだのクラックだの煽られてた割には
内容がちゃんとしててなかなか良かったぞ。
この本も別の出版社から出してればもっとうまい宣伝文句が使われただろうに。
0290デフォルトの名無しさん
2005/07/17(日) 12:25:010291デフォルトの名無しさん
2005/07/17(日) 13:20:59バカが「思った」ところで意味ない。
バカは黙って引っ込んでろよ。
0292デフォルトの名無しさん
2005/07/17(日) 13:54:270293デフォルトの名無しさん
2005/07/17(日) 14:01:100294デフォルトの名無しさん
2005/07/17(日) 14:31:470295デフォルトの名無しさん
2005/07/17(日) 17:07:080296デフォルトの名無しさん
2005/07/17(日) 17:13:170297デフォルトの名無しさん
2005/07/17(日) 17:47:45Krack = ソフトウェアの解析、リバースエンジニアリングといった行為
Crack = サーバへの侵入、バックドアを仕込む、といった違法な行為
Hack = コンピュータについて深い部分まで習得すること
という認識なのだが、ぶっちゃけあんまり知らない。
詳しく教えてエロイ人。
0298デフォルトの名無しさん
2005/07/17(日) 17:48:03アフォですね
0299デフォルトの名無しさん
2005/07/17(日) 17:58:43悪意ある解析・改変・侵入。K はより厨房用語なだけ。
0300デフォルトの名無しさん
2005/07/17(日) 18:05:00同じようなコードを書いてるにも関わらず、コンパイラが吐き出した関数
の方が10倍以上早いのは何ででしょう・・・。orz
というか、FPUを使う命令を一回でも使うと遅くなります。
0301デフォルトの名無しさん
2005/07/17(日) 18:13:02>本来区別できないものだと思うし、
明確な区別があるのに?
0302デフォルトの名無しさん
2005/07/17(日) 21:49:23普通にアクセスしてるコンパイラのコードの方が速い。
なぜら?
0303デフォルトの名無しさん
2005/07/17(日) 21:54:530304デフォルトの名無しさん
2005/07/17(日) 22:23:160305300
2005/07/17(日) 23:26:240306デフォルトの名無しさん
2005/07/17(日) 23:47:100307300
2005/07/18(月) 00:16:39納得いかないけど、アセンブラで書くのは諦めるしかないか。
0308デフォルトの名無しさん
2005/07/18(月) 01:23:54明確とはとてもいえないように思う。
観念的なレベルでは定義されていても、
現実の事例では判別し難い場面は多い。
0309デフォルトの名無しさん
2005/07/18(月) 02:05:22Hack と Crack がどう違うのかなんて、ちょっと調べればすぐ出て来ると思うけど。
ttp://cruel.org/freeware/hacker.html
ttp://kfn.ksp.or.jp/~gauche/Languages/Column/column10E.html
確かに境界的な事例はあるだろうけど、「多い」というのは違う。
他人のウェブサイトを勝手に書き換えるのは Hack じゃないし、
他人のサーバに勝手に侵入してデータを引き出すのは Hack じゃない。
ゲームのバイナリを弄ってチートするのも Hack じゃないし、
ソフトウェアをただで使う為にプロテクトを破るのも Hack じゃない。
これらは全て Crack.
>>279 の本がどういうスタンスかは知らないけどね。
0310デフォルトの名無しさん
2005/07/18(月) 07:35:080311デフォルトの名無しさん
2005/07/18(月) 08:27:120312デフォルトの名無しさん
2005/07/18(月) 12:16:430313デフォルトの名無しさん
2005/07/18(月) 13:19:580314デフォルトの名無しさん
2005/07/18(月) 14:15:25他人のウェブサイトを勝手に書き換えるのは Hack (少なくともHackの一種)だと思う。
そのサイトに書かれている違いをどのように捉えるかという点で君は表層しか見ていない。
「ハッカーはものをつくります。クラッカーは壊します。」
サーバーに侵入してデータを破壊するのは確かに破壊行為だろうが、
テクニックを作り出すという点では創作行為だ。
もちろん、単に既存のスクリプトを使うだけといった創作的でない行為はHackじゃないと思うよ。
0315デフォルトの名無しさん
2005/07/18(月) 14:36:38コンパイラにアセンブルリスト出力させて読んで自分で調べろ。
多分おまいの5倍くらい頭のいいコードを
コンパイラ様は出力なさっておる。
頭のいいコンパイラ様が出力なさるコードを読むことが
アセンブラ学習の近道じゃないかな。
0316デフォルトの名無しさん
2005/07/18(月) 16:48:370317デフォルトの名無しさん
2005/07/18(月) 17:17:57普通そんなもんだよ。そこであきらめるか食い下がるかだ。
はるかに上は存在する。まあガンガレ。
0318デフォルトの名無しさん
2005/07/18(月) 17:19:23メモリアクセスよりもとんでもないネックがあるから
0319デフォルトの名無しさん
2005/07/18(月) 18:03:27いや、それは君が思ってるだけだよ。ハックはもっと日常的な物だ。
これ以上はスレ違いだし、長くなりそうなので、自分で研鑽を積んで欲しい。
0320デフォルトの名無しさん
2005/07/18(月) 18:14:570321デフォルトの名無しさん
2005/07/18(月) 22:00:23という程度の謙遜を伴ったのがhack
「どうだい俺様の仕事は。このくらい朝飯前さ」
とか言い出したらハッカーとは言わない
0322デフォルトの名無しさん
2005/07/18(月) 22:51:230323デフォルトの名無しさん
2005/07/18(月) 23:36:50ロック と ロックアンドロール
メタル と デスメタル
演歌 と J-POP
こんなものは、興味のない人からみれば皆一緒だ。
ただギャンギャンエレキギターが鳴っていて、不平不満を叫んでいるだけだったり、
誰も彼も同じような声で、同じコード進行の曲を歌っているようなものだ。
0324デフォルトの名無しさん
2005/07/18(月) 23:38:21「それらは明確な違いがある」と主張するだろう。
それと同じことだ。
0325デフォルトの名無しさん
2005/07/18(月) 23:55:08まで読んだ
0326デフォルトの名無しさん
2005/07/19(火) 00:13:44ここまで盛り上がれるマ板住人に萌え。もまいら最高〜。
でもスレ違いなので、この辺りで軌道修正してくれ。
0327デフォルトの名無しさん
2005/07/19(火) 00:28:020328デフォルトの名無しさん
2005/07/19(火) 20:53:57ケロヨン retf
0329デフォルトの名無しさん
2005/07/20(水) 11:58:0210倍って、別のところに原因がある気がする。
0330デフォルトの名無しさん
2005/07/20(水) 20:19:40発売日に在庫切れってどゆことよ。
アマゾンちゃんとそろえとけよ。
買えねーじゃねーか!
0331デフォルトの名無しさん
2005/07/20(水) 20:49:27ケロヨン pop
0332デフォルトの名無しさん
2005/07/20(水) 21:32:310333デフォルトの名無しさん
2005/07/20(水) 22:08:07モグタン cpuid
0334デフォルトの名無しさん
2005/07/21(木) 01:07:01func:
movl 4(%esp) , %eax
decl (%eax)
ret
じゃだめじゃなかったっけ?
0335デフォルトの名無しさん
2005/07/21(木) 10:29:50確かに >>272 のままではだめだ。
>>334 でもいいが、以下の変更だけでもいい。
dec (%eax) → decl (%eax)
0336デフォルトの名無しさん
2005/07/21(木) 14:01:40今日が発売日だ。(都市部の大きな)本屋行ってみれば?
0337デフォルトの名無しさん
2005/07/21(木) 17:03:580338デフォルトの名無しさん
2005/07/21(木) 17:55:32今日ゲットできたよ。
ここ最近橋本の悪書ばっかりみてきたからかもしれんが、
本当にちゃんとしたアセンブラ本ですげー良かったよ。
0339デフォルトの名無しさん
2005/07/22(金) 14:06:31スタック使い切って、あぼーんでつね
こんな反応で桶?
0340デフォルトの名無しさん
2005/07/24(日) 17:39:050341デフォルトの名無しさん
2005/07/26(火) 13:40:34アセンブルできなかったよ。
qword ptr が必要みたい。
0342デフォルトの名無しさん
2005/07/26(火) 17:38:21アセンブラ初心者のボキに教えて下さい。
.cpu 300ha
.section prog1,code,locate=h'000000
p1dr .equ h'ffffc2
p1ddr .equ h'ffffc0
.section rom,code,locate=h'000100
mov.l #h'ffff00,er7
mov.b #h'ff,r0l
mov.b r0l,@p1ddr
mov.b #b'10101100,r0l
mov.b r0l,@p1dr
loop: jmp @loop
.end
mov.b #h'ff,r0l これは出力用設定データらしいのですが、
なぜ#h'ffを使うのですか?
0343デフォルトの名無しさん
2005/07/26(火) 20:06:55それはアセンブラの問題と言うよりは
CPU内蔵I/O、つまりハードウェアの問題。
電気電子板で聞いたほうがいいよ。
0344デフォルトの名無しさん
2005/07/26(火) 21:40:200345デフォルトの名無しさん
2005/07/27(水) 01:00:190347デフォルトの名無しさん
2005/07/27(水) 02:00:58.| | | レ | | | | | J || | |
∩___∩ | | | J | | | し || | |
| ノ\ ,_ ヽ .| レ | | レ| || J |
/ ●゛ ● | .J し | | || J
| ∪ ( _●_) ミ .| し J|
彡、 |∪| | .J レ
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
\ " / | |
\ / ̄ ̄ ̄ /
 ̄ ̄ ̄ ̄
0348デフォルトの名無しさん
2005/07/27(水) 03:34:57bitが0であるDRのbitは入力になる、とハードで決まってるの。(ユーザーズマニュアル参照)
だから初期化後にDDRにFFhを書くことでDRの全bitを出力に設定しているわけ。
そうしないとDRに何か書いてもその値が外に出ていかないから。
ちなみにDRにつながってるLEDは、0の所が光る回路になっていることが多いよ。
頭の、mov h'ffff00,ER7 は、「スタックポインタを初期化する」命令なので、このプログラムに
限って言えば無くても動く。(callとか使ってないから)
0349デフォルトの名無しさん
2005/07/27(水) 23:28:44こういうのって機種依存なんだから
>>342 の近くの人に聞いたほうがいいよ
0350デフォルトの名無しさん
2005/07/28(木) 09:58:57>>348みたいに答えてやれよ
0352デフォルトの名無しさん
2005/07/28(木) 21:20:28長文の返事をオフラインで書いていたんだけど、
>答えられないなら反応しなくていいです
これ見てせっかくの長文Upする気無くして削除した。
同一人物じゃないかもしれんけどね、
とにかくヤル気なくした。
0353デフォルトの名無しさん
2005/07/28(木) 21:24:200354デフォルトの名無しさん
2005/07/28(木) 21:37:18精しく
0355デフォルトの名無しさん
2005/07/29(金) 18:46:20消化を助け、身体の抵抗力を高め、気力を増し、筋肉を強めるという働きをします
0356デフォルトの名無しさん
2005/07/29(金) 20:17:41アホか。単に消化がいいので、体内で素早くブドウ糖に消化吸収されて
脳の代謝が良くなるってだけの話。
0357デフォルトの名無しさん
2005/07/29(金) 20:32:020358デフォルトの名無しさん
2005/07/30(土) 20:14:00大根とかに入ってる消化酵素アンナミラーズが含まれてるので
消化がいい というより、消化そのものを助けるのです
あと、これは熱を加えると壊れちゃうので生で食うのが良いです。
大根卸しを山芋に加えて消化酵素2倍、さらに普段より2倍高くジャンプ
さらに3杯おかわりすることにより
0359デフォルトの名無しさん
2005/07/30(土) 20:37:44ネタナノカマジナノカコピペナノカ…
0360デフォルトの名無しさん
2005/07/30(土) 20:48:170361デフォルトの名無しさん
2005/07/30(土) 21:46:07アンミラもだいぶ店舗が減って、さびしいもんだ。
0362デフォルトの名無しさん
2005/07/30(土) 23:17:14↑血糖と結構をかけてるんだ。 山芋だけにな。 うへへ
0363353
2005/07/30(土) 23:54:09山芋じゃなくてむしろスッポンとでも書くべきだったのか…
まぁ結果オーライって事でひとつ。
0364デフォルトの名無しさん
2005/07/31(日) 06:33:23この作者のHP見てると、なにやら所々おかしなことが書いてあって「本当にわかっとんのかコイツ?」という感じなんだけど?
いまさら16ビットやBIOS使用が多いのが気になる。ネタ(知識?)があまりないのでむりやりページを埋めたのか。
0365デフォルトの名無しさん
2005/07/31(日) 15:34:440366デフォルトの名無しさん
2005/07/31(日) 17:16:59確かに苦沙弥っちはジアスターゼ大好きっ子だったが
今じゃジアスターゼもアミラーゼと呼ぶのだ
0367デフォルトの名無しさん
2005/07/31(日) 19:16:590368デフォルトの名無しさん
2005/07/31(日) 20:53:49http://d.hatena.ne.jp/DokoDon/20050717
http://d.hatena.ne.jp/yaneurao/20050720
http://d.hatena.ne.jp/higepon/20050727/1122439771
http://blog.livedoor.jp/geek/archives/50010826.html
>「本当にわかっとんのかコイツ?」という感じなんだけど
具体的にどの辺が?
0369デフォルトの名無しさん
2005/07/31(日) 21:01:26取り巻き連中相手にのぼせちゃっているしな。
あんな内容のことを自慢げに話してもねぇ。。。。w
所詮はその程度ということを証明している。
0370デフォルトの名無しさん
2005/07/31(日) 21:04:220371デフォルトの名無しさん
2005/07/31(日) 21:11:58お前誰に話してんの?
言ってることも意味不明だし。
0372デフォルトの名無しさん
2005/07/31(日) 21:21:330373デフォルトの名無しさん
2005/07/31(日) 22:14:57アンミラーズってアンナミラーズのこと?
0374デフォルトの名無しさん
2005/08/01(月) 15:44:47みたいなコードってどう書くのが速いかな?
sub eax, 100;
xor eax, 0xffffffff;
inc eax;
みたいなの考えたけど…
0375デフォルトの名無しさん
2005/08/01(月) 15:54:220376デフォルトの名無しさん
2005/08/01(月) 15:59:18add eax,100
0377374
2005/08/01(月) 16:04:28ありがとう。
0378デフォルトの名無しさん
2005/08/01(月) 18:15:430379デフォルトの名無しさん
2005/08/01(月) 18:30:44幼稚園児に文字式の概念はないがな
0380デフォルトの名無しさん
2005/08/01(月) 18:48:400381デフォルトの名無しさん
2005/08/01(月) 19:03:490382デフォルトの名無しさん
2005/08/01(月) 19:15:450383デフォルトの名無しさん
2005/08/01(月) 22:47:080384デフォルトの名無しさん
2005/08/07(日) 21:59:59例えば、以下のコードがあったとします。
mov al,0
sub al,80
これは、0 - 80(-128)を表しているので 0 - 80 = 0 - (-128) = +128となり
alは-128から127までの範囲までしか表せないので結果の+128はオーバーフロー
という意味でよいでしょうか?
"プログラミングの力を引き出す本"には、引き算は足し算にしてから計算すると書いてあったので
-(-128)の部分の2の補数をとると-128(10000000)になります。
つまり 0 - 80 = 0 - (-128) = 0 + (- 128) = -128になりオーバーフローフラグが
立たないことになるんですが。
このへんが意味が分からないです。
後、キャリーフラグは桁が上がったらセットされるって書いてあるけど
0101 + 0100 は1001なのでこれはキャリーフラグがセットされるんでしょうか?
0385デフォルトの名無しさん
2005/08/07(日) 23:12:49おいおい、負数の減算は加算だぞ。
> つまり 0 - 80 = 0 - (-128) = 0 + (- 128) = -128になりオーバーフローフラグが
じゃなくて、 ~~~~ ~~~~~
0 - 80H = 0 - (-128) = 0 + 128 = +128
最初の式と一緒だよ。
CFはレジスタの幅を超える桁上がり・桁下がりの発生を意味してるから、
個々bitの桁上がりとは関係ない。
0386デフォルトの名無しさん
2005/08/07(日) 23:18:100387デフォルトの名無しさん
2005/08/07(日) 23:25:09でも、-1の2の補数(-(-1))とったら1です。
負数の引き算って2の補数をとって足し算ってだめなの?
-128でやると1000 0000から反転して0111 1111
+1して1000 0000になるから結局 -128になってしまう
からなんか変だ。
0388デフォルトの名無しさん
2005/08/07(日) 23:48:37それは、2の補数を取ったあとのビット列を、
無理矢理符号付き10進数で見るという間違いを犯してるから。
「2の補数を取る」というのは符号付き数と符号なし数の変換だから、
-128 = 80H の2の補数とったあとは、符号なし数として、つまり80H = 128として計算しないといけない。
(この過程で、実行する演算が減算から加算に変化してることを忘れないように)
10000000Bは2の補数とってもたまたま10000000Bだけど、
ビット列が同じでも値の意味は全く違う。
このへんが符号付き整数の一番ややこしいところではあるけどね。
0389デフォルトの名無しさん
2005/08/07(日) 23:49:2980x86にもAFってのがあるね。
0390デフォルトの名無しさん
2005/08/07(日) 23:51:49> 「2の補数を取る」というのは符号付き数と符号なし数の変換だから、
この表現はちょっとまずいか・・・しかし、いまいちいい説明を思いつかない/思い出せない。
0391デフォルトの名無しさん
2005/08/08(月) 00:05:27その説明(符号付き整数と符号なし整数の変換)で結構すっきりしました。
フラグの勉強はこれくらいにして、次に進みます。
0392デフォルトの名無しさん
2005/08/08(月) 00:25:03しているのを久しぶりに見て、なぜだか涙が出そうになった
0393デフォルトの名無しさん
2005/08/08(月) 08:55:48おれも。号泣してしまった。
0394全米
2005/08/08(月) 16:51:590395デフォルトの名無しさん
2005/08/08(月) 16:53:350396デフォルトの名無しさん
2005/08/09(火) 01:56:21安心汁。
質問はひとつだが
おまいには2ちゃんと蛆TVがついてるぞ。
0397364
2005/08/13(土) 05:49:15できれば直接的な意見が聞きたい。
完全匿名でないと本音が出せないと思う。
>具体的に
例えばこれ。
>ttp://ruffnex.oc.to/kenji/crackme/reverse_engineering.html
この中でパックしたプログラムのアンパックを行っているが、これは本当のアンパックではない。
インポートテーブルの再構成をバイナリエディタで行っているが、パッカーが作った(ヘッダで明示された)インポートテーブルは最低限のものだから、オリジナルのインポートテーブルも書き換えないとダメ。
そうでないとWinXPのバージョンやモジュール構成がちょっと変わっただけで動作しなくなる。Win9xの場合はデバッグプロセスでクリエートされるとAPIフックされるのでこの再構成法では全く動作しない。
そもそもUPXがルックアップテーブルを削除してしまうので再構成が必要になるわけで、ルックアップテーブルがあればそんなことをする必要はないわけなのだが、そのことの特殊性についても触れていない。
PEフォーマットがよくわかってないとしか思えない。
PEについてはリンクがあるが、アレなサイトで間違いだらけ。
暗号化の部分も色々変。
>フリーズさせるのはまずいので、あらかじめ復号化されたデータのチェックサムを取っておきます。そしてそのチェックサムと比較して正しければ、99%の確立で正しいパスワードが入力されたと判断して、復号化したプログラムを実行します。
せっかく正解かどうか容易にわからないように作っているのに、チェックサムで判断してしまえば台無し。フリーズさせるのが正解。
>パスワードを探しあてるには、アルゴリズムを再現して、総当りでキーと平文を探すしかありません
総当たりの場合、別にアルゴリズムは再現しなくてもSDKレベルプログラミングの基本ができればOK。
>この方法は、パスワード入力以後のプログラムをデータとしてマシン語で持っておかなければならないので、大きなプログラムだとまず実用的ではありません。
この方法に関しては、フリーズの時点で実用的には問題ありだが、パッカーと同様の技術なので、大きなプログラムであってもそのこと自体に問題はない。nasmとかでincbinとかもできるし。
0398デフォルトの名無しさん
2005/08/13(土) 05:52:09>同じIATでも、前回のはPEフォーマットとして構成されたバイナリデータファイルのIATを変更したわけですが、
>今回のは、すでにメモリに読み込まれた状態でのIATのアドレスを取得しているので、同じインポートアドレステーブルであることに変わりはありませんが、微妙に違うかもしれないです。
>いや、インポートアドレステーブルであることに変わりはないですけどね、
>でもメモリに読み込まれた状態とじゃちょっと違う気がしなくもないような...あー、なんかややこしくなってきたので、この辺で止めときます(^^;。
PEがよくわかっていないとしか思えない。
そしてここから取得できるサンプルプログラム
>ttp://ruffnex.oc.to/kenji/text/api_hook/API_Hook.zip
この中の
>API_HOOK.CPP
で、
>// アドレスが一致したので、インポートセクションのアドレスを書き換える
と書いてある辺り。
システムDLLの事を全く考慮していないし、ちょっと変。
VirtualProtect()を使っているが、システムDLLには通用しないのでそれらをよけないと無駄。
逆にもしも通用した場合、あらゆるプロセスが共有しているわけだからフックDLLが入り込んでいないプロセスが死ぬ。少なくともWin98ではライト可能セクションにインポートテーブルを置いているのがあるから確実に死ぬ。
次の行でWriteProcessMemory()を使っているが無意味。ただ代入すべき。というかWriteProcessMemory(GetCurrentProcess())ならそもそもVirtualProtect()は必要ないわけだが。
このソースには他にもPFNMESSAGEBOXWの定義などバグあり。
まだあるけど、もっと書く?
まあ、扱っている内容自体は悪くないんだけどね。
0399デフォルトの名無しさん
2005/08/13(土) 07:50:45>API_HOOK.CPP
の該当部分については、別段変なことはしてないというか、
AdvancedWindowsに登場する定番コード。
代入ではなくWriteProcessMemory()を使ってるのは、
WPM()ならPAGE_READONLYが付いてもWPM自信が属性書き換えて
データを書き込むからだそうな(そういう意味ではVirtualProtect()呼ぶのは無意味)。
あと、プロセスメモリ内にある以上はシステムDLLだろうが何だろうが書き換えはできるし、
(そうでなきゃKERNEL32.DLLにブレークポイントしかけられない)
copy on writeでそのプロセス独自のコピーが作られるから、他プロセスには影響しない。
(このへんもAdvancedWindowsに記載あり)
件の本については先週実物みてきたけど、
あの程度の内容でハードカバーって時点でネタ確定、ざっとながめただけで置いてきた。
金もってる初心者なら買ってもいいんじゃない? いい勉強だと思うよ'`,、'`,、('∀`) '`,、'`,、
0400マイク ◆yrBrqfF1Ew
2005/08/13(土) 08:13:05シェーダアセンブリの方か?チマチマした方か?
0401デフォルトの名無しさん
2005/08/13(土) 08:21:570402デフォルトの名無しさん
2005/08/13(土) 08:40:03要約すると「『いまどきの…』とどっこいどっこい」でFA?
0403デフォルトの名無しさん
2005/08/13(土) 10:24:18399と同じく「金持ってる初心者」にはいいかと。
『いまどき〜』は、アセンブリ初心者は無論、誰にとっても糞
0404デフォルトの名無しさん
2005/08/13(土) 10:54:19パソゲー解析スレでも「買ったら後悔間違いなし」とか言われてるし。
0405デフォルトの名無しさん
2005/08/13(土) 15:29:12ていうかそれほど高くないし、ページ数も思ったより多くない。
プログラミングやるのは初めてだけど、予備知識が少しあれば
普通に読み進めていける平易な内容。
逆に言えばこのスレの人には物足りないかもしれない。
現在、序盤のdebugコマンドを使って命令の動きを見ていくところ
0406デフォルトの名無しさん
2005/08/13(土) 23:58:470407デフォルトの名無しさん
2005/08/16(火) 15:40:560408デフォルトの名無しさん
2005/08/16(火) 15:53:480409デフォルトの名無しさん
2005/08/16(火) 16:34:390410デフォルトの名無しさん
2005/08/16(火) 16:51:580411デフォルトの名無しさん
2005/08/16(火) 19:09:350412デフォルトの名無しさん
2005/08/20(土) 08:02:19お願いします・・・
【板名*】 PC等->プログラム
【スレ名*】 アセンブラ… (´・∀・`)ヘー
【スレのURL*】 http://pc8.2ch.net/test/read.cgi/tech/1101390110/l5
【名前欄】 397,398
【メール欄】
【本文*】↓
>>399
>>代入ではなくWriteProcessMemory()を使ってるのは、WPM()ならPAGE_READONLYが付いてもWPM自信が属性書き換えてデータを書き込むからだそうな(そういう意味ではVirtualProtect()呼ぶのは無意味)。
だからそう書いてるんだが。>>自信
>>あと、プロセスメモリ内にある以上はシステムDLLだろうが何だろうが書き換えはできるし、
本当?そりゃ悪かった。今XPが使えないんで試せないんだが、少なくともWin98ではシステムDLL(のリードオンリー属性変更)にVirtualProtect()は通用しない。
>>そうでなきゃKERNEL32.DLLにブレークポイントしかけられない
だからWin98では仕掛けられないわな。
まあDRxならできるが。
>>copy on writeでそのプロセス独自のコピーが作られるから、他プロセスには影響しない。
本当?そりゃ悪かった。今XPが使えないんで試せないんだが、少なくともWin98では共有されている。
例えばKERNEL32やUSER32は、データやインポートテーブルは共有セクション上に置かれているので、例えプロセスごとにコピーが作られてもデータは共有される。
すなわちcopy on writeはコード(とかリソース等の)部分だけ、というわけだが。
Win98で共有されててWinXPで共有されていないって事は無いと思ったんだが、違うんか?
0413デフォルトの名無しさん
2005/08/20(土) 08:31:36試せよw
それで全部解決するだろ
0414デフォルトの名無しさん
2005/08/20(土) 11:06:56> >>そうでなきゃKERNEL32.DLLにブレークポイントしかけられない
> だからWin98では仕掛けられないわな。
ちょっと資料あさってみたけど、Win98だと0x80000000〜0xBFFFFFFFは全プロセス共有なのか。
とすると、ブレークポイントはしかけたらおかしなことになりそうだな。しらんかった。
ちなみに2000だと0x70000000あたりにロードされて完全にプロセス固有なので、
どうにでもできるし、なにしたって自プロセスにしか影響しない。
> 例えばKERNEL32やUSER32は、データやインポートテーブルは共有セクション上に置かれているので、
> 例えプロセスごとにコピーが作られてもデータは共有される。
データはともかく、IATは(KERNEL32等を)インポートする側が持ってるエリアだから関係なくないか?
あと、上記の通り2000(というかNT系一般)はシステムDLLを共有エリアに置かないので、
システムDLLのデータはプロセス間で共有されない。
0415デフォルトの名無しさん
2005/08/20(土) 20:19:420416デフォルトの名無しさん
2005/08/25(木) 20:59:39とりあえず本体はそろった!サンプル漁ってプログラミングだ!
サンプルが無いよ…
挫折しそうです。
0417デフォルトの名無しさん
2005/08/25(木) 21:07:07勉強したいだけなら、適当なEXE逆アセンブルして眺めてみれば?
0418デフォルトの名無しさん
2005/08/25(木) 22:05:55んなアホな。
0419デフォルトの名無しさん
2005/08/25(木) 23:02:310420デフォルトの名無しさん
2005/08/25(木) 23:25:450421デフォルトの名無しさん
2005/08/26(金) 08:19:24と言ったらなんかめっちゃ叩かれたんだけど、
オライリーの何とかって本を立ち読みしたら同じ事が書いてあったぞバカどもが
0422デフォルトの名無しさん
2005/08/26(金) 08:40:00PC等 [プログラム] アセンブラ… (0w0)ウェーイ 421
PC等 [プログラム] 推薦図書/必読書のためのスレッド PART 19 767
おかしいなぁ、このスレは過去スレも全て取得済みのはずなんだが……
0423デフォルトの名無しさん
2005/08/26(金) 09:22:22とにかくアセンブラはコンパイラだという意味のことを言った。
0424デフォルトの名無しさん
2005/08/26(金) 11:40:34なんだ、暇だから祭りを誘発したかったんじゃないのか。
2chで学問上の分類なんて議論しても意味ないから
いいネタ振りだと思ったけど。
ヘルメットが帽子かどうかみたいなもんだな
0425デフォルトの名無しさん
2005/08/26(金) 13:30:37C++に限らず星の数ほどある言語でも "LANG Compiler" だ。
でもアセンブラだけは "x86 Assembler" であって、"x86 Compiler"とは呼ばない。
オライリーの件も、「ある側面からみればアセンブラもコンパイラの一種といえなくもない」のような文が
脳内で"変換"されてできた例だろう。ふむ、そこまで高度な変換はコンパイルと言えなくもないね。
コンパイラとアセンブラには学問的な違いがあり、
世間的にも違いがあると認知されているから区別されるわけだが、
>>423はそれを覆そうという。いやはや、まったく正気の沙汰とは思えない。
0426デフォルトの名無しさん
2005/08/26(金) 13:34:390427デフォルトの名無しさん
2005/08/26(金) 13:50:19漏れもつい最近nasm使い始めたばっかりだけど、
アセンブラ環境なんてnasmとgcc (MinGW)を用意するだけじゃん。
gmakeもあったほうがいいかな。
nasmのサンプルだったら午後のこ〜だあたりはどうだろう。
Windows用のMakefileとnasm.cfgを流用させて貰ったから、
書き始めが凄く楽だったよ。
ほんとにまだ何も分からないレベルなら、最初はコンパイラの
アセンブリ出力を眺めることから始めたら?
gccなら -S -masm=intel で出せるよ。
0428デフォルトの名無しさん
2005/08/26(金) 13:52:230429デフォルトの名無しさん
2005/08/26(金) 15:23:530430デフォルトの名無しさん
2005/08/26(金) 15:26:260431デフォルトの名無しさん
2005/08/26(金) 16:43:53それでも読めない罠
0432デフォルトの名無しさん
2005/08/26(金) 17:06:35単にアセンブラは"アセンブラ"であって、"コンパイラ"じゃないってことじゃないの?
「俺はパナの"Walkman"使ってる」っつたら叩かれたのと一緒で。
0433デフォルトの名無しさん
2005/08/26(金) 17:12:130434デフォルトの名無しさん
2005/08/26(金) 17:27:52アセンブル
アセンブラ
英語の比較級みたいだ
0435デフォルトの名無しさん
2005/08/26(金) 17:36:050436デフォルトの名無しさん
2005/08/26(金) 17:39:35パナのウォークマンはないけど、アセンブラはコンパイラの一種。
パナのポータブルプレーヤをウォークマンと言うことはあるけど、
アセンブラをコンパイラと言うことはほとんどない。
どこが一緒なの? まったく逆じゃん。
0437デフォルトの名無しさん
2005/08/26(金) 18:47:44技術的な本質が全く異なるので、漠然とした違和感を覚える面々が多いのは全く当然。
「コンパイラの一種」ではなく、「トランスレータの一種」なら誰も文句言わないだろうけどね。
アセンブラのニーモニックは、基本的には1:1で機械語に対応していて、アセンブル行程も
ニーモニックに相当する機械語を単純に組み立てるだけ。ニーモニックで記述されている内容を
アセンブラが勝手に変更したりすることはありえない。
(原則として、だけど。実際にはアライメント調整や遅延分岐にpad入れたりすることはある)
コンパイラは、コンパイラ言語で書かれた内容を機械語(または中間形式)に変更するが、
機械語での実現方法は1つではないので、アセンブラとは違ってさまざまな結果になりうる。
むしろ、いかに良質な機械語のコードを出力するかが歴史的に競われている(最適化と言う)。
この、入力に対して処理系が意味的な変更を加えて出力するか否か、という違いが、
アセンブル(組み立て)と、コンパイル(編集)の本質的な違い。
アセンブラの出力には創意工夫というのはありえないけど、
コンパイラのそれは芸術と言っても過言ではない。
0438ネタ投下
2005/08/26(金) 19:14:480439逆もまた真ですか?
2005/08/26(金) 19:48:160440デフォルトの名無しさん
2005/08/26(金) 20:49:250441デフォルトの名無しさん
2005/08/27(土) 00:06:28実行バイナリに対して行ってもいいわけで、ツールに属すると思うが。
0442デフォルトの名無しさん
2005/08/27(土) 00:10:18ドラゴンブックの1.1の最初に
「コンパイラは、簡単にいうと、ある言語で書かれたプログラムを読み込んで、
それを等価な別の言語のプログラムに翻訳するプログラムである.」
とある。
アセンブラは、アセンブリ言語から機械語に翻訳するプログラムなので
コンパイラの一種である。
まぁ、そのあとでは
「コンパイラは、Fortranのような原始言語を、特定の計算機の機械語あるいは
アセンブリ言語へ翻訳するプログラムである、と一般に考えられている.」
とあるので、アセンブラをコンパイラと呼べば混乱するかも。
0443デフォルトの名無しさん
2005/08/27(土) 00:24:23アセンブラは基本的に翻訳をしない。ただ表記を変えるだけ。
0444デフォルトの名無しさん
2005/08/27(土) 00:27:030445デフォルトの名無しさん
2005/08/27(土) 00:31:13なにをゴタゴタしているのかね。
0446デフォルトの名無しさん
2005/08/27(土) 00:46:19アセンブル
アセンブラ
この違いを分かっていない低学歴がいるぽw
しかも、そんな香具師が本を出しちゃっているのが痛い
0447デフォルトの名無しさん
2005/08/27(土) 00:58:18>gccなら -S -masm=intel で出せるよ。
nasmは受け付けない罠
0448デフォルトの名無しさん
2005/08/27(土) 01:11:32ウォークマンはSONY製ヘッドホンステレオの商標である。
従って、パナのヘッドホンステレオはウォークマンではないし、そうとは呼ばない。
アセンブラはアセンブリ言語の翻訳系であって、コンパイラ言語の翻訳系であるコンパ
イラとは別物である。故に、アセンブラはコンパイラの一種ではない。
ひょっとして釣りか?
実際のコンパイラがそのような動作をするかどうかはさておき、
高級言語→(コンパイル)→アセンブリ言語→(アセンブル)→機械語
という流れが基本。
ハンドアセンブルとかハンドコンパイルをやった事のある香具師なら分かりそうだが。
0449デフォルトの名無しさん
2005/08/27(土) 01:13:35コンパイラ言語と機械語は1:1で相互変換できない。
実際の処理系は、実行ファイル作るための書式をやマクロを持ってるから
無条件に成立するわけではないけど、本質的な部分で全く違う。
ま、素人にはどうでもいい違いなのは確かだが。
0450デフォルトの名無しさん
2005/08/27(土) 01:16:17素人が知ったかぶったってもダメダメ。
0451デフォルトの名無しさん
2005/08/27(土) 01:17:48> 従って、パナのヘッドホンステレオはウォークマンではないし、そうとは呼ばない。
ウォークマンではないが、そう呼ぶこともある。
それぐらいわかれよ世間知らず。ひょっとしてアホなの?
0452デフォルトの名無しさん
2005/08/27(土) 01:26:33なぜなら、些細などうでもいい不適合部分を突っ込まれて、
議論がどうでもいい方向へ向かうから。
0453デフォルトの名無しさん
2005/08/27(土) 01:31:22激しく同意。悪いのは>>432。
「些細などうでもいい不適合部分」ではなく
重要な不適合部分を突っ込んだ場合も、
例え話合戦に発展して議論が迷走していく。
0454デフォルトの名無しさん
2005/08/27(土) 01:54:17SPARCとかのアセンブラには命令スケジューリングをするものがある。
だから、アセンブラだから一対一の相互変換が可能とは限らない。
らしいYO
0455デフォルトの名無しさん
2005/08/27(土) 01:58:44△ 喩え話
× 例え話
0456デフォルトの名無しさん
2005/08/27(土) 02:18:22ニーモニックレベルでは基本的に対応してるでしょ、そういう話。
実際の処理系・実装系の話をするなら、MIPSあたりも遅延スロットにNOPいれたりとかするし、
x86は違うニーモニックが同じ機械語だったりする(シノニム。左シフトSHL/SALとかね)。
言葉遊びがしたいのならそれでもいいけど、
物事の本質と実例の例外は区別しておかないと、実際のところ使い物にならないよ。
0457デフォルトの名無しさん
2005/08/27(土) 02:33:400458デフォルトの名無しさん
2005/08/27(土) 02:40:390459デフォルトの名無しさん
2005/08/27(土) 02:51:480460デフォルトの名無しさん
2005/08/27(土) 04:50:180461412
2005/08/27(土) 06:29:09XPで確認したよ。確かにアンタの言う通りだった。NT系はシステムDLLエリアが存在しないのね・・・
オレの知識が古かったようだ・・・ちゃんと確認しなかったオレの誤り。
ゴメン。そのあたり訂正させてくれ。
すなわち、API_HOOK.CPPのシステムDLLうんぬんに関しては、オレの書いたのは9xの場合に限る、ということで・・・
だから作者に責任はないわな。
ただ、他のところは間違ってないと思う。
>>414
>データはともかく、IATは(KERNEL32等を)インポートする側が持ってるエリアだから関係なくないか?
なぜか(PEヘッダ上)共有フラグがついている。どうも共有DLLとしてロードできるにはいくつか条件があるようで、例えば書き込み可能フラグがついているセクションは共有フラグも一緒につけないとロード失敗するみたい。
0462デフォルトの名無しさん
2005/08/27(土) 06:50:390463デフォルトの名無しさん
2005/08/27(土) 09:39:11バイナリを直接打った方が速い事もある
0464デフォルトの名無しさん
2005/08/27(土) 10:10:160465デフォルトの名無しさん
2005/08/27(土) 10:20:03昭和のプログラマ発見!
0466デフォルトの名無しさん
2005/08/27(土) 14:30:460467デフォルトの名無しさん
2005/08/27(土) 16:13:36コンピュータ界を担う重要な人材であるのに
このスレで見るレベルの低さは何事か?
技術立国日本は終わった。
0468デフォルトの名無しさん
2005/08/27(土) 16:15:360469デフォルトの名無しさん
2005/08/27(土) 16:18:500470デフォルトの名無しさん
2005/08/27(土) 16:29:180471デフォルトの名無しさん
2005/08/27(土) 23:22:18お前の日本は随分狭いなw
0472デフォルトの名無しさん
2005/08/28(日) 00:41:10に素人の初心者が興味を持ち書き込みをしている、このスレを見れば
技術立国日本の将来は明るいな。
0473デフォルトの名無しさん
2005/08/28(日) 02:02:420474デフォルトの名無しさん
2005/08/28(日) 02:40:060475デフォルトの名無しさん
2005/08/28(日) 02:50:39立ち読みできなくて買いあぐねてるんだけど
0476デフォルトの名無しさん
2005/08/28(日) 02:51:57あれは、
0477デフォルトの名無しさん
2005/08/28(日) 07:08:070478デフォルトの名無しさん
2005/08/28(日) 08:47:1016bitプログラミングに異様にページ使ってるのが萎える
ま、かなりいい内容でつ
0479デフォルトの名無しさん
2005/08/28(日) 11:21:140480デフォルトの名無しさん
2005/08/28(日) 11:29:25インラインアセンブラで最適化くらいしかしない漏れ的にはゴミだった。
0481デフォルトの名無しさん
2005/08/28(日) 11:36:590482デフォルトの名無しさん
2005/08/28(日) 12:29:28おまいレベルの最適化よりコンパイラに任せた方がずっと早いよw
0483デフォルトの名無しさん
2005/08/28(日) 12:30:530484デフォルトの名無しさん
2005/08/28(日) 12:52:520485デフォルトの名無しさん
2005/08/28(日) 16:41:50カワイソス・・・
0486デフォルトの名無しさん
2005/08/28(日) 17:11:01マジでインラインアセンブラいらねよな
0487デフォルトの名無しさん
2005/08/28(日) 17:15:56基本的に間違ってるよ君
0488デフォルトの名無しさん
2005/08/28(日) 20:08:400489デフォルトの名無しさん
2005/08/28(日) 20:14:54無理。インラインアセンブリのブロックで最適化がぶった切られる。
でもコンパイラの最適化より自分でやった方が速いなら使うべきだ。
>>482は最適化の才能がないからあんなこと言ってるだけだし。
0490デフォルトの名無しさん
2005/08/28(日) 20:25:22ハードウェアのタイミング取ったり、書き込み保障のウェイト取ったりな。
0491デフォルトの名無しさん
2005/08/28(日) 21:45:35>>490
コンパイラが使ってくれない命令(SIMD系とか)を使うケースもあるな。
0492デフォルトの名無しさん
2005/08/28(日) 21:53:56CELLもそんな感じらしいし。
0493デフォルトの名無しさん
2005/08/28(日) 21:54:30アセンブリ言語の勉強をしている初心者なんですが、
アセンブラって自作が可能なんでしょうか?
0494デフォルトの名無しさん
2005/08/28(日) 22:01:030495デフォルトの名無しさん
2005/08/28(日) 22:01:080496493
2005/08/28(日) 22:11:02コンパイラを作るときのように、字句解析などを行ったりするんでしょうか?
それとも一行ずつ機械語に変換していくだけなんでしょうか?
もし変なことを言ってたらすいません。
0497デフォルトの名無しさん
2005/08/28(日) 22:41:500498493
2005/08/28(日) 22:56:41もう少し勉強してきます。
0499493
2005/08/28(日) 23:30:13何も調べずに質問して申し訳ありませんでした。
「アセンブリ言語の教科書を」を参考にもっと勉強しようと思います。
ご迷惑をおかけしました。
0500デフォルトの名無しさん
2005/08/29(月) 00:27:06確かに最適なコードを吐いてくれはするだろうが、
それが期待するコードである保証は全く無い。
精度落としても高速化したい場合とかね。
0501デフォルトの名無しさん
2005/08/29(月) 00:36:06いや、Intrinsicsって基本的に基本的に機械語命令と一対一で対応してるんだが。表記がCの関数になってるだけで。
0502デフォルトの名無しさん
2005/08/29(月) 11:57:42Intrinsicsはコンパイラの最適化が入る時がある。
x86命令の所要クロック計測スレ
http://pc8.2ch.net/test/read.cgi/tech/1103609337/22
0503デフォルトの名無しさん
2005/08/29(月) 21:09:19GCCではインラインアセンブリも最適化の対象になる。
0504デフォルトの名無しさん
2005/08/29(月) 21:21:210505デフォルトの名無しさん
2005/08/30(火) 00:46:130506デフォルトの名無しさん
2005/08/30(火) 08:33:440507デフォルトの名無しさん
2005/08/30(火) 13:46:54ふっ、価格優先パラメータ付けて最適化してるだろ。
0508デフォルトの名無しさん
2005/08/30(火) 19:00:48もっと構文糖を入れたほうがいい?
0509デフォルトの名無しさん
2005/08/30(火) 21:49:00これを使いこなせる人ってすごい変態だと思った
0510デフォルトの名無しさん
2005/08/30(火) 21:56:58詳しく
0511デフォルトの名無しさん
2005/08/30(火) 22:40:29試してみれば?
GCCのインラインアセンブラは最適化の対象に成ってしまうが故に、
複雑な指定が必要。ウザい。
0512デフォルトの名無しさん
2005/08/30(火) 22:45:45そう思うのは君がアセンブラを必要とする
状況になっていないから。
アセンブラはCより1000倍簡単な言語。
0513デフォルトの名無しさん
2005/08/30(火) 23:05:16Cとの一番の相違点というか
どれ使うかは結構適当で良いのかな
中身は必ず戻さなきゃなのかな
0514デフォルトの名無しさん
2005/08/31(水) 00:20:50つ「volatile」
0515デフォルトの名無しさん
2005/08/31(水) 02:30:55関数電卓のメモリと思えばいい。
0516509
2005/08/31(水) 18:54:26同じ初心者さん?なんか仲間がいると安心するわ。
俺は今「プログラミングの力を生み出す本」で勉強してるけども
gasそのものよりgdbが何言ってるのか全然わからなくて混乱してる
0517デフォルトの名無しさん
2005/08/31(水) 20:49:21たとえばCALL命令で呼ばれたルーチンであれば、
RET命令で戻る時に元に(CALLで呼ばれた時点の状態に)戻しさえすれば、
どう使っても基本的には問題ない。
0518デフォルトの名無しさん
2005/08/31(水) 21:35:40ありがとうございます
と言うことはサブルーチン最初に、そのサブルーチンで使うレジスタの値を全てpush(M+)し、
サブルーチン最後に全てpop(MR MC)しなおすわけですか、結構大変ですねぇ
>>516
ちょっ、おまっ!同じ本じゃないですか「インテルCPUのGNUユーザへ」って奴だよね
実際はVC使っているのだけど、本の環境と違って複雑なアセンブラを吐いてくれるので参ってるよ…
それと「はじめての8086」で勉強してるっす
0519デフォルトの名無しさん
2005/08/31(水) 22:32:12よほどの心配性ならともかく、普通は全てのレジスタの値をCALLされる前の状態に戻す必要はない。
0520デフォルトの名無しさん
2005/09/01(木) 00:12:560521デフォルトの名無しさん
2005/09/01(木) 00:18:21コンパイラによる。
0522デフォルトの名無しさん
2005/09/01(木) 12:04:17呼び出し規約による
0523デフォルトの名無しさん
2005/09/01(木) 19:02:10jmp far 0x3000:0x0
ってかんじ?
0524デフォルトの名無しさん
2005/09/02(金) 21:31:04できればリバースエンジニアリングやAPIフックだけじゃなく
そのHPの他の内容についてももっといろいろと突っ込んで欲しいのですが。
かなり勉強になるので。
0525デフォルトの名無しさん
2005/09/03(土) 00:14:440526デフォルトの名無しさん
2005/09/03(土) 04:20:060527461
2005/09/03(土) 05:45:30>データはともかく、IATは(KERNEL32等を)インポートする側が持ってるエリアだから関係なくないか?
あっ、IATはDLL上のやつだから。
例えばUSER32上でKERNEL32からのインポートとか、NT系の場合KERNEL32上でNTDLLからのそれとか。
それと
>WriteProcessMemory(GetCurrentProcess())ならそもそもVirtualProtect()は必要ない
と書いてしまったが、これも9x系のみの話だった。
NT系はやはりVirtualProtect()が必要。不覚・・・
というか、代入を推奨。(負け惜しみ)
0528デフォルトの名無しさん
2005/09/03(土) 08:00:47おまえうざすぎ
ノイズバラ撒いてないでAdvancedWindows熟読しとけ
0529デフォルトの名無しさん
2005/09/03(土) 09:24:21サンプルか資料のありかキボン
DLLを圧縮するタイプのツールは自己展開したあとで
似たようなことやってると思うんだが、どうやんのかワカンネ
0530デフォルトの名無しさん
2005/09/03(土) 09:29:03LoadLibraryを自分で書くなんて面倒なことは普通やらないよ。
普通GetModuleHandleからkernel32.dll指定でGetProcAddressして、
LoadLibrary自身を持ってくるハズ。
自分でLoadLibrary相当の事をやる場合はPEフォーマットとかの知識が必要。
UPXのソースを読むのが早いかも。
0531デフォルトの名無しさん
2005/09/03(土) 09:39:430532デフォルトの名無しさん
2005/09/03(土) 09:50:13返事thx
メモリ上のイメージをDLLとして機能するようにしたいのです。
>>531
自己展開したイメージはメモリのどこかにあるでしょ。
LoadLibrary使うためにはいったんファイルに書き出さないといけないけど、
UPXで圧縮したDLLはそういうことやっていないと思う。
メモリ上のイメージのアドレス解決をLoadLibraryで出来るなら
話は早いのだが…
0533デフォルトの名無しさん
2005/09/03(土) 14:45:08CreateFileにFILE_FLAG_DELETE_ON_CLOSE付けてDLLを一時ファイルとして
作成する方法もある。
FILE_FLAG_DELETE_ON_CLOSEにGENERIC_READ, SHARE_READで
開いとけば一時ファイルをLoadLibraryできる。
一時ファイルをFreeLibraryした後にCloseHandleで閉じると勝手に削除される。
0534デフォルトの名無しさん
2005/09/03(土) 14:52:070535デフォルトの名無しさん
2005/09/03(土) 15:20:34ああ、システムDLLがシステムDLLインポートする方の奴か。
(ユーザーモジュールがインポートする方かと思った)
まあAdvancedWindowsはほんとに良著なので、NT系でやるなら一読をお勧め。
高いけど値段なりの価値はある。
>>531
それは圧縮されてない外部のモジュールのインポート用かと。
>>532
LoadLibrary()はロードしたPEモジュールのハンドル(≒先頭アドレス)を返してるだけだから、
(実際は参照カウントの管理もやってるようなので厳密ではない)
きちんとPEの展開さえできるのなら、別段迷うようなことはないと思うけど。
PEの展開・構築法が分からないというのであれば、勉強しろとしか言えない。
遅レスだけど、「アセンブリ言語の教科書」眺めてきた。
デバッガで「本物の機械語」を実行させるってのはいい実例ではあるし、
記述も丁寧ではあるけど、時々おかしな日本語があったり、校正はいまいちかも。
何ぞのような悪書ではないけど、やっぱり金持ちにだけお勧めって感じ。
0536デフォルトの名無しさん
2005/09/03(土) 21:53:39>PEの展開・構築法が分からないというのであれば、勉強しろ
UPXのソース眺めてみます。どうもでした。
0537デフォルトの名無しさん
2005/09/03(土) 22:24:48gdbってもしかして16bitや8bitのレジスタ(axとかal,ah)は見れないんでしょうか?
0538デフォルトの名無しさん
2005/09/03(土) 22:38:47eaxが見られれば十分だろ
0539537
2005/09/03(土) 22:59:36ありがとうございました。
0540デフォルトの名無しさん
2005/09/03(土) 23:05:370541デフォルトの名無しさん
2005/09/04(日) 00:02:000542デフォルトの名無しさん
2005/09/04(日) 00:03:24判らんのか?
0543デフォルトの名無しさん
2005/09/04(日) 00:52:380544デフォルトの名無しさん
2005/09/04(日) 00:58:28FILE_ATTRIBUTE_TEMPORARYでもいいけど自動削除されない。
あと、どっちもTerminateThreadとかの強制終了ではファイル残っちゃうから、
完全性を求めるなら自分でメモリからロードするしかないかと。
0545デフォルトの名無しさん
2005/09/04(日) 01:15:15パディングが入る可能性がある構造体と、レジスタを一緒くたにすんなよ。
eax と ax,al,ah の関係も知らないなんてど素人以下。
0546デフォルトの名無しさん
2005/09/04(日) 01:42:54メモリダンプだけじゃ厳しいけど、アセンブルリストがあればクラスのメンバ変数も分かるよ。
ただ、ここでメンバ変数が話題に出てくる脈略は分からない。
0547デフォルトの名無しさん
2005/09/04(日) 02:16:08#勿論その逆もできるが。
0548デフォルトの名無しさん
2005/09/04(日) 14:14:14>547
関数電卓に hex <-> float/double の変換機能があればいいのに。
0549デフォルトの名無しさん
2005/09/04(日) 15:21:430550デフォルトの名無しさん
2005/09/04(日) 18:09:56>>541は単に無能。
この差はでかい。でかすぎるっ
0551デフォルトの名無しさん
2005/09/05(月) 17:08:35FILE_ATTRIBUTE_TEMPORARYとFILE_FLAG_DELETE_ON_CLOSEは組み合わせられるだろ。
強制終了の解決ではないが。
0552デフォルトの名無しさん
2005/09/06(火) 07:42:06お勧めの本や勉強方法があったら教えていただけませんか?
0553デフォルトの名無しさん
2005/09/06(火) 09:19:29ワンボードマイコンとクロス開発環境。
コレ最強。
0554デフォルトの名無しさん
2005/09/06(火) 09:24:210555デフォルトの名無しさん
2005/09/06(火) 10:25:150556デフォルトの名無しさん
2005/09/06(火) 10:35:480557デフォルトの名無しさん
2005/09/06(火) 11:11:280558デフォルトの名無しさん
2005/09/06(火) 11:44:27組み合わせてどうするの?
この方法はどのみち一度ファイルに吐くんだし。
0560デフォルトの名無しさん
2005/09/06(火) 16:00:360561デフォルトの名無しさん
2005/09/06(火) 16:28:480562デフォルトの名無しさん
2005/09/06(火) 20:12:430563デフォルトの名無しさん
2005/09/06(火) 20:30:060564デフォルトの名無しさん
2005/09/06(火) 20:51:15出場はアセンブラ、BrainF**k、Unlambda、WhiteSpace、他に何かある?
0565デフォルトの名無しさん
2005/09/06(火) 21:24:00FORTHはその上を行くかな。
0566デフォルトの名無しさん
2005/09/06(火) 21:39:40アセンブラとかBrainF*ckなんぞ普通の言語じゃん
WhiteSpaceはさすがにネタ言語だけどな
俺としては全力でprologを推すね。
0567デフォルトの名無しさん
2005/09/06(火) 22:01:000568デフォルトの名無しさん
2005/09/06(火) 22:09:36むしろマクロが…
0569デフォルトの名無しさん
2005/09/07(水) 00:35:41入門には簡単で良いかな?
0570デフォルトの名無しさん
2005/09/07(水) 01:00:150571デフォルトの名無しさん
2005/09/07(水) 17:42:500572デフォルトの名無しさん
2005/09/07(水) 18:54:40手軽に遊べるBrainF*ck実装系紹介きぼん
BrainF*ckが気軽とは思えないけど、、、
0573デフォルトの名無しさん
2005/09/07(水) 19:40:010574デフォルトの名無しさん
2005/09/07(水) 19:59:00自分でインタプリタ書くのが一番手軽。
十数行で書けるから。
0575デフォルトの名無しさん
2005/09/07(水) 20:31:07これ見てCPUクロック計測ツール書いてみた。unix+gcc専用。
Boost使ってるけど、無ければ stdint.h で代替できるかも。
begin-base64 644 cpuclock.cc.gz
H4sICK7OHkMAA2NwdWNsb2NrLmNjAG1TS2/TQBC++1eMXEVKmpBHCxzIQ0Jp
DjnwUJNIHCpZznqTWPglex1SKn5Mw/qCKlFxKZWQEByoUKFckDhzLL0VcWfW
3jycZA/e2W+++WZ3ZrxlOsQKDQo10w2YT3W7oWzNMRIwwzL7y1DfRV5JOEyH
FUee11CWvKFjoqc4QjAMTGcIjm7TwNMJBcSra2CsVlWUOXKkAC7iOgEDTADt
bmv/YbelNZ/0HnehDveQLBjs0KMGHUCIpPt3NQZNyyXPNSbd8gRDyjQS2+SQ
WDSbi71JErFE+O4OEhPSyByOCtK23BdSTCxN0wNb02DsWjozUWnuEUslXmga
cOAcMBVKJdjf63aa8OHz+c9Pp/wyOov+RNPoOuLR++hvdPrt49Vvfiu8/Ix/
4W/4268n33/xEz7lN8dTfo0oT8v7BgtIIq+kPbY7hkyG6pMCZCqSsYlgCEJ5
A+EBqHVfheyiALlCCsI65NIRq/EivVoQez/eKZFHYxJXo/m0194D/gPiayIJ
P0R8jAnw24vLd//4Ob/hV/zi+PVcO7dUfJ+y0HcWfYE8ZAOGfSAa0QNWk91u
LD8CajXY3UEVIfAqPRU21YPQp8lkrM3EjNWnA9enOHNrQ1SdcwOLUi9bWUJm
0fqAUX9z8Oq7EuodmXB2Y7yz+AFs3XSywtD9IcHZHOn+9rY4jHPKUepVcRbM
WE4UUCuOM2MIt1r6Z6pCPm8uOptE5+urxUnEEm+pviKRPMVww75FZXsejV5i
QsmHSjleRXkn4oZMNGZBxYMKaKjCoo5hSU1Zmtazdlfr9JrNVqdTxZL8B/K0
MJevBAAA
====
アセンブラ初めてなので変なとこあるかも。
ってか gcc/gas って文法が変態チックで困る。
0576デフォルトの名無しさん
2005/09/07(水) 23:16:50基本は変わらないつっても結構クセの強い石もあるし。
0577デフォルトの名無しさん
2005/09/08(木) 17:33:100578デフォルトの名無しさん
2005/09/10(土) 00:09:470579デフォルトの名無しさん
2005/09/10(土) 00:10:240580デフォルトの名無しさん
2005/09/10(土) 14:45:05なんでゼロ拡張loadを基本命令にしなかったんだよこのアホ!
とお伝えください。
0581名無しさん@そうだ選挙に行こう
2005/09/10(土) 18:17:36懐かしい
0582名無しさん@そうだ選挙に行こう
2005/09/10(土) 20:05:140583名無しさん@そうだ選挙に行こう
2005/09/10(土) 20:52:390584デフォルトの名無しさん
2005/09/16(金) 15:04:12Can the effective address 61496h be accessed from the segment address 1884h?
why or why not?
で、答えはNOなんですが、どうしてアクセスできないのかわかりやすく教えてください!
0585デフォルトの名無しさん
2005/09/16(金) 15:33:50それは何のアセンブラの話だ。
0586584
2005/09/16(金) 15:36:07intel (80x86) のアセンブリです。
0587デフォルトの名無しさん
2005/09/16(金) 15:52:28うーん、8086でいいのかな。
それなら説明は簡単なんだが。
即ち、8086ではメモリアドレスは単純に次の式で表される。
(セグメントアドレス)*10h+(オフセットアドレス)
したがって、セグメントアドレスが1884hであれば次の範囲にアクセスできる。
1884h*10h+0h〜1884h*10h+ffffh
これを計算すれば、
18840h〜2883fh
となる。
問題のアドレスは61496hだから、当然アクセスできないことになる。
80286のプロテクトモード、80386以降の場合はこれに該当しないので
その問題の前提条件がない限り説明できない。
0589デフォルトの名無しさん
2005/09/16(金) 17:23:280590デフォルトの名無しさん
2005/09/16(金) 17:50:300591461
2005/09/17(土) 05:49:32もしそうなら・・・
リンカで設定して、DLLの側をうまく作っておきさえすれば、手抜きのPEローダーで構わない。
1. セクションのファイルアラインとメモリアラインを一致させること。ヘッダのサイズが1000hにできれば完璧。
2. 固定アドレスロードにする。
3. バウンドインポートにする。
まあ、3は大いに問題ありなので、インポートテーブルだけは解決するように作ればよい。後はDLLプロセスアタッチをシミュレートする。
逆に言えば、ちゃんとしたローダーを作るには1/2/3を解決すればよい。完全なのはもう少し処理が必要だが。
作りたかったらwinnt.hに載っている構造体とdbghelp.hに載っている関数をよく調べること。
それから、DLLは作らずに、VirtualAllocEx()で確保した領域に、EXEが自らのコードを部分的にコピーして動作させる、という方法もある。
そっちの方法は「アセンブリ言語の教科書」の著者のページに書いてあり、ソースコードも置いてある。多分Advanced Windowsにも載っているのだと思われるが。
0592デフォルトの名無しさん
2005/09/18(日) 19:36:15いい意味にしろ悪い意味にしろハッキングにはアセンブラが重要で自由自在だし
アセンブラができれば女にもモテるのでファッキングも自由自在ではないでしょうか。
0593デフォルトの名無しさん
2005/09/18(日) 19:39:20/ ./ /| !
_|  ̄ ̄ ̄ ̄.| |___ ∧∧
/ |_____.|/ / (・ω・ ) 誰だ!!
 ̄ ̄~ |し |  ̄ ̄ _| ⊃/(__
し⌒ J / └-(____/
____
/ ./ /| ?
_|  ̄ ̄ ̄ ̄.| |___ ∧∧
/ |_____.|/ / ( ) 気のせいか・・・
 ̄ ̄~ |し |  ̄ ̄ _| /(__
し⌒ J / └-(____/
____
/ ./ /| こちらスネーク
_|  ̄ ̄ ̄ ̄.| |___ 糞スレへの侵入に成功した
/ |_____.|/ /
 ̄ ̄~ |し |  ̄ ̄
し⌒ J
0594デフォルトの名無しさん
2005/09/18(日) 19:39:290595デフォルトの名無しさん
2005/09/19(月) 01:49:120596デフォルトの名無しさん
2005/09/19(月) 01:55:22アセンブリ言語ソース書けるかどうかは知らんけど。
0597デフォルトの名無しさん
2005/09/19(月) 08:17:39実地で試してみるぜ!とりあえずVCのコンパイラが吐いたのを読んでみるか
これで俺も「アセンブラ理解してると違うよ」とか言っちゃう身分だぜウフフ
……なんだこりゃ知らねー命令セット大杉 orz
0598デフォルトの名無しさん
2005/09/19(月) 11:02:22そうか?
VCの吐く命令って割と限られてるっぽいけど。
最適化も人間がやるみたいにキチガイ地味てるって程でもないし。
昔GCCの吐いたコード逆汗ったら凄まじく汚かった記憶がある・・・
0599デフォルトの名無しさん
2005/09/19(月) 14:14:33コンパイラが吐く命令列はシンプルと相場が決まっている。
0600デフォルトの名無しさん
2005/09/19(月) 16:14:220601デフォルトの名無しさん
2005/09/20(火) 01:45:51指摘サンクス!
後で修正しておきます。
0602デフォルトの名無しさん
2005/09/20(火) 10:03:36セブンアンドワイで予約したら
流通の関係でセブンだけ1週遅れて販売て
キャンセルして書店回ったろうか
お願いです。もう待ちきれません(´・ω・`)
0603デフォルトの名無しさん
2005/09/21(水) 00:28:21imul EAX, 3
と
mov ecx, eax
shl eax, 1
add eax, ecx
ではどっちが速いでしょうか。
というか、クロック表ってWeb上に転がってないですか?
0604デフォルトの名無しさん
2005/09/21(水) 00:33:14メモリ・レジスタ間オペレーションのスループットが上がってSSE2が追加されてる以外は
Pentium 3とほぼ同じだよ。
結論から言うと後者のほうかな。
0605デフォルトの名無しさん
2005/09/21(水) 00:35:54の方が速い気がする。
0606デフォルトの名無しさん
2005/09/21(水) 00:38:08なにげにデコーダネックになりそうな気もするがどうだろう
0607デフォルトの名無しさん
2005/09/21(水) 00:51:19>>605が定石。
リアルモードでも使えるよ。
0608デフォルトの名無しさん
2005/09/21(水) 00:56:32ttp://www.intel.com/design/pentium4/manuals/248966.htm
Prescott/その他のNetburst/PentiumM のレイテンシ/スループットがのっている
ただPentiumMはあまりのっていない
インテル アーキテクチャ最適化リファレンス・マニュアル
ftp://download.intel.co.jp/jp/developer/jpdoc/iaopt_j.pdf
デコーダ向け命令の仕様が役に立つと思われ
leaに一票
0609デフォルトの名無しさん
2005/09/21(水) 01:08:00RISCから入った俺的にはにわかに信じがたい。
本当に数をこなしたいときはMMX/SSE2使うのがいい希ガス
0610デフォルトの名無しさん
2005/09/21(水) 01:28:42似たようなのがARMにあった希ガス
0611デフォルトの名無しさん
2005/09/21(水) 01:57:46ありがとうございました
0612デフォルトの名無しさん
2005/09/21(水) 02:00:46いや、普通はアドレス生成ユニットが処理する。
P4だけは違ったかも。
0613怒シロート
2005/09/21(水) 03:14:18また、完全にマスターするまでには一般的にどのくらいの勉強時間が必要ですか?
もしかしたら、仕事の関係上勉強しないといけないかもしれないので、教えて君スマソですm(__)m
0614デフォルトの名無しさん
2005/09/21(水) 03:28:59全体を生産性の高い言語で記述して、速度を稼ぎたい部分にのみ使う。
移植性や可読性を犠牲にするから、本当に必要なところでだけ使うのがセオリー。
また、指数オーダーの時間がかかってる部分を倍数オーダーにするとか、
アルゴリズムの見直しは大前提。
高速化以外では、ハードに近い部分の処理をするときとか、
本当の熟練者にしか縁の無い話だが、コードの解析を困難にするためとか。
0615デフォルトの名無しさん
2005/09/21(水) 03:32:55どの程度の時間がかかるかは人にもよると思う。
私は、あなたのスキルをレベルを知らない。
基本情報技術者のCOMET-2/CASL-2あたりからはじめてみたらどうですか?
シミュレータなんかも出回ってるし、アレが近道だと思われ。
0616デフォルトの名無しさん
2005/09/21(水) 08:39:51さすが業界の人
0617デフォルトの名無しさん
2005/09/21(水) 11:59:44先端のゲーム屋、超タイトな組み込み系、
コンパイラ屋、それに組み込みとOS屋の一部、ぐらいじゃないか?
それでも最低限のことぐらい知っておかないと、
コンパイラ一つろくに扱えんと思うけど。
デバッグの時に役に立つこともあるかな。
完全にマスターするには、何をもってマスターとするかによるな。
アセンブリをなんとなく書くだけなら1日でできる。
プロセッサというものについての基本的理解、
というなら数ヶ月単位か。
まあ高級言語からアセンブリソース吐かせて
解説見ながらステップ実行でもさせれば多少は理解も進むんじゃないのかねぇ。
0618怒シロート
2005/09/21(水) 16:50:070619デフォルトの名無しさん
2005/09/21(水) 17:22:16なんの仕事?
0620デフォルトの名無しさん
2005/09/21(水) 18:03:050621デフォルトの名無しさん
2005/09/21(水) 18:23:360622デフォルトの名無しさん
2005/09/21(水) 18:29:460623デフォルトの名無しさん
2005/09/21(水) 18:30:14嘘つくなw
0624デフォルトの名無しさん
2005/09/21(水) 19:11:12それがASMを理解できるかどうかということ。「マスター」なんかしないでいい。
チップが出る度に命令セットを覚え直す必用がありそうに思えるが、たいてい
殆ど同じだから。-->メモリ<-->レジスタ間の移動、加減算、シフト・・・これがほとんど。
チョット高級チップなら乗算・除算がハード命令になっているけど、精度が足りるかビミョーだし。
0625デフォルトの名無しさん
2005/09/21(水) 19:44:11凡人が完全にマスターしたらもう凡人ではなくなっている。
0626デフォルトの名無しさん
2005/09/21(水) 21:32:22あぁ、目から鱗が。
0627デフォルトの名無しさん
2005/09/26(月) 11:04:29一生ありえない
0628デフォルトの名無しさん
2005/09/26(月) 18:32:44別に「完全マスター」しなくとも、飯が食えればそれでいいさ・・・・・
0629デフォルトの名無しさん
2005/09/27(火) 01:25:05http://bo2k.sourceforge.net/software/のdll_load.cppを嫁。
0630デフォルトの名無しさん
2005/09/27(火) 01:31:160631デフォルトの名無しさん
2005/09/27(火) 17:13:40おおーさんく〜です
0632デフォルトの名無しさん
2005/09/29(木) 15:22:36pop eax; pop eax
pop eax; pop edx
lea esp, [esp + 8]
pentium系でどれが速い?
0633デフォルトの名無しさん
2005/09/29(木) 15:52:57inc esp
inc esp
inc esp
inc esp
inc esp
inc esp
inc esp
0634デフォルトの名無しさん
2005/09/29(木) 18:15:300635デフォルトの名無しさん
2005/09/29(木) 19:45:321: MOV #100, R1
2: CLR -(R1)
3: CLR -(R1)
CLRはクリアだと習ったのに、答えは0では無いといわれてパニック・・・
教科書見ても具体的な方法が載っておらず・・・叩かれる気分で言います。教えてください。
0636デフォルトの名無しさん
2005/09/29(木) 20:35:51レジスタをカッコで囲むと何を意味するか述べよ
0637635
2005/09/29(木) 20:51:45()に意味が有るというのも今知ったので・・・
0638デフォルトの名無しさん
2005/09/29(木) 21:07:45授業ならテキストがあるだろ。
カッコは基本だから書いてあるはずだ。
まずテキストを熟読しろ。
0639デフォルトの名無しさん
2005/09/29(木) 21:17:53それが載っているはずだと思ってずっと熟読しているのですが、配布された資料に括弧の式はいくつか出ていて、括弧の意味も載っておらず、
答えすら載っていない状況で、独学しようにも答えがあっているかどうかすらわからない状況です。
教科書にも括弧の式はかなり使われているけど意味は載っておらず、これもまた答えが載っていないので結果がわかりませんでした。
数学のように1つでも回答例が有れば良かったのですが・・・
0640デフォルトの名無しさん
2005/09/29(木) 21:39:12>独学しようにも答えがあっているかどうかすらわからない状況です。
ここで聞く前にまず担当教官に質問しに行きなさい。
0641デフォルトの名無しさん
2005/09/29(木) 21:41:120642デフォルトの名無しさん
2005/09/30(金) 06:43:17x86とPPC以外は全然解らん。
Itaniumなんかは神レベルの人間じゃないと直に叩けそうにない
0643デフォルトの名無しさん
2005/09/30(金) 12:29:57RISCじゃCLRはまず使わん。
しかし、しょぼい問題だな。
0644デフォルトの名無しさん
2005/09/30(金) 13:39:050645641
2005/09/30(金) 13:39:05「さぁ〜、載ってないがそれぐらいは分かるでしょ。考えなさい」
といわれて帰ってきました。
>>642-643
良くわからないですがPDP-11?と言う言葉が教科書に頻出しています。
0646デフォルトの名無しさん
2005/09/30(金) 14:14:29m68kあたりが読めればなんとかなるか。
0647デフォルトの名無しさん
2005/09/30(金) 18:22:15「アドレッシングモード」でググってみな。
0648デフォルトの名無しさん
2005/09/30(金) 20:01:34どこの学校か知らんが、担当教官の質を疑ったほうがよさそうな予感。
0649デフォルトの名無しさん
2005/09/30(金) 22:23:37けいおー?
「-(R1)」の意味は ↓の「モード4」
ttp://www.nak.ics.keio.ac.jp/class/asm/
CやJavaの演算子を知ってると理解しやすい。
0650デフォルトの名無しさん
2005/10/01(土) 04:46:52Pentium系って何よ。互換品を含まないPentiumシリーズだとして、一般的には
pop eax/pop eaxとpop eax/pop edxは同じ。
addはその後でpush/popしないならpop/popより高速。
leaはそれに加えて、前でespにアクセスしないならadd以上。
ただしPenMだとpop/popの方がよかったような気もする。
0651デフォルトの名無しさん
2005/10/01(土) 07:23:052: CLR -(R1)
3: CLR -(R1)
まずレジスタの値を2減らし、その値を対象番地とする、と書いてあったね。
だから、2.で98番地をクリヤ、3.で96番地をクリヤ、その後R1は96になっているでしょう。
0652461 = 397 = 398
2005/10/01(土) 10:46:57で、結局、どれがあなたのレスだったの?
>>524がそうかな、と思ったんだが。
HP、期待してます。とりあえずデバドラのを・・・
>>613
Webに初心者向けのアセンブラの学習ページがいくつもあるから。それですぐに覚えられる。日本語のもいくつかある。
>>614の言うようにバイナリを吐ける高級言語をマスターしている必要は必ずしもないと思う。オレは一番最初はBASICインタープリタで次にマシン語だったし。
まあその頃に比べたらアセンブラもまるで高級言語みたいになったので、他をあまりよく知らずにアセンブラを始めてもいいんじゃないか? 実際オレはCより先にアセンブラをマスター(?)したし。
と言うかむしろ逆。バイナリを生成する言語を扱うプログラマは、アセンブラを読み書きできることは必須。そうでなければまともなプログラムは書けないし、第一デバッグができない。
マシン語やアセンブラを覚えれば何ができるか?
ヤバイ発言を期待してるんだろうけど、まあ言える範囲で言うと・・・
およそどんなバグでもつきとめて潰せるようになる。他人のつくったソフトのバグまで(^^;)
>>615の言うような試験のみで使われる言語を覚えても何もできない。x86で覚えるべき。
>>618
昔のパソコンでは素人がBASICで組んだやつでも何かしらマシン語が使ってあったりした。
高級言語の補助的な使い方なら誰でも組めると思うし、そうするのが利口な使い方。
オレはフルアセンブラで組む時もあるが・・・(^^;)
0653デフォルトの名無しさん
2005/10/01(土) 10:50:040654デフォルトの名無しさん
2005/10/01(土) 10:52:00つーかキモイな。
0655デフォルトの名無しさん
2005/10/01(土) 10:56:46気持ち悪い
0656デフォルトの名無しさん
2005/10/01(土) 11:01:06プログラムを作成できるように作られたものなのだが。
0657デフォルトの名無しさん
2005/10/01(土) 11:04:230658デフォルトの名無しさん
2005/10/01(土) 13:23:53そりゃ違うんじゃないか?
主に生産性の向上だと思うんだが。
0659デフォルトの名無しさん
2005/10/01(土) 14:14:00>>656と「生産性の向上」は矛盾しない。
0661デフォルトの名無しさん
2005/10/01(土) 16:02:41Cのポインタとかとくにそう思う
0662デフォルトの名無しさん
2005/10/01(土) 16:02:49『PC-9801プログラマーズBible』を片手に当時のゲームの
アセンブラソースを読んでいるんですが、
movah,004h
int07Fh
という「INT 07Fh」の意味が載っていなくて困っています。
どなたかご存知の方、または情報の在りかでもよいので
教えていただけないでしょうか。
書籍関係は絶版ばかりで入手も困難でした…。
0663デフォルトの名無しさん
2005/10/01(土) 16:08:05ソフトウェア割り込み。
0番地から始まるベクターアドレステーブルからの間接参照割り込みさ。
0664662
2005/10/01(土) 16:27:23ありがとうございます。
書き方が曖昧ですみません。INTが割り込み命令であることは
理解していたのですが、「07Fh(AH=04h)」で何が行われるのかが
分かりませんでした。
『PC-9801プログラマーズBible』に載っているのは、
INT 018h, 01Bh, 021h, 033h, 067hあたりで07Fhに該当する情報が
ありませんでした。
0665デフォルトの名無しさん
2005/10/01(土) 16:39:32そりゃ、未公開ファンクションだからじゃねえの?
0666デフォルトの名無しさん
2005/10/01(土) 16:44:29ttp://lrs.fmi.uni-passau.de/support/doc/interrupt-57/INT.HTM
0667デフォルトの名無しさん
2005/10/01(土) 16:45:43http://www.vector.co.jp/soft/dos/art/se003768.html
こういうのとか?w
0668662
2005/10/01(土) 17:08:28皆様、ありがとうございます。
ご紹介いただいたURLなどを参考にしたところ、おそらく
常駐ソフトなどが割り込み処理を仕込んでいるのが07Fhの
割り込みベクタということのようでした。
調べてみたところ、確かに040h〜07Fhのベクタ番号は
ユーザ用となっていました。また、解析中のソフトも別に
サウンドドライバを常駐させて使用するものでした。
実際に何が行われるのかは常駐ソフトのほうも合わせて
解析していこうと思います。回答いただいた方々、本当に
ありがとうございました。
0669614
2005/10/01(土) 19:04:38俺的にはPowerPCもx86も叩くので、あんまりハード依存のコード書くのはお勧めできない。
WinとMacじゃただでさえプリミティブな部分で互換性がないんだから極力共通化したいわけよ。
パフォーマンスの必要なところで、MMX/SSEとかAltiVecとか使いたいときだけ使ってる。
それでも自作のIntrinsicsのラッパー使って共通化できる部分は共通化し、極力
アセンブラを使わないように努力はするけどね。
たとえばIntel謹製コンパイラ+Intrinsicの組み合わせならx86でもx64でもそのまんま使えて
ハイパフォーマンスなコード書けるし、それですむならそうやったほうがスマート。
つか、レジスタの中身って全部見る必要ある?
普通にデバッグ用にマクロ切ってprintfとかで変数追っかければいいんちゃうの?
俺も趣味で書いてるプログラムでSIMDを使った高速化を多用するほうだが、
アセンブラで全部記述できるほど小規模なコードは書かない。
ただでさえSTLやBoost、自作テンプレート使いまくりで数千行あるようなコードだ。
あと、アセンブラから入った人って、構造化やOOがわかってないっていうか、
どうでもいいようなところで無根拠な「パフォーマンス」に拘って可読性を犠牲にするような
コーディングやる奴がいるから手に負えない。
コンパイラの最適化より自分が正しい、みたいな。
おまいのオナニーのせいであとで読む奴が困るんだよと。
いずれにせよCやC++は基本だから最初にやっとくべきかと。
あと、組み込みならRenesasとかNECのワンチップマイコンのほうが一般的だから
x86アセンブラが役に立つとも思えないけどなw
0670デフォルトの名無しさん
2005/10/01(土) 20:38:05長文キモスwwwwwww
0671デフォルトの名無しさん
2005/10/01(土) 21:05:52気持ち悪い
0672デフォルトの名無しさん
2005/10/01(土) 23:58:050673デフォルトの名無しさん
2005/10/03(月) 02:45:54アセンブラ屋が自分で使うために言語を開発したってのと、
人に使わせるために言語を開発したってのは違うんジャマイカ?
>>669
役に立つ、立たないじゃなく、学ぶための方策だろ。
そりゃARMでもやっといた方が役に立つのは間違いないが、
実機も環境も無かろうに。
0674デフォルトの名無しさん
2005/10/03(月) 04:36:08身近なARMといえばiPod?
0675デフォルトの名無しさん
2005/10/03(月) 04:47:120676デフォルトの名無しさん
2005/10/03(月) 04:49:34ちなみに、ミクロじゃケーブルが使えない
0677デフォルトの名無しさん
2005/10/03(月) 05:02:16LinuxザウルスもXScaleだからいちおうARM互換ではある。
0678デフォルトの名無しさん
2005/10/03(月) 17:49:20あの本も例に漏れず
0679デフォルトの名無しさん
2005/10/03(月) 22:05:220680デフォルトの名無しさん
2005/10/04(火) 16:48:45まぁスレ違いだから止めとく
0681デフォルトの名無しさん
2005/10/04(火) 17:08:290682デフォルトの名無しさん
2005/10/04(火) 18:19:11いいことだが。
0683デフォルトの名無しさん
2005/10/04(火) 21:25:560684デフォルトの名無しさん
2005/10/05(水) 00:23:190685デフォルトの名無しさん
2005/10/06(木) 06:59:30気持ち悪い
0686デフォルトの名無しさん
2005/10/06(木) 20:23:310687デフォルトの名無しさん
2005/10/06(木) 20:32:110688デフォルトの名無しさん
2005/10/07(金) 12:28:050689デフォルトの名無しさん
2005/10/07(金) 14:06:530690デフォルトの名無しさん
2005/10/07(金) 19:29:280691デフォルトの名無しさん
2005/10/07(金) 20:15:49これでいいんじゃね?
0692デフォルトの名無しさん
2005/10/07(金) 20:46:300693デフォルトの名無しさん
2005/10/08(土) 07:09:420694デフォルトの名無しさん
2005/10/08(土) 07:10:310695デフォルトの名無しさん
2005/10/08(土) 12:03:500696デフォルトの名無しさん
2005/10/08(土) 14:15:230697デフォルトの名無しさん
2005/10/08(土) 14:16:50決定
アセンブラ!(`ω´)
0698デフォルトの名無しさん
2005/10/08(土) 14:31:230699デフォルトの名無しさん
2005/10/08(土) 14:40:350700デフォルトの名無しさん
2005/10/08(土) 16:16:12の結果によりjmp命令を使わずに
ebx > ecx
なら正を
ebx < ecx
なら負を
ebx == ecx
なら0を
eaxレジスタに格納したいのですが、いい方法はありませんか?
0701デフォルトの名無しさん
2005/10/08(土) 16:22:48cmov
http://www.x86.org/secrets/opcodes/cmov.htm
って思ったけど、正負ってのが具体的な定数じゃないならこれでいいんじゃねーのか?
mov eax, ebx
sub eax, ecx
0702デフォルトの名無しさん
2005/10/08(土) 16:23:01符号付きシフトかな?
0703デフォルトの名無しさん
2005/10/08(土) 16:42:56eaxはsignedな数です。
0704デフォルトの名無しさん
2005/10/08(土) 16:51:59x86の符号付整数は2の補数表現なんで、そのまま使えるよ。
たとえば 1 - 2 は0xFFFFFFFFになるが、そのまま-1の意味になる。
0705デフォルトの名無しさん
2005/10/08(土) 17:00:36mov ebx, 0ffffffffh
mov ecx, 0
で比較したときにeaxに0ffffffffhが入るので
eax < 0となってしまいます。
0706デフォルトの名無しさん
2005/10/08(土) 17:09:36キャプション名と同じ名前の部分が100近くあって、全て変えると不正終了します
C言語のソースからならわかるのですが、exeファイルをバイナリエディッタや逆アセンブラ上などから
ここがキャプション、という部分を判別する方法はありませんか?
初歩的な質問ですが教えていただけると助かります、よろしくお願いします
0707デフォルトの名無しさん
2005/10/08(土) 17:37:03板違い
resource hacker使え
もう二度と来るな
0708デフォルトの名無しさん
2005/10/08(土) 22:13:18sub ebx, ecx
edx = (0 - c) * 2 + 1
add ebx, -1
eax = (0 - c) & edx
ってとこか?
0709デフォルトの名無しさん
2005/10/08(土) 23:41:07そんな糞面倒な事しないで、算術シフトで一発だって。
0710デフォルトの名無しさん
2005/10/09(日) 10:22:02すまん。一発で済ませる方法がわからん。
0711デフォルトの名無しさん
2005/10/10(月) 00:58:08sub ebx, ecx
sbb eax, eax
add ebx, 0ffffffffh
adc eax, eax
b > c で a = 1
b = c で a = 0
b < c で a = -1
ebx を破壊するけど最近のCPUなら 3clock 以下かな?
今考えついたものだけど、なんか見覚えがあるような。
これ以上いい方法は思いつかなかった。
算術シフト1発ってどうやるのん?
0712デフォルトの名無しさん
2005/10/10(月) 07:19:50それだと、
eax = 0;
if (ebx < ecx) eax--;
if (ebx != ecx) eax++;
なので、
ebx < ecx : 0
ebx == ecx : 0
ebx > ecx : 1
になんないか?
cmp ebx, ecx
sbb eax, eax
cmp ecx,ebx
adc eax, eax
でいいんじゃね?
0713デフォルトの名無しさん
2005/10/10(月) 08:30:30eax += eax;
が抜けてる
0714712
2005/10/10(月) 08:47:45adcの解釈間違えてる。
テラハズカシスwww
0715711
2005/10/10(月) 09:07:27うっ、単純にcmp2回で済むとは……
変に難しく考えすぎたかな。
EBX非破壊だし、そっちのがいいですね。
あと、>>711 の後ろの方は、>>710 のいうとおり
if (ebx != ecx) eax = eax + eax + CF;
なんで、 EBX < ECX のとき、 -1 + -1 + 1 = -1 です。
0716デフォルトの名無しさん
2005/10/10(月) 09:13:18その条件式が真のときは必ずCF=1なんで。
0717デフォルトの名無しさん
2005/10/10(月) 10:56:12ったくもう、これだからアセンブラ知らない奴らは困るよ。
0718デフォルトの名無しさん
2005/10/10(月) 11:07:500719700
2005/10/10(月) 17:18:25cmp ebx, ecx
sbb eax, eax
cmp ecx,ebx
add eax, eax
adc eax, eax
でいいのけ?
0720デフォルトの名無しさん
2005/10/10(月) 17:30:39ウルセーバカ、テストくらいテメーでしろハゲ!
0721デフォルトの名無しさん
2005/10/10(月) 18:38:04lahf
rcr eax, 1
and eax, 0x80002000
xor eax, 0x00002000
>709
シフト系は無理じゃね?
>719
ウルセーバカ、テストくらいテメーでしろハゲ!
0722デフォルトの名無しさん
2005/10/10(月) 18:59:36なんかの課題っぽいよな
0724デフォルトの名無しさん
2005/10/10(月) 20:06:10>>711-712なんか比較と加減算の3命令しか使って無くて、
算数レベルの明快な論理で書かれているのに……
検証するにしたって、漏れは711を投稿する前に総当たりのテストを
rubyで書いたけど、たったの10行程度で済むよ?
さっぱりやる気が感じられないんだけど。
0725デフォルトの名無しさん
2005/10/10(月) 20:10:07rubyそこまで使いこなせない。弟子にして・・・
0726デフォルトの名無しさん
2005/10/10(月) 20:40:59なんかワロタ
>>724
2の64乗通り、全部通したってわけじゃないと思うけど、
ebx=[0x00000000, 0x00000001, 0x7fffffff, 0x80000000, 0x80000001, 0xffffffff]
ecx=[0x00000000, 0x00000001, 0x7fffffff, 0x80000000, 0x80000001, 0xffffffff]
この辺りの組合せ?
0727700
2005/10/10(月) 20:50:04ごめんよ
0728デフォルトの名無しさん
2005/10/10(月) 23:58:27ebxとecxをアドレスにしたマトリックステーブルを作る!
すげえな俺。どんな計算も数ステップでこなしちゃうんだぜ。
0729デフォルトの名無しさん
2005/10/11(火) 00:01:08Pentium!!!(Coppermine)あたりでは有効な手だったけど
最近のCPUではレイテンシが増えてるからあんま使えない。
0730デフォルトの名無しさん
2005/10/11(火) 00:17:132の64乗はやってられないので、ワードサイズを8bitとして2^16通り計算した。
rubyはスレ違いで申し訳ないけど、折角なので書いておこう。
def cmp711(b, c)
b -= c # sub bl, cl; b -= c
a = -(b[8]) # sbb al, al; a = 0 - CF
b &= 0xff
b += 0xff # add bl, 0ffh; b += 0xff
a += a + b[8] # adc al, al; a += a + CF
end
(1<<8).times do |i|
(1<<8).times do |j|
r = cmp711(i, j)
p(['NG', i, j, r]) if (r != (i <=> j))
end
end
空行除いて12行なので、10行程度といって差し支えないでしょう。
実際はもっと読みにくい書き方してたからさらに短かったし。
今気づいたが add ebx, ffffffffh は、 sub ebx, 1 でもいいのか。
どのみち>>712 には敵わないけど。
あと最後に、
(ノ`д´)ノ ┫:・’ >>727
0731デフォルトの名無しさん
2005/10/11(火) 02:15:19氏ね。
一気に2つ上層のサブルーチンに返る技ってなんていうの
もし名前あったら教えて
素人ですまそ
0733デフォルトの名無しさん
2005/10/11(火) 03:28:18フレーム・ポインタがあった時も考慮するの?
0734デフォルトの名無しさん
2005/10/11(火) 05:41:42中間のサブルーチンでコールせずジャンプしたい気もするけど。
何にしろ名前なんてあるんかねぇ。
0736デフォルトの名無しさん
2005/10/11(火) 07:03:32C++例外処理やLISPなんかで使うよ
0737デフォルトの名無しさん
2005/10/11(火) 08:14:02割り込みを使ったプログラムを何か書いてみたいと思うのですが、
どんなものが可能でしょうか?
役に立たなくてもいいので、高級言語では実現しづらいことが出来るような
Windows特有のサンプルプログラムを作りたいと思っています。CD21などは使わない方向で。
0738737
2005/10/11(火) 08:22:47補足させてください。
PC-9801、MSDOS時代のアセンブラしか知らないので、
今復習を兼ねて色々とアセンブラでプログラムを作っていますが、
コンパイラは優秀で速度的に問題はないし、
Windows APIなどもC言語で呼ばれることを前提とされているので
アセンブラで書くメリットがある分野が昔に比べてとても狭くなっている気がしました。
そこで、最終的には何かデバイスドライバを作ることを勉強しようと
思っているのですが、その前段階として、Windowsからハードウェアに触ることの出来る部分を
まずは作ってみようと考えたのですが、知識不足からアイデアが思いつかず、737の質問をさせてもらいました。
割り込みに限らず、WindowsからハードウェアにWindows APIを介さずにアクセスする方法って無いですか?
VRAMでも何でも結構です。よろしくお願いします
0739デフォルトの名無しさん
2005/10/11(火) 10:40:43NT系ではWindowsからハードウェアにWindows APIを介さずに
アクセスする方法は無いんじゃないかしら。
おっしゃるようにデバドラ書くしかないと思いますよ。
0740デフォルトの名無しさん
2005/10/11(火) 10:42:43NTのユーザモードからI/Oを直接叩くのはムリ。
できるようにしてくれるソフトウェアはあったと思うけど。
CPUID/RDTSCぐらいしかないんじゃないかな。RDMSRも特権命令扱いらしいし。
9x系使うかDDK使うかした方がいいんジャマイカ?
0741デフォルトの名無しさん
2005/10/11(火) 11:44:52を知らんとどうにもならんと思う
0742デフォルトの名無しさん
2005/10/11(火) 12:36:12VRAMならDirect3DのAPIからアドレスを得て直接アクセスすることができるよ。
in/out命令をユーザモードで使いたいなら、GIVEIOをググってみる。
0743真正700
2005/10/11(火) 19:51:50は私ではありません。
いままでアク禁をくらっていてレスできませんでした。
>711さん、>712さん、>721さん、>724さん、>730さん、
皆さん本当にありがとうございます。
私は>712さんの書かれた方法を使わせていただきたいと思います。
失礼いたします。
0744偽700
2005/10/11(火) 20:14:350745デフォルトの名無しさん
2005/10/11(火) 20:17:270746真正700
2005/10/11(火) 20:23:060747デフォルトの名無しさん
2005/10/11(火) 20:31:480748デフォルトの名無しさん
2005/10/11(火) 22:10:350749デフォルトの名無しさん
2005/10/12(水) 13:13:07ttp://japan.internet.com/developer/20051012/25.html
0750デフォルトの名無しさん
2005/10/12(水) 13:55:440751645
2005/10/12(水) 18:47:30>>648さんの言うようにちょぃこの担当疑問な点が出てきました。
今日提出だった課題ですが、生徒はほぼ全員一発合格したにもかかわらず、先生が黒板で模範解答を行ったところ、答えと違った答えになり
「あれ?これでまちがっとるんか?そんなはず無いぞ」
と愚痴りながら5分後、ようやく間違いに気づき、「多分5億ぐらいになる」と一言残し、模範解答が謎なまま授業が再開されました。
ってことだけ報告して消えます。ではでは。
0752デフォルトの名無しさん
2005/10/12(水) 18:50:390753デフォルトの名無しさん
2005/10/12(水) 19:22:400754デフォルトの名無しさん
2005/10/12(水) 19:43:55俺の弟子かもしれん
0755デフォルトの名無しさん
2005/10/12(水) 19:48:12EULAに詳しく書いてあるんだろうが、俺が使ってるのはgasかNASMなので知らないや。
ttp://en.wikipedia.org/wiki/MASM
0756デフォルトの名無しさん
2005/10/13(木) 05:31:530757デフォルトの名無しさん
2005/10/18(火) 23:16:59誤植が多すぎる気がするのですが、
p.119のPROGRAM_ENDラベルはPRINTラベルに行った時点で
メモリ開放のシステムコールが呼ばれているので絶対に呼ばれないと思うのですが
なぜですか?
0758デフォルトの名無しさん
2005/10/18(火) 23:32:05そんな事言っても、絶対にその本は買わないからな。
よってその質問には答えられないw
0759デフォルトの名無しさん
2005/10/18(火) 23:46:07キーの寿命と削除
オリジナルファイルやその完全なキャッシュファイルを持っている
ノードが全てオフラインになると、そのファイルはダウンロードできな
くなるので、〜〜〜
って書かれてるけど?
>757の本おかしくね?
0760デフォルトの名無しさん
2005/10/18(火) 23:48:25おまえの頭がおかしいよ。
0761デフォルトの名無しさん
2005/10/19(水) 00:30:57想像でレス。
それは人間向けのラベルだろ。
コメントと同じ。
0762デフォルトの名無しさん
2005/10/19(水) 00:37:10アセンブリ言語の教科書興味あったんだけど
買わん方がいいんか?
0763デフォルトの名無しさん
2005/10/19(水) 01:05:16命令セットわかればいいだけだろ?
0764デフォルトの名無しさん
2005/10/19(水) 01:45:06なんつーか、意表をつかれた感じw
0765デフォルトの名無しさん
2005/10/19(水) 02:07:020766デフォルトの名無しさん
2005/10/19(水) 02:17:44アセンブルができます。
0767デフォルトの名無しさん
2005/10/19(水) 03:09:48より効率的なコーヂングを学ぶ、とか・・・
0768デフォルトの名無しさん
2005/10/19(水) 16:25:33バリバリのプログラマがC言語入門なんて本買わないだろ。
アセンブラ使いなんてそれだけですでにプログラミング初心者じゃないんだから、
そもそも本なんて買う必要なし。
初心者なら独習アセンブラとアセンブリ言語の教科書両方かって勉強しる。
0769デフォルトの名無しさん
2005/10/19(水) 18:43:15俺も持ってるけどMMX/SSE使うときくらいしか使わないし、それですら
VC++のx64用コンパイラ対応のためにIntrinsicsに置き換え進めてるけどな。
あの本は学習用じゃないよ。彼の酔狂ぶりを見て楽しむもの。
0770デフォルトの名無しさん
2005/10/19(水) 19:18:14索引とレジスタ一覧がついていれば広く浅く学ぶには最適だと思うんだけどな。
それが直れば文句なし、かも。
0771デフォルトの名無しさん
2005/10/19(水) 20:47:14多分誤植です。
今から調べてサポートページ更新しときますです。
ホント誤植多いですよね、申し訳ないです。
0772デフォルトの名無しさん
2005/10/19(水) 20:50:29お疲れ様です。
0773デフォルトの名無しさん
2005/10/19(水) 20:51:000774デフォルトの名無しさん
2005/10/19(水) 23:31:120775771
2005/10/20(木) 00:16:19指摘ありがとうございました。
サポートページの正誤表に追加しました。
>>772
このスレ勉強になるのでたまにのぞかせてもらってます。
アセ本の批判にヘコみながら(笑)。
でも批判も今後の参考になります。
>>774
おお、ありがとうございますです。
でもその本信じられないくらい売れなかったっぽいです。
頑張って書いたんですが…残念。
なんかスレ違いになりそうなんでこの辺で。
0776デフォルトの名無しさん
2005/10/20(木) 00:17:090777ハーピィ
2005/10/20(木) 01:08:340778デフォルトの名無しさん
2005/10/20(木) 10:22:26本買いましたよ。
素敵な本をありがとう。
0779デフォルトの名無しさん
2005/10/20(木) 10:30:030780デフォルトの名無しさん
2005/10/20(木) 10:42:120781デフォルトの名無しさん
2005/10/20(木) 13:31:19買ってみたくなるな。
0782デフォルトの名無しさん
2005/10/20(木) 13:32:51誤植が多い、外装が無駄 、金持ちの初心者なら買え
という意見が大多数。
あとは立ち読みで判断しる。
0783デフォルトの名無しさん
2005/10/20(木) 23:08:00多少の難はあるけど、入門書としてならかなりマシな部類だと思うよ。
ただ、既にアセンブリでプログラミングしてる人が改めて購入するようなものではないかと。
0784デフォルトの名無しさん
2005/10/20(木) 23:11:42キャリーというものが良く分かりません。
4ビットの演算の場合、
最上位ビットが溢れ出ることを指し示していると
思うのですけど、
この場合はつまり、オーバーフローが起きるわけですよね?
ということは、CFとOFが同時に、1になるということで宜しいのでしょうか?
0785デフォルトの名無しさん
2005/10/20(木) 23:18:26立ち読みすると店員に激しく睨まれる罠。
カバーはずす必要あるし、中からボール紙とか出てくるし。
まぁ貴様らとりあえずこれ嫁。
http://ruffnex.oc.to/kenji/bkasm/?link=_talk
どっかで見たような語尾だな。
ま、それはさておき、逆に外装が凝ってる割には安いんでないの?
あれくらいの分量で紙もあんま良くないのに4000とか結構ザラだしね。
あと、雑誌より薄いようなA4で5000円の本とか当たり前だし(まあ大学の教科書だけどw)、
広く浅く覚えるには良いと思う。
あと、「ネットワークの教科書」について。
たしかにあんまり役に立つことは載ってない。
余談だけど、俺ちゃんがネットワーク関連プログラミングの本でかなり実践的だと思ったのが
「TCP/IP解析とソケットプログラミング」でつね。高いけど。
「マスタリングTCP/IP」みたいに漠然と理論だけダラダラ書かれてるのよりは断然良いね。
きわめつけは巻末にIBMのメインフレーム用のアセンブリコードがギッシリw
「ハッカーの教科書 完全版」についてはまだ読んでない。
0786デフォルトの名無しさん
2005/10/20(木) 23:18:58キャリーが立たなくてもオーバーフローが立つことはある。
0787784
2005/10/20(木) 23:22:26そうなのですか?
正直、さっきからずっと悩んでいたのです。
CFが起きればOFが発生するのなら、二つにわける必要が無いのではないかと。
もし宜しければ、キャリーが立たなくてもオーバーフローが立つことはある
という状況を教えていただけ無いでしょうか?
0789デフォルトの名無しさん
2005/10/21(金) 01:51:15たとえば4ビットレジスタREG1とREG2での演算の場合、
CF = (REG1 + REG2) >> 4
OF = ((REG1 & 7) + (REG2 & 7)) >> 3
アセンブリの本ならヘネパタかパタヘネでも買っておけばいいんでないか?
C言語のK&Rに相当するかと。
0790デフォルトの名無しさん
2005/10/21(金) 02:15:17オーバフローフラグの概念を間違って理解している気がする。
ざっとおさらいしておくとこうなる。
・キャリーフラグ
加算による桁上がり(キャリー)、減算による桁下がり(ボロー)を表す。
・ゼロフラグ
演算結果がゼロに等しいことを表す。
・サインフラグ
演算結果を符号付としたときに負であることを表す。
・オーバーフローフラグ
加算、減算の結果が符号付数値の範囲を超えたことを表す。
4ビットレジスタを考えたとき、そのレジスタをデクリメント(-1)したときの振る舞いはこうなる。
レジスタ値→結果(キャリー:ゼロ:サイン:オーバーフロー)
1111→1110(0:0:1:0)
1110→1101(0:0:1:0)
1101→1100(0:0:1:0)
1100→1011(0:0:1:0)
1011→1010(0:0:1:0)
1010→1001(0:0:1:0)
1001→1000(0:0:1:0)
1000→0111(0:0:0:1)
0111→0110(0:0:0:0)
0110→0101(0:0:0:0)
0101→0100(0:0:0:0)
0100→0011(0:0:0:0)
0011→0010(0:0:0:0)
0010→0001(0:0:0:0)
0001→0000(0:1:0:0)
0000→1111(1:0:1:0)
0791790
2005/10/21(金) 02:22:31前スレの振る舞いを元に比較結果をまとめてみよう。
レジスタ値→符号なしで1と比較:符号つきで1と比較
1111→>:<
1110→>:<
1101→>:<
1100→>:<
1011→>:<
1010→>:<
1001→>:<
1000→>:<
0111→>:>
0110→>:>
0101→>:>
0100→>:>
0011→>:>
0010→>:>
0001→=:=
0000→<:<
このように符号なしの場合はキャリーフラグとゼロフラグで比較できるが、
符号つきの場合はサインフラグとオーバーフローフラグも見る必要がある。
0792デフォルトの名無しさん
2005/10/21(金) 22:22:15まあ、音楽鑑賞やテレビ鑑賞、化粧だって非生産的なのは事実だが。
0793792
2005/10/21(金) 22:23:020794デフォルトの名無しさん
2005/10/21(金) 22:35:070795デフォルトの名無しさん
2005/10/21(金) 22:36:060796790
2005/10/21(金) 22:47:180797デフォルトの名無しさん
2005/10/21(金) 23:28:330798784
2005/10/21(金) 23:31:18オーバーフローとは、キャリーが生じて
桁が溢れることだと思っていたのですが。
例:4ビットの場合
(1010)2 + (0111)2 → (10001)2
オーバーフローフラグは、 加算、減算の結果が符号付数値の範囲を
超えたことを表す。
つまり、4ビットならば、加算、減算によってMSBに影響を与えてしまったら
ということですよね?
というかは、もしかしてオーバーフローが発生したら
オーバーフローフラグに1がセットされる、というのは
間違いということで、良いのでしょうか?
0799デフォルトの名無しさん
2005/10/22(土) 02:44:530800デフォルトの名無しさん
2005/10/22(土) 03:27:150801デフォルトの名無しさん
2005/10/22(土) 14:13:09PCソフトなんかのCDを再生した音で
何のCDがわかるやつがいるとか。
0802デフォルトの名無しさん
2005/10/22(土) 16:10:41例えば、プログラムとデータはちょっと聞いただけですぐ区別がついたし、同じデータでもオール0のデータと
適当に数値の入ったデータも慣れれば聞き分けできた。
0803デフォルトの名無しさん
2005/10/22(土) 16:13:12別名人間シークヘッド。
0804デフォルトの名無しさん
2005/10/22(土) 16:14:360805デフォルトの名無しさん
2005/10/22(土) 16:26:130806デフォルトの名無しさん
2005/10/22(土) 18:48:44sugeeeeeeeeeeeeeeee!!
0807デフォルトの名無しさん
2005/10/22(土) 19:25:10解りやすいかどうかは、じっさいに読んでみないとわからないな。
イラストとかサンプルとかが一杯入っていて、下手に文字数が多くなくて、
行間に書き込みができる本がほしいかも。
意外とWebでの断片的な情報って、頭に入りづらいんだよな。
なんでだろ?
本だと、一貫性があるせいなのか、すらすら頭に入りやすい事が多い。
でも、スキャナにかけて、どんどん捨てていかないと部屋が狭くなるし‥
0808デフォルトの名無しさん
2005/10/22(土) 19:27:470809デフォルトの名無しさん
2005/10/22(土) 19:32:50しっかりとした書式をとったWebサイトでないとネットなだけに話半分に無意識のうちに見てしまうのと、
なんだか、ダイヤルアップしていた時代の名残で、どうにも早く読んでしまう癖があるからですかね.....少なくとも僕はそんな感じです。
あぁ、「アセンブリ言語の教科書」やっと、GNUアセンブラにいけそうです。ようやくWindowsから離れられる.....。
Linuxには入ったばかりですけど..。
0810デフォルトの名無しさん
2005/10/22(土) 19:36:19GNU→Intel形式の変換スクリプト知らない?
手動変換して検証するのも結構骨が折れるんだけど。
0811デフォルトの名無しさん
2005/10/22(土) 20:15:00手書きでメモを取る人は、Webの場合も適当なエディタでメモを取りながら読み進めるといいかもしれない。
0812デフォルトの名無しさん
2005/10/22(土) 21:20:430813デフォルトの名無しさん
2005/10/22(土) 21:34:190814デフォルトの名無しさん
2005/10/22(土) 21:38:210815デフォルトの名無しさん
2005/10/22(土) 21:50:240816デフォルトの名無しさん
2005/10/22(土) 21:55:58つまりデュアルモニタなんだ
0817デフォルトの名無しさん
2005/10/22(土) 22:52:540818デフォルトの名無しさん
2005/10/22(土) 23:05:00Webはすぐ直せるけど、間違いも多い気がする
0819デフォルトの名無しさん
2005/10/22(土) 23:29:27重複しながら小分けに情報が入ってくるほうがよく分かったりする
もちろん間違いや抜けがなければの話だが
0820デフォルトの名無しさん
2005/10/22(土) 23:35:52自然淘汰で書物から情報を得にくい人間は死んでいったんでしょう
(昔はPCないじゃんという突っ込みはなし)
んでもって、その子孫たちは書物から情報を得やすいように適応していると。
何世代か後にはwebと書籍を比べるとwebのほうが理解しやすいって
人間が大勢いることでしょう。
0821デフォルトの名無しさん
2005/10/22(土) 23:43:53ヒント:自然淘汰は生存環境の変化
0822デフォルトの名無しさん
2005/10/22(土) 23:47:02まず語句の意味をあえて理解せず、本を見てサンプルを入力
実行結果を確認し、ステップ実行で、各行での実行結果を自分で解析してその語句の意味を理解する
理解できたら書籍に載ってある意味と理解した内容が同じかどうか見てみる
間違っていたらもう一度チェックする
繰り返し(ただこれは他言語での話し...)
0823デフォルトの名無しさん
2005/10/23(日) 00:10:430824デフォルトの名無しさん
2005/10/23(日) 00:18:35あ、うん、こ
これからはコンピュータから情報を得ることが多くなるんじゃないかな
って思ったの。
生存環境というか情報環境が書籍からwebに変わると思うんですけどね。
0825デフォルトの名無しさん
2005/10/23(日) 00:21:48コンピュータで情報を得ることが精子に直結するとは思えない。
どうみても精子です。ありがとうございました。
0826デフォルトの名無しさん
2005/10/23(日) 01:25:31それ、面白いとでも思ってんの?
0827デフォルトの名無しさん
2005/10/23(日) 01:25:54$ ld -oformat binary -o a.img charput
を打ったらbinaryなんてファイルはないと怒られました。
どうしてですか......Linux、Winからきた僕がそんなに嫌いなの........。
あぁ、やっぱりシェルコマンドから覚えなきゃ駄目なのかな.....鬱。
0828デフォルトの名無しさん
2005/10/23(日) 01:51:13ハイフン足りない。
--oformat binary
0829デフォルトの名無しさん
2005/10/23(日) 10:10:010830デフォルトの名無しさん
2005/10/23(日) 11:02:48他の独習シリーズ(XMLとかSQLとか)と同じレベルでアセンブラを語るのは異論があるだろうけど・・・
ま、箱に入ったりしてないから実際に立ち読みしてみれ。
0831デフォルトの名無しさん
2005/10/23(日) 11:06:330832デフォルトの名無しさん
2005/10/23(日) 11:19:390833デフォルトの名無しさん
2005/10/23(日) 11:33:45つ[チータ]
0834デフォルトの名無しさん
2005/10/23(日) 11:58:430835デフォルトの名無しさん
2005/10/23(日) 12:09:40あ、ありがとうです....。'-'が抜けていただなんて、うっかりしてました。
早くLinuxになれなきゃ。
0836デフォルトの名無しさん
2005/10/23(日) 12:32:040837デフォルトの名無しさん
2005/10/23(日) 15:58:440838デフォルトの名無しさん
2005/10/23(日) 18:00:502の補数を加算することで補っていたのですよね?
今のCPUは、どうなんでしょう。
0839デフォルトの名無しさん
2005/10/23(日) 18:19:32今も同じじゃないの?
0840デフォルトの名無しさん
2005/10/23(日) 18:23:090841デフォルトの名無しさん
2005/10/23(日) 18:51:11Windowsでもldの仕様は同じはずだと思うけどなぁ。
0842デフォルトの名無しさん
2005/10/23(日) 18:55:560843デフォルトの名無しさん
2005/10/23(日) 20:04:44windowsのldって何だよ
0844デフォルトの名無しさん
2005/10/23(日) 20:13:430845デフォルトの名無しさん
2005/10/24(月) 01:20:170と1のみで書くあれのことか?
きもいでつねー
0846デフォルトの名無しさん
2005/10/24(月) 01:23:120847デフォルトの名無しさん
2005/10/24(月) 02:58:210848デフォルトの名無しさん
2005/10/24(月) 19:52:470849デフォルトの名無しさん
2005/10/25(火) 01:59:10レジスタの値は全てのCALL/RET間でデフォルトで共有されるのですか?
Cで言う引数をとるような命令があるのでしょうか?
ネ タ に 見 え る か も し れ ま せ ん が マ ジ レ ス で す
0850デフォルトの名無しさん
2005/10/25(火) 02:03:09最後の行でネタに思えるんだが…
Cで作った関数や関数呼び出しのコードをCコンパイラでアセンブリ出力
して見てみれば?
0851デフォルトの名無しさん
2005/10/25(火) 04:31:10スタックについて勉強しる
0852デフォルトの名無しさん
2005/10/25(火) 06:37:39CPUによる。
0853デフォルトの名無しさん
2005/10/25(火) 11:40:47たのですが出来上がったロードモジュールは相変わらず24,24のまま
でした。アセンブルは正常終了しているのに何故31,ANYにならない
のでしょうか?
0854デフォルトの名無しさん
2005/10/25(火) 15:20:32最近は無いのか?
0855デフォルトの名無しさん
2005/10/25(火) 15:50:47キーワード: ABI
0856デフォルトの名無しさん
2005/10/27(木) 22:45:42こんなコードがありました
pushl %ebp ;; (*)
movl %esp, %ebp ;; (**)
pushl $hello
call printf
leave ;; (***)
ret
*,**,***で行っていることがいまいちよくわかりません...。
なぜ、わざわざebpレジスタにespレジスタの値を入れたりせず、
eax, ebxなど他のレジスタを使ったりしないのはなぜなのでしょうか?
call printfとなにか関係があるのでしょうか...。
0857デフォルトの名無しさん
2005/10/27(木) 22:52:43標準スタックフレーム
0858デフォルトの名無しさん
2005/10/28(金) 00:32:47自動変数の格納場所の確保だよん
スタックエリアに作るんだよねぇん
0859856
2005/10/28(金) 10:21:01どうもありがとうございました。
「標準スタックフレーム」でぐぐったら見事に十件ヒットして
ひとつ面白そうな文献を見付けることができました。
大学から帰ったら読んでみます。
0860デフォルトの名無しさん
2005/10/28(金) 10:27:42printfはcdeclだから本来callの後に引数として積み上げた$helloの分の
add esp, 4でもしないといけない。
でも直後のleaveによってmov esp, ebp; pop ebpされるから省略されたと考えられる。
というわけだから一応
>call printfとなにか関係があるのでしょうか...。
この答えとしては関係ある、ということになる。他のレジスタ使ってもいいが
leaveの動作見ても判るようにebpはそういうことする専用レジスタだから。
0861デフォルトの名無しさん
2005/10/28(金) 10:35:170862デフォルトの名無しさん
2005/10/28(金) 10:45:01必要というわけではなく設計でフラグレジスタを採用しただけ。
たとえばたいていのRISCアーキテクチャではフラグを採用せず
条件分岐は「レジスタが0か否か」程度になってることが多い。
…ってなことよりも根本的な質問をされてるような気もするが。
0863デフォルトの名無しさん
2005/10/28(金) 10:46:36フラグレジスタにはどんな種類があるか調べろ。その過程で自ずと必要性の有無がわかる。
0864デフォルトの名無しさん
2005/10/28(金) 22:30:03【拷問ビデオ】恋人がAVに出演してた【許すな!これはAVじゃない】
http://ex10.2ch.net/test/read.cgi/news4vip/1130499649/
0865デフォルトの名無しさん
2005/10/29(土) 15:58:04学校で8085アセンブラの勉強をしているんですが、これは
8086の本を買っても対応できますか?
0866デフォルトの名無しさん
2005/10/29(土) 16:00:470867デフォルトの名無しさん
2005/10/29(土) 16:12:12私の大学のアセンブラの講義が、教科書を使わずに自分でwebに上がっているテキストを印刷して持ってくるという
スタイルでやっているんです。
しかしそのテキストに書いてある内容があまり良くなく、困っています。
(講義も、分かる人にしか分からない感じで進められる・・・0
そのためamazonで8085関係の書籍を買おうと思っったのですが、「現在取り扱いしていません」となっていて
廃盤になっているようです。
何かお勧めの本や、これやっときゃ8085もわかるよ的なものがありましたら
教えていただけないでしょうか?お願いします。
0868デフォルトの名無しさん
2005/10/29(土) 16:15:210869デフォルトの名無しさん
2005/10/29(土) 16:28:428085は、8080の後に出てきたCPUで8080とニモニックに互換性がある。
しかし、それ故に8085アセンブラの本は皆無に等しい。
因みに8bitCPUには余りにも有名なZ80があるが、これも8080の上位互換命令セットを持っている。
但し、こちらはニモニックがインテル形式ではなくザイログ形式となるため、見た目の互換性はない。
従って、8085アセンブラの講義に使えるのは8080の書籍くらいしかないと思われる。
#私自身は8085もザイログ形式で書いてたけどね。
0870デフォルトの名無しさん
2005/10/29(土) 16:47:35丁寧な説明ありがとうございます。
講義では「intelのすっげー昔のCPUだよ」くらいの説明しかされなかったので
大変助かりました。
とりあえず8080の書籍を探してみます。
0871デフォルトの名無しさん
2005/10/29(土) 18:08:12そんな事なら、インストラクションセットだけあれば十分だろ?
0872デフォルトの名無しさん
2005/10/29(土) 18:44:53COMETですよ
0873デフォルトの名無しさん
2005/10/30(日) 18:18:188085は命令的には8080をちょっと改良したもの。
8086は16bitアーキテクチャで8085との命令の互換性はない。
Z80は8080とバイナリレベルでほぼ上位互換。
まだZ80の本は見かけるからそれを見ればそれなりにわかるはず。
ただし、Z80はニーモニックが違うことと命令が大幅に拡張されているから
注意しないといけない。
できれば8080の本を見たほうが良い。
それとあわせて8085の拡張命令がわかればそれですむはず。
8086の本を見ても8085の事はほとんどわからない。
ハードウェアを弄るならそれなりに参考にはなるが。
しかし今ごろ8085をやってなんの意味があるんだ。
まだZ80をやるほうが色々と便利だと思うが。
0874デフォルトの名無しさん
2005/10/30(日) 18:24:19その二つをマクロで作ればザイログ表記でも使えるというのが味噌。
#勿論それらのCPUの違いを承知の上でならば。
0875デフォルトの名無しさん
2005/10/30(日) 21:28:56非対応なアセンブラを使う時は、DB 20H とか DB 30H でコーディングしたりします。
0876デフォルトの名無しさん
2005/10/30(日) 21:42:430877デフォルトの名無しさん
2005/10/30(日) 22:03:53最近はアセンブリ書くの面倒だからもっぱらIntrinsics使ってる。
0878デフォルトの名無しさん
2005/10/31(月) 16:53:03勉強ならプロセッサにこだわることもないんじゃね?
俺もここ最近勉強始めたけど、z80とか6502(学校の図書館に分かり易い本があった)
とかで勉強してるし。つか、昔のプロセッサの方がシンプルで良いな。
RISCとかCISCとか、プロセッサ独自の細かい違いはまた別だろうけどね。
0879デフォルトの名無しさん
2005/10/31(月) 17:17:41あおりではなく、純粋な興味なんだけれど、
アセンブラの勉強ってどんな勉強をしているのか教えてもらえませんか?
0880デフォルトの名無しさん
2005/10/31(月) 20:19:39そこでCASLですよ
0881デフォルトの名無しさん
2005/10/31(月) 20:56:39勉強でやるなら、
・資料が入手しやすい→独学しやすい
・ユーザーが多い(多かった)→人に質問しやすい
・現役で活躍中(エミュレータ含めて)→実際に動かせられる
あたりの要素を考慮して選べば、多少幸せにスタートできる。
Z80/8080、6502あたりなら上の全部の条件を満たすから、
初心者にはお勧めだな。8bitは仕組みも単純だし。
(電子系に強ければH8とかのPICって道もないではないが)
CASLでもいいけど、実装がないのが微妙だな(エミュレータはあるが)。
0882デフォルトの名無しさん
2005/10/31(月) 21:05:41たしかに大切そうなことが書いてありますが、MASMばかりですね.....。
0883882 ◆QmXBz55CBA
2005/10/31(月) 22:09:28そのままwコマンドを打ってファイルに書き出したのですが、バイナリエディタで開いてみると内容がまるっきり変わってしまっていました。
いったいこれはなにが起こったんでしょうか....?
0884デフォルトの名無しさん
2005/10/31(月) 22:09:32わりと実用性は高いと思う。
0885デフォルトの名無しさん
2005/10/31(月) 22:41:45それ、拡張子はCOMだけど、中身EXE(Win2kでそうだから、xpも多分同じ)。
セグメントの展開とかBSSの確保とかシンボルの再配置とかいろいろされてるから、
ファイルイメージとメモリイメージはかなり違う。
VectorあたりからDOS時代のシンプルなコマンドひろってきて試したほうがいいと思うよ。
あのへんなら確実に純粋なCOMだから、ダンプしてもほとんど一緒のはず。
(凝った奴だと独自にセグメント操作したりしてるからめんどい)
0886デフォルトの名無しさん
2005/10/31(月) 22:54:20xpのdiskcopy.comは名前こそ.comだが実際には.exe形式なので、loadした時点で再配置されている。
従って、そのままでは元の形にはwriteできない。
0887886
2005/10/31(月) 22:55:22先頭2バイトが'MZ'なら.exe形式ね。
0888882 ◆QmXBz55CBA
2005/10/31(月) 23:13:11どうもありがとうございました。
確かに先頭2バイトは'MZ'でした。exe形式(32ビット??)だといろいろと妙なことをやるみたいですね...。
nasmでサンプルコードを書いて16ビットコードを吐かせて本に載っていたことと同じことをやったら
しっかりと同じものが書き込まれていました。
よかったです、本当にありがとうございます。
0889886
2005/10/31(月) 23:36:0732bitとは直接関係ないよ。16bitでも.exe形式で作れる。
つーか、.com形式は単一セグメントモデルだから、
大きなプログラムは必然的に.exe形式にする必要があった。
#まぁ、アセンブラでそげなもんを作るわけでもないだろうから.com形式だけでもいいとおもうけど。
0890CASL ◆ukjpFpULac
2005/11/01(火) 18:39:1010進数の100を16ビットの2進数で表現したときに、
その値の中に含まれる0の個数を、メモリに格納するプログラムの作成。
プログラムの終わりの部分は、下記で、0の個数は、ANSの領域に格納される。
CNS DC 100
ANS DS 1
END
わかった人は教えて下い。
0891デフォルトの名無しさん
2005/11/01(火) 19:01:27ST GR1, ANS
0892デフォルトの名無しさん
2005/11/01(火) 19:49:030893デフォルトの名無しさん
2005/11/02(水) 02:25:460894デフォルトの名無しさん
2005/11/02(水) 19:32:29DOS のプログラムから WindowsNT 系のDOSプロンプトと本物の
MS-DOS Version 4.X, 5.X と区別する方法ってある?
AH=30hのINT 21hやINT 2Fhでは区別ができん。
今は一応環境変数でOS=Windows_NTというものを検索してごまかしているけど
もっとスマートな方法ない?
0895CASL
2005/11/02(水) 21:27:08次に、
アセンブラ言語CASL�Uを使って
4桁の16進文字列(0−9、および、A-Fの文字を組み合わせ
た文字列)を入力しそれを10進数に変換して、メモリに格納
するプログラムを作成せよ。
プログラムの終わりの部分は、下記で、変換した10進数は、ANS
の領域に格納されるものとする。
IBUF DS 4
ILEN DS 1
C000F DC #000F
ANS DS 1
END
わかった人は教えてください
プログラムをCASLで書いてください
0896デフォルトの名無しさん
2005/11/02(水) 21:32:17int 21h, ax=3306hでVer.5.50(bx=3205h)が返ってくれば
NT系のコマンドプロンプト。
0897デフォルトの名無しさん
2005/11/02(水) 23:38:01ありがとぉ
0898デフォルトの名無しさん
2005/11/02(水) 23:52:40宿題はム板の宿題スレでどうぞ
0899デフォルトの名無しさん
2005/11/03(木) 00:00:17いや既にマルチだし
0900デフォルトの名無しさん
2005/11/03(木) 02:59:48たたき台になりそうな資料がありましたら教えてください。
0901デフォルトの名無しさん
2005/11/03(木) 03:08:490902デフォルトの名無しさん
2005/11/03(木) 07:46:440903デフォルトの名無しさん
2005/11/03(木) 12:11:44Bochs のソースとかはどう?
0904デフォルトの名無しさん
2005/11/03(木) 18:29:31>>891のコードが、それ(だけ)を教官のところに持っていったら
「おまえ、俺をバカにしてるだろ」
と言われる種類のものであることを見抜けないなら勉強するだけ無駄。
さっさと学校やめちまえ。
オマエみたいなのに業界に来られたら困る。
0905デフォルトの名無しさん
2005/11/03(木) 20:35:12正しくは
LEA GR0, 13
ではなく
LAD GR0, 13
だったりする。
0906905
2005/11/03(木) 20:36:32×GR0
○GR1
0907デフォルトの名無しさん
2005/11/13(日) 16:01:130908デフォルトの名無しさん
2005/11/13(日) 18:30:300909デフォルトの名無しさん
2005/11/13(日) 21:18:51あれは面白い石だった。
0910デフォルトの名無しさん
2005/11/14(月) 22:00:000911デフォルトの名無しさん
2005/11/18(金) 18:44:55ttp://www.cbook24.com/bm_detail.asp?sku=4797332816
発売: ソフトバンク クリエイティブ
ISBN: 4-7973-3281-6
本体価格: \3,500
発売日: 2005/11/30
サイズ: A5判
ページ数: 456
著者: 林晴比古
0912デフォルトの名無しさん
2005/11/18(金) 18:50:200913デフォルトの名無しさん
2005/11/18(金) 19:04:51これって何人いるの?
0914デフォルトの名無しさん
2005/11/18(金) 19:15:130915デフォルトの名無しさん
2005/11/18(金) 19:28:210916デフォルトの名無しさん
2005/11/18(金) 19:34:53少なくともプログラミングをやったこと無い人には
これでJavaを理解しろと言われても無理だろう。入門書としては
全く薦められない、そういう感じの本だった。
0917デフォルトの名無しさん
2005/11/18(金) 19:44:070918デフォルトの名無しさん
2005/11/18(金) 20:17:23激しく同意
0919デフォルトの名無しさん
2005/11/18(金) 20:25:280920デフォルトの名無しさん
2005/11/18(金) 20:34:33あれが良本かよ
0921デフォルトの名無しさん
2005/11/18(金) 20:41:11なんか厨臭さを感じたんでスルーした記憶が
0922デフォルトの名無しさん
2005/11/18(金) 22:14:38結城浩の方が遥かに厨房臭いぞ
0923デフォルトの名無しさん
2005/11/18(金) 22:23:29てっきりJavaの話かと思ってたよ
0924デフォルトの名無しさん
2005/11/18(金) 22:32:17と思って検索したら、Cもあるみたいだね。
でもやっぱり結城浩はJava関連の書籍で評価したいところだ
0925デフォルトの名無しさん
2005/11/18(金) 22:50:25この書籍を読むのが大変苦労します。
言語処理系もだいぶお古なようです。
XP上で16ビットプロンプトに切替えてできないこともないのですが
ノートが大変遅いためXPを起動するだけで一苦労です。
これを制限があまりないLinux上でできれば一番いいと思うのですが、
ところで、この書籍を最近手にされてお読みになった方は
どのように実習されたんでしょうか?
御存じの方がいらっしゃいましたら是非ご教授下さい。
0926デフォルトの名無しさん
2005/11/18(金) 23:24:410927デフォルトの名無しさん
2005/11/18(金) 23:28:320928デフォルトの名無しさん
2005/11/19(土) 00:33:28中古で適当なPC-98買ってきたら?
0929デフォルトの名無しさん
2005/11/19(土) 00:54:21サンプルコードがそのまま通るかどうかはともかく。
0930デフォルトの名無しさん
2005/11/19(土) 07:14:560931925
2005/11/19(土) 09:12:33ご意見ありがとうございます。
おっしゃるとおりOSを書きたいなと思っていた次第で
この本を終えたらA.S.タネンバウム教授の本を買って作ろうと考えています。
新しすぎることがこんな弊害になるとは....。
中古PC-98などを探してみましたが100円のものから万単位するもの
まであるんですね。それにしてもでかいです...。
Win3.1がFD12枚も使うなんて全く知りませんでした。
金銭的余裕も今あんまりないし、どうしましょう...。
0932デフォルトの名無しさん
2005/11/19(土) 09:15:37何かDOSでも入れられないかと言ってみる。
0933デフォルトの名無しさん
2005/11/19(土) 14:44:110934デフォルトの名無しさん
2005/11/19(土) 14:57:27qemuとdigitalmarsはいいんだけど、nasmをmasmにすれば書きやすくなる。
入手法はお約束っぽく『ml.exe プロセッサパック』でぐぐる。
OSを書きたいのなら、アセンブラなんて泥臭いところは既存のをぱくってきて、
自分なりの試みをできる部分だけをC++とかで書くのが効率的だと思う。
特定のHWを決め打ちにするとかコンセプト次第でアセンブラレベルでガリガリ書く必要も出るだろうけど、
普通そういうのは無いからね。
0935925
2005/11/19(土) 20:18:37お返事が遅れてしまってすみません。
とりあえずはこの環境をなるべく崩さずに
教えていただいた方法をいろいろ試していけるとこまでやってみたいと
思います。
いろいろアドバイスありがとうございました。
0936デフォルトの名無しさん
2005/11/19(土) 21:06:19OSどころかアプリすら書けるかどうか怪しい。
今の環境残したいなら、開発システムはFDからブートさせればいいんじゃない?
それ以上のことは、ファイルシステムさわるようになってからでも遅くない。
0937デフォルトの名無しさん
2005/11/21(月) 23:21:23環境の入手が困難で資料も少ない昔の環境ってのは結構キツいものがある。
それはそうと、NASMの日本語資料みつかんね.....
時間の経過と共に資料がどんどん無くなってくのな....オレもDOSの時代に生まれたかったyo。
0938デフォルトの名無しさん
2005/11/22(火) 00:31:51なくなってるんじゃなくて、探し方が下手か、元々(ネットに)ない。
・・・まあ、なくなっていく資料もあるけどね、特にメーカー公式系の情報は。
DOSが現役だった頃、フリーの定番CコンパイラといえばLSI-Cだったけど、
MS-CあたりとはとはABIや識別子の変換規則が違うものだから、
定番のライブラリとかがほとんど使えなくて悲しい思いをしたなあ。
貧乏学生に買えるようなシロモノじゃなかったからね、MS-Cなんて。PC自体持ってなかったけど。
情報源も書籍か雑誌しかないから、田舎じゃどう転んでも入手できない情報もあった。
そもそも情報があるってこと自体知らないなんてザラだった。
雑誌のプログラマが平気でN-88BASICのBIOSルーチン呼び出してるのが不思議だった。
なんでそんなこと知ってるんだよって。解析資料が出版されてたんだけど。
大学生協で技術書が棚いっぱいに並んでるのを見たときは冗談抜きで幸せだったなあ。
今ならOMF(昔のMS LINKで扱えた.OBJの形式)の資料もネットで簡単に手に入るから、
LSI-C付属の文書とにらめっこすれば、ラッパー噛ますなりOBJ書き換えるなりして
無理矢理つなぎ合わせるくらい楽勝だなあ、とふと思った今日このごろ。
今更だけどね。
0939デフォルトの名無しさん
2005/11/22(火) 05:59:24該当するスレが見つからなかったもんですからここで。
'imul'というMic-1には実装されていない掛け算のmicroinstructionを
作りたいのですが、下のであってますでしょうか?
アイディアは間違ってないと思うんですが
テンポラリー変数としてOPCをこんな風に使ってよいものか分かりません。
imul1 OPC = MAR = SP = SP-1; rd
imul2 H = TOS
imul3 MDR = TOS = MDR + OPC
imul4 Z = H = H-1; if (Z) goto imul5
else goto imul3
imul5 TOS = MDR; wr; goto Main1
0940デフォルトの名無しさん
2005/11/22(火) 20:00:03アフォみたいにレジスタが少ないんですけどなんとかなりませんか?
0941デフォルトの名無しさん
2005/11/22(火) 20:00:490942デフォルトの名無しさん
2005/11/22(火) 20:21:340943デフォルトの名無しさん
2005/11/22(火) 20:45:52x86はガンバレ。マジ頑張れ。
アセンブリ書く目的がMMXやSSEなら、Intrinsicsを使ってみるという手がある。
0944デフォルトの名無しさん
2005/11/22(火) 21:13:198086を一遍かじって
少ないとはいえアドレッシングに全てのレジスタが使える幸せをかみしめろ
0945デフォルトの名無しさん
2005/11/22(火) 21:15:040946デフォルトの名無しさん
2005/11/22(火) 22:00:130947940
2005/11/22(火) 22:03:25だってぇー、メモリアクセスしたく無いんだもん。 ><
>>942
x86-64の奴をポーティングしようとしたら、あまりの少なさに俄然としたんだお。 ><
0948デフォルトの名無しさん
2005/11/22(火) 22:04:15じゃぁ、頑張れ。
0950940
2005/11/22(火) 22:10:130951デフォルトの名無しさん
2005/11/22(火) 22:21:39ちょwwwおまwww
0952940
2005/11/22(火) 22:35:37あったら便利なのにな
0953デフォルトの名無しさん
2005/11/22(火) 22:35:52…よね?
0954デフォルトの名無しさん
2005/11/22(火) 22:52:080955デフォルトの名無しさん
2005/11/22(火) 22:57:13CP/M時代のファンクション限定だがな
0956デフォルトの名無しさん
2005/11/22(火) 22:58:47ip と fl もレジスタであることは認識しているか?
0957デフォルトの名無しさん
2005/11/22(火) 23:04:39953の言う2つのレジスタはきっとその2つに違いない。
演算に伴う入出力はは全てメモリからという仕様に違いない。
0958デフォルトの名無しさん
2005/11/22(火) 23:10:280959デフォルトの名無しさん
2005/11/22(火) 23:13:26四則演算とpush popだけ。
オーバー・アンダーフローは例外かな
0960デフォルトの名無しさん
2005/11/22(火) 23:20:37メモリは無限に必要だけど。
0961デフォルトの名無しさん
2005/11/22(火) 23:27:21ぶっちゃけ、0ページがレジスタみたいなもんだけどw
0962デフォルトの名無しさん
2005/11/22(火) 23:48:27??
movd じゃだめなの?
0963デフォルトの名無しさん
2005/11/22(火) 23:55:106502 みたいな 8bit CPU の時代ならいざ知らず、
今それやると激しく遅そうだな。
0964デフォルトの名無しさん
2005/11/22(火) 23:59:42Z8(≠Z80)がそれに近いね。
0965デフォルトの名無しさん
2005/11/23(水) 00:37:150966デフォルトの名無しさん
2005/11/23(水) 00:42:44常にon casheと思えばさほどでもなさそうってわけないよなあ。
コードが書きやすくなるとか、CPU自体の構造が簡単になるってあたりが利点じゃない?
>>965
このペースなら980でもいいんじゃね?
0968デフォルトの名無しさん
2005/11/23(水) 01:50:05CQ出版
大貫 広幸 著
B5判 304ページ
定価2,310円(税込)
2005年12月15日発売予定!
0969デフォルトの名無しさん
2005/11/23(水) 12:58:41ttp://www.cqpub.co.jp/hanbai/books/MIF/MIFZ200601.htm
0970デフォルトの名無しさん
2005/11/23(水) 16:50:58これはどうなってるんですか?
0971デフォルトの名無しさん
2005/11/23(水) 16:58:37または自分で試せ
0972デフォルトの名無しさん
2005/11/23(水) 17:02:490973デフォルトの名無しさん
2005/11/23(水) 17:20:36li $v0, 4
syscall
0974デフォルトの名無しさん
2005/11/23(水) 18:04:11これぞ!っていうアセンブラ本出すとかいってたけど、
あれはどうなった?
0975デフォルトの名無しさん
2005/11/23(水) 18:27:15mainの後ろの ret と int 0x20 は不要。
0976デフォルトの名無しさん
2005/11/23(水) 18:30:19もうちょっと勉強してから出てこいよw
0977デフォルトの名無しさん
2005/11/23(水) 22:37:05読めない漏れはVIPPERにはなれなさそうだ。
0978デフォルトの名無しさん
2005/11/23(水) 23:22:57どうやって終了するんだ。
0979デフォルトの名無しさん
2005/11/24(木) 00:04:010980デフォルトの名無しさん
2005/11/24(木) 00:24:28(プログラム実行前にDOSがスタックの先頭に0000hを入れる)
↓
main からスタート
↓
func のアドレスをスタックに積む
↓
(最初の) ret で func にジャンプ
↓
文字列表示
↓
(func 最後の) ret で 0000h にジャンプ
↓
0000h にはCP/Mとの互換性から、あらかじめ "INT 20h" のコードが入っているため
プログラムが終了する。
0981デフォルトの名無しさん
2005/11/24(木) 00:34:10アセンブラ… (´・∀・`)ヘー (Part8)
http://pc8.2ch.net/test/read.cgi/tech/1101390110/
アセンブラ… (°Д°)ハァ? (Part7)
http://pc5.2ch.net/test/read.cgi/tech/1093519463/
アセンブラ… (;´Д`) ハァハァ (Part6)
http://pc5.2ch.net/test/read.cgi/tech/1087897801/
アセンブラ… (*´д`*)アハァ… (Part5)
http://pc5.2ch.net/test/read.cgi/tech/1076157613/
アセンブラ… (゚д゚)ウマー (Part4)
http://pc2.2ch.net/test/read.cgi/tech/1060928704/
アセンブラヽ(`Д´)ノモルァ (Part3)
http://pc2.2ch.net/tech/kako/1040/10402/1040297337.html
アセンブラヽ(`Д´)ノモルァ (Part2)
http://pc3.2ch.net/tech/kako/1016/10169/1016991911.html
アセンブラ… (・∀・)イイ! (Part1)
http://pc.2ch.net/tech/kako/1002/10022/1002267809.html
>>980新スレよろしく。
0982デフォルトの名無しさん
2005/11/24(木) 00:46:100983デフォルトの名無しさん
2005/11/24(木) 01:00:09次も良いの頼むぜ
0984デフォルトの名無しさん
2005/11/24(木) 01:02:25アセンブラ… ヽ(゚∀゚)ノフォーウ!
http://pc8.2ch.net/test/read.cgi/tech/1132761638/
0985デフォルトの名無しさん
2005/11/24(木) 01:07:04そっか、callじゃないからmainには戻ってこないんだった。勘違いしてた。
0988デフォルトの名無しさん
2005/11/24(木) 03:58:46cseg segment
assume cs:cseg
org 100h
main:
mov ah,09h
mov dx,offset msg
int 21h
mov ah,4ch
msg db "ヘ!? ダメポorz", '$'
cseg ends
end
0989デフォルトの名無しさん
2005/11/25(金) 20:14:390990デフォルトの名無しさん
2005/11/26(土) 00:31:310991デフォルトの名無しさん
2005/11/26(土) 03:26:450992デフォルトの名無しさん
2005/11/26(土) 03:28:420993デフォルトの名無しさん
2005/11/26(土) 08:05:170994デフォルトの名無しさん
2005/11/26(土) 15:10:050995デフォルトの名無しさん
2005/11/26(土) 15:12:530996デフォルトの名無しさん
2005/11/26(土) 15:32:340997デフォルトの名無しさん
2005/11/26(土) 16:37:570998デフォルトの名無しさん
2005/11/26(土) 16:38:290999デフォルトの名無しさん
2005/11/26(土) 16:39:311000デフォルトの名無しさん
2005/11/26(土) 16:39:40アセンブラ… ヽ(゚∀゚)ノフォーウ!
http://pc8.2ch.net/test/read.cgi/tech/1132761638/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。