1 名前:デフォルトの名無しさん [2011/08/28(日) 12:36:52.66 .net] 初心者OK!質問大歓迎!のアセンブラのスレッドです。 基本情報の勉強中の人、PICやH8を勉強中の学生などなど…
2 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 13:59:51.60 .net] このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
3 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 14:07:20.38 .net] アセンブラ最高や! C言語なんか最初からいらんかったんや!
4 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 14:18:11.54 .net] マシン語最高や! アセンブラなんて最初からいらんかったんや!
5 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 14:20:20.98 .net] アセンブラを勉強するのにいい、unix系の本がありますか?
6 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 15:25:38.65 .net] だいぶ前に落ちたっきり次スレが立たなかったアセンブラスレの 次スレを立てましたので、以後そちらで。 hibari.2ch.net/test/read.cgi/tech/1314512680/l50
7 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 19:26:11.59 .net] >>6 初心者用らしいしここでいいんじゃね
8 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 19:53:10.57 .net] 初心者用なら質問用テンプレが居るな、特にアセとなると 石、アセンブラが何か分からんと答えられんケースあるし 【CPU】 アセンブラではCPU(通称「石」)によって回答が全く違ってくることも多いので必須です。 まったく分からなくても「Windowsが動くCPUです」など、分かるだけのことを書いてください。 【アセンブラ】 これも分かれば。コマンド名とかでもいいです。 あとは何をテンプレにすべき?
9 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 21:36:27.48 .net] 書籍なんかがあればいいと思うけど
10 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 12:03:39.49 .net] 質問します 『独習アセンブラ』という本を買って来て、文字を出力するプログラム(p.5)をつくってみたのですが、うまく動きません nasm -f bin dispchar.asm -o dispchar.com こう入力してから dispchar.com を動作させると、つぎのように表示されました このバージョンの \dispchar.com は、実行中の Windows のバージョンと互換性がありません。コンピューターのシステム情報を確認して、 プログラムの x86 (32 ビット) のバージョンと x64 (64 ビット) のバージョンのどちらが必要か確認してから、ソフトウェアの発行元に問い合わせてください。 windows 7 64 bit でとりあえず動作させたいのですが、どうすればよいのでしょうか? 【CPU】 intel core i5-2400 【アセンブラ】 NASM version 2.09.10 compiled on Jul 15 2011
11 名前:10 mailto:sage [2011/08/31(水) 12:05:03.29 .net] dispchar.asm のソースを一応載せておきます >cat dispchar.asm ; dispchar.asm mov ah, 02 mov dl, 31h int 21h mov ah, 4Ch mov al, 0 int 21h
12 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 13:17:22.23 .net] >>10 それに乗ってるのは16bitのコードだから、win7 64bitでは動かないよ アセンブラも多分16bitだから動かないんじゃないかな?
13 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 22:09:56.92 .net] >>12 えっ、そうなのですか 残念です では64bitの環境で学習できるよいサイトはあるでしょうか?
14 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 22:13:55.85 .net] NASMはWin32版もある
15 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 02:22:30.05 .net] ピックやれピック
16 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 21:14:57.42 .net] >>13 32bitアセンブラコードは。。。 ほとんどwin32API呼び出しで、アセンブラの意味はないしねぇ。。。 >>15 の言う通り、PICマイコンでアセンブラした方が遊べると思うけど、こっちのアセンブラが64bitOSで動くかも不安が在るな。。。 ためして見た人居る?
17 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 21:22:48.86 .net] 実ハードで動かすことにこだわらず、エミュ使うのも手だと思うが。
18 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 21:28:50.15 .net] xpモードで開発&実行
19 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 21:57:17.07 .net] アセンブラで、C言語のcase文のように書きたいのですけどどう書けばいいですか? また、イフ文のようにも書きたいんですけどどう書けばいいですか?
20 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 21:58:06.62 .net] あ、開発環境はMPASM PIC16F84Aです
21 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 23:27:06.89 .net] 基本的には無理。 定番としてはテーブルジャンプだけど、その石でできるかどうかは知らない。
22 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 00:57:45.07 .net] call adressを機械語にすると E8 77 77 77 77 みたいになるけど この77777777実際のアドレスと違うんだよね どういう規則でこのアドレスは算出されてるの?
23 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 03:08:10.28 .net] call命令っつっても対応するオペコードは複数あるんだよ。 E8の場合はIPからの相対アドレスへのnear call。
24 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 05:49:48.47 .net] 相対ジャンプの場合は、石によるけど、ジャンプ命令のアドレスからのオフセットか、 その次の命令のアドレスからのオフセット(8086はどっちだっけ)。
25 名前:22 mailto:sage [2011/10/02(日) 05:56:17.04 .net] 8086はWindowsのことだよね? 逆算してみたら、次のコードの開始位置からの相対位置ですね
26 名前:デフォルトの名無しさん mailto:sage [2011/10/16(日) 15:03:31.57 .net] BSR ラベル:16 で書くのと JSRではどっちのがメモリ食うのか分からないです。 長いならJSRですかね?
27 名前:デフォルトの名無しさん [2011/12/14(水) 04:55:52.34 .net] 石の種類によるけど、BSRは3〜4バイト、JSRは4〜6バイト。 BSR ラベル:8 と書ける石もあって、この命令は2バイト。 でも、一般的にBSRのほうがJSRよりもマシンサイクルが多い(=遅い)。 その差まで気にかけるほどシビアな条件にはならないようにハード選定時点で 考えられるはず。 ってもう見てないよな(w
28 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:44:46.56 .net] 暇なんでやってみた win32だとCでやるのと変わらんわ・・・ ;ml hello.asm /link /subsystem:console .386 .model flat, stdcall GetStdHandle proto :DWORD WriteConsoleA proto :DWORD,:DWORD,:DWORD,:PTR,:DWORD ExitProcess proto :DWORD includelib kernel32.lib .data STD_OUTPUT_HANDLE EQU -11 hello DB 'hello, world',0Dh,0Ah,0 .data? OUTLEN DWORD ? .code mainCRTStartup proc local STDOUT :DWORD invoke GetStdHandle,STD_OUTPUT_HANDLE mov STDOUT,eax invoke WriteConsoleA,STDOUT,offset hello,14,offset OUTLEN,0 invoke ExitProcess,OUTLEN ret mainCRTStartup endp end
29 名前:デフォルトの名無しさん mailto:sage [2012/03/21(水) 15:57:39.75 .net] 64bitOS上の32bitアプリで関数コールにpushad popadだけ書いてretしたらエラー落ちするのは何が問題なんでしょう?
30 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/03/31(土) 17:38:06.65 .net] >>29 .386 .model flat .code _start: call testsub ret testsub: pushad popad ret end _start ml test.asm /link /subsystem:console Vista 64bit で動かしたけど、なんも問題ないっぽいけど。
31 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 01:39:15.92 .net] たのしそうだなー
32 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/01(日) 21:06:07.23 .net] >>30 それ64bitOS上の64bitコードじゃね?
33 名前:営利利用に関するLR審議中@詳細は自治スレへ [2012/04/01(日) 21:31:03.44 .net] バカ発見
34 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/05(木) 16:38:17.56 .net] キチガイ発見
35 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 00:23:22.00 .net] アフォは自己紹介をする。
36 名前:営利利用に関するLR審議中@詳細は自治スレへ mailto:sage [2012/04/09(月) 01:41:07.82 .net] >>35 早く自己紹介して
37 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 13:51:03.49 .net] アセンブリをCのソースに変換するフリーのデコンパイラって存在しますか?
38 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 13:58:08.54 .net] 存在しますよ。
39 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 14:00:48.85 .net] 検索キーワードを教えちくり
40 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 14:17:23.30 .net] 英語で検索すればおk
41 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 14:18:27.72 .net] なるほど ありがとう!やってみる
42 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 19:06:18.83 .net] フローチャート書いてるんですが スタック操作命令のPOP,PUSHってどうやって書けばいいですか? PUSHの場合これ出会ってますか? SP←0+(GR1)
43 名前:デフォルトの名無しさん mailto:sage [2012/05/02(水) 19:27:42.00 .net] フローチャートはコーディングじゃないから、箱(処理)の中に「GR1をスタックに保存」「GR1をスタックから復帰」とか、自分で分かりやすい風に書きゃいーよ。
44 名前:42 mailto:sage [2012/05/02(水) 19:34:10.73 .net] >>43
45 名前: そうなんですか。 ありがとうございます [] [ここ壊れてます]
46 名前:デフォルトの名無しさん mailto:sage [2012/05/03(木) 00:55:55.00 .net] 68kの性能のいいディスアセンブラないですか? 例えばデータの直後に命令があったらそれを識別できるくらいのがありがたいのですが
47 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 20:56:41.58 .net] サブルーチンからメインルーチンヘジャンプ命令ってプログラム的には問題なんでしょうか? たとえば EXE START LOOP IN BUF,LEN CALL DISP RET DISP LD GR1,LEN LAD GR2,1 CPL GR1,GR2 JZE LOOP RET BUF DS 256 LEN DC 1 END これの場合風呂チャートはどう書けばいいでしょうか?
48 名前:デフォルトの名無しさん mailto:sage [2012/05/12(土) 22:13:45.87 .net] 何これ、CASL?
49 名前:46 mailto:sage [2012/05/13(日) 12:11:07.96 .net] >>47 CASL2です
50 名前:デフォルトの名無しさん mailto:sage [2012/05/15(火) 15:50:00.32 .net] >>46 まず第一に、そのコード自体がまずい。 コール、リターンというのがどういう動作なのか理解してる? コールは次の命令のあるアドレスをスタックに積み、ジャンプする。 逆にリターンはスタックから1つ取り出して、そのアドレスにジャンプする。 そのコードだとLOOPへジャンプする度にスタックを食いつぶしていくことになる。 本来ならループされた数だけ戻り先の処理が行なわれてしまい、戻った際の処理もおかしくなるところ。 (そのコードの場合は戻り先がたまたまRET…つまり、何もせずにリターンするために一応動くことには動くのだが)
51 名前:デフォルトの名無しさん [2012/05/19(土) 14:27:41.30 .net] inline void __fastcall sincos( const float& angle, float& sin, float& cos) { _asm { fld angle fsincos mov edx, [cos] mov ecx, [sin] fstp dword ptr [edx] fstp dword ptr [ecx] } } これ正しい値を返さないんだけど、何か間違ってますか?(VC++2010EESP1)
52 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 14:32:51.37 .net] >>50 自分でトレースすりゃすぐに分かりそうなもんだが、何故人に訊く?
53 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 14:42:32.19 .net] fldの所でdword ptrは付けないの? そのままだとtbyte ptrがデフォルトになっちゃうと思うんだけど
54 名前:50 [2012/05/19(土) 14:52:50.88 .net] angle 0.78539819 ↓こうなる。何だよDENって。。 cos 1.0000000 sin 1.997e-039#DEN ↓正しくはこう cos 0.70710677 sin 0.70710677 >>51 さっぱりわからんとです。ハード的なコアな問題じゃないかと思って聞いた。 >>52 fld dword ptr [angle] こうしたが同じだった。
55 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 14:54:22.87 .net] >>53 悪い間違った 勝手にfldのサイズをインラインアセンブラが類推してdword ptrにしてくれた 正しくは _asm { fld dword ptr angle fsincos lea edx, cos lea ecx, sin fstp dword ptr [edx] fstp dword ptr [ecx] } だね movではアドレスではなく中身を取ってきてしまう
56 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:01:10.67 .net] また間違った 今起きたばかりで脳がボケている &だから参照なんでアドレスが入っているんだね だから最初のfldもアドレスを先にロードしてそこからさらに読み取ればうまくいった _asm { mov eax, angle fld [eax] fsincos mov edx, cos mov ecx, sin fstp dword ptr [edx] fstp dword ptr [ecx] }
57 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:04:11.36 .net] >>53 DENはおそらくデノーマル数だろうな。
58 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 15:54:13.22 .net] >>53 >さっぱりわからんとです。ハード的なコアな問題じゃないかと思って聞いた。 ステップ実行すりゃ、一番最初の fld angle で失敗してることくらい一目瞭然だろ。 ひょっとしてデバッガの使い方分からんのか?
59 名前:50 mailto:sage [2012/05/19(土) 21:08:19.23 .net] >>55 そのコードで直りました!ありがとう! >>57 うちのVCたんはレジスタ表示出来ないの お茶目な奴なんだよ
60 名前:デフォルトの名無しさん mailto:sage [2012/05/19(土) 21:16:04.76 .net] >>58 >うちのVCたんはレジスタ表示出来ないの ツール(T)→設定(S)→上級者用の設定 にチェック入れてる?
61 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 02:07:11.52 .net] x86の浮動小数点演算って変な格好をしてるよなあ 8087というコプロセッサを使うために作られたアーキテクチャとは言えそのまま引きずってるし SSE2を使うと精度は64bitに落ちるが一応倍精度演算出来るもんな x64も最初はFPUをコンテキストスイッチで保存しない計画だったんでしょ 全部SSE2に切り替えようとした でもどっから圧力が掛かったのか社内の意見で反発されたのか、64bitOSはFPUを保存する事にした
62 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 02:11:57.46 .net] あ、ちなみにSSE2には超越関数はもちろんないが、プログラムで組んでもFPUと互角か FPUより速い場合が今のCPUでは普通
63 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 03:09:57.58 .net] >>60-61 日本語でおk
64 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 04:45:01.70 .net] >>62 意味が分からないなら無理に読まなくてもいいよ
65 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 05:14:03.65 .net] >>63 > 8087というコプロセッサを使うために作られたアーキテクチャとは言えそのまま引きずってるし 「〜とは言え〜し」の使い方が異常。 > SSE2を使うと精度は64bitに落ちるが一応倍精度演算出来るもんな IEEE754でいうところのDouble precisionなのに何が「一応」なのか意味分からん。
66 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 05:54:25.35 .net] 難癖付けるのだけはうまいな Intelは互換性を重視したために今のような汚いアーキテクチャになった これは意図的に選んだ道だ いくらでも綺麗に設計しなおすチャンスはあったが敢えてそうしなかった MSのVCのlong doubleが64bitであるようにFPUを切り捨てる計画は かなり前からあったようだがIntelに押し切られるような格好でOSの設計 だけは譲られなかったのだろう それからFPUの内部演算は全て80bitだ だから64bitで計算するのと結果が異なる場合がある
67 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 06:11:06.67 .net] >>65 >Intelは互換性を重視したために今のような汚いアーキテクチャになった 8086の頃から汚かったゾ? >これは意図的に選んだ道だ 「今のような汚いアーキテクチャになった」のは「結果」であって、「選んだ道」ではないが。
68 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 06:19:38.94 .net] >>65 >いくらでも綺麗に設計しなおすチャンスはあったが敢えてそうしなかった 432とか、80860とか、Itaniumとか、ハイエンド製品についてアーキテクチャを見直すチャレンジは何回かやってるよ。
69 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 12:43:10.15 .net] どこに言っても言葉尻だけ捉えて重箱の隅をつつくようなアホがいるから対応策は一つ 66 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん 67 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
70 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 14:13:12.69 .net] >>67 は言葉尻ではないよな
71 名前:デフォルトの名無しさん mailto:sage [2012/05/21(月) 14:47:18.99 .net] 69 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
72 名前:デフォルトの名無しさん [2012/05/26(土) 23:12:40.96 .net] スレ違だったらすみません H8マイコンで、ボタンが押されるたびにLCDに表示されてるいる数を減らすのを作りたくて、ER4に MOV.W #D'5みたいに入れてそれをボタンが押されるたびに、一個づつ減らすように書いたのですが、そのER4の内容をLCDに表示させるのはどうすればいいんでしょうか?
73 名前:デフォルトの名無しさん mailto:sage [2012/05/27(日) 02:45:41.91 .net] >71 日立…じゃなくて今はルネサスか…に問い合わせればきっと トレーニングキットなり講習なりの案内はもらえるとは思えますよ。 数十万〜数百万個とか使うのでなければ有償だとは思うけど。
74 名前:デフォルトの名無しさん mailto:sage [2012/05/29(火) 04:40:40.39 .net] >>71 「LCDに表示させる」ってとこはLCDのデータブックを理解できると仮定して・・・ ・ワークregにER0を使う。(ことにする) HEX: DC '0123456789ABCDEF' ER4をER0に移す ER0を0000000FでAND MOV.B (HEX,ER0),R1L で、16進の1桁をASCIIに変換できる R1LをLCD表示用の変数にセット ER4を右に4bitシフト これを8回くり返せばER4の内容を表示用の文字列に変換できる。
75 名前:デフォルトの名無しさん mailto:sage [2012/05/30(水) 01:13:11.99 .net] >>72 >>73 レスありがとうございます。>>73 さんのやり方で表示できました。ありがとうございました!
76 名前:73 mailto:sage [2012/05/30(水) 01:22:20.91 .net] お役に立てて嬉しい
77 名前:73 mailto:sage [2012/05/30(水) 01:39:47.03 .net] あ、途中で書き込んじゃった・・・レジスタや変数の内容を表示したいのはよくあること だから、dmp(変数)(長さは4とか16とか固定)、dmp(変数,長さ) とかの使い回し できる関数にしておくといいよ。レジスタはその変数に代入してからdmp( )を呼ぶ。 cで製品を開発するときこういうのを組み込んでおいてずいぶん役に立った。 表示先はLCDの他に、uartのコマンド/報告で組み込むのをよくやった。 H8だったら最低2CHぐらいはuartが搭載されてるでしょ。 dmp <ff010><ret> と入力したら、そのCHに FF010 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 <CR><LF> と表示させる。上のはFF010番地に DC '0123456789ABCDEF' がある所を ダンプした例ね。
78 名前:73 mailto:sage [2012/05/30(水) 02:16:37.21 .net] ここがASMスレなのを忘れて書いてしまった。 コンパイラによって違うけど、ルネのだと dmp(変数) MOV.L #変数,ER0 JSR dmp dmp(変数,長さ) MOV.L #変数,ER0 MOV.W #長さ,R1 (16bitで充分、8bitでも可) JSR dmp となります。
79 名前:デフォルトの名無しさん mailto:sage [2012/06/01(金) 10:18:13.79 .net] 返信遅くなりすみません 有益な情報ありがとうございます 是非この先使ってみたいと思います!
80 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 22:37:17.91 .net] すみません,アセンブラ単体でヒープ領域のメモリ確保ってできますか? アーキテクチャはlinux 2.6 on EM64T(およびPIC30F4012です.) (おそらく後者は不可能という結論は出ていますが,ついでなので質問です.) 前者は,call malloc等でC関数を呼べば実装できているんですが, Cランタイム非依存のlinux環境下では,int 0x80のシステムコールのみで ヒープ領域の確保,解放を行う必要性があると思っています. (システムコールなく,CPU命令で直接ヒープ領域にメモリ確保できれば十分です) わかる方いらっしゃるでしょうか
81 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 00:19:48.97 .net] >>79 >すみません,アセンブラ単体でヒープ領域のメモリ確保ってできますか? できますよ。 >アーキテクチャはlinux 2.6 on EM64T(およびPIC30F4012です.) どちらも当たり前にできますよ。
82 名前:80 mailto:sage [2012/06/12(火) 09:12:21.36 .net] >>80 それぞれのインストラクションコードってわかりますか? ggり方の問題なんでしょうけど,探しても見つかりません……
83 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 10:29:17.85 .net] >>80 騙してやるなよ可愛そうだろ. それとも本気で無知乙か?w >>79 PICのアーキテクチャ見てみろ.heap……ってか, レジスタ以外にメモリあるか? 別途メモリとか実装すればそれっぽいことはできるかもな. そもそもシングルタスクなのにメモリ空間を分ける意味がわからないが. AMD64はわからんが,linuxならシステムコールのリファレンスとか, libcの逆アセンブルを見ればいいんじゃないか?あとはggれ
84 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 11:52:54.05 .net] >>82 無知乙
85 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 16:32:20.11 .net] ページのフラグ変更すればいいんじゃね?
86 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 16:57:26.71 .net] >>82 >PICのアーキテクチャ見てみろ.heap……ってか, >レジスタ以外にメモリあるか? 別途メモリとか実装すればそれっぽいことはできるかもな. 「PIC heap malloc」とかでぐぐってみ? >そもそもシングルタスクなのにメモリ空間を分ける意味がわからないが. ハーバードアーキテクチャとタスクがどうこうは関係ない話だが? 本気で無知乙だな。
87 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 13:28:27.16 .net] 初心者スレで、初心者を愚弄する奴は来るな!
88 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 13:42:22.46 .net] 初心者スレってバカが知ったかでアドバイスするスレだったのか?
89 名前:デフォルトの名無しさん mailto:sage [2012/06/17(日) 15:25:43.26 .net] >>86 「初心者を愚弄」って、>>82 の >それとも本気で無知乙か?w みたいなこと?
90 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 16:22:44.16 .net] 32ビットのフラットメモリモデルの場合なのですが、アドレスを記述する際にセレクタを 指定しなかった場合、実行時に使われるセレクタはDSで合ってますか?
91 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 17:26:44.55 .net] 普通のアクセスは。 EIPによる命令フェッチはCSなのと、PUSHやPOPでのESPによるアクセスはSSだけど、 他に例外はあったかな。
92 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 17:32:00.51 .net] ebpはssだろうし ストリング命令でのdiはesだと思う。
93 名前:デフォルトの名無しさん mailto:sage [2012/06/29(金) 18:14:35.79 .net] フラットモデルは CS==DS==SS==ESというキチガイモデル LDTでプロセス毎のメモリ空間を確保 まあお陰で楽と言えば楽なんだが
94 名前:デフォルトの名無しさん mailto:sage [2012/07/04(水) 01:17:53.26 .net] >>90-92 大変よくわかりました、ありがとうございます
95 名前:デフォルトの名無しさん [2012/07/06(金) 01:32:49.84 .net] 秋に基本情報を受けようと思ってるのでCASL2の勉強をしようと思うのですが、お勧めの参考書かサイトないでしょうか? あとまったく知識ゼロの状態でCASL2を勉強して合格しようと思ったら どれぐらいの期間かかりますか?(CASL以外の時間は含まず)
96 名前:デフォルトの名無しさん mailto:sage [2012/07/06(金) 01:40:51.02 .net] >>94 何かひとつ実際のアセンブラが使えればCASLなんて屁でもないので CASLの勉強なんて無駄なので止めなさい。 今使ってるPCのアセンブラでも勉強したほうがはるかに有意義だから。
97 名前:デフォルトの名無しさん mailto:sage [2012/07/06(金) 08:45:26.33 .net] >>94 人による、としか。 CASL2自体を覚えるのはそんなに掛からないよ。 早い人ならそもそも試験会場で問題冊子に書かれた仕様と問題文から覚えちゃう。 苦手な人でも、一年やって仕様自体が頭に入ってない人は稀だろう。 問題となるのはそこからの応用力だから、そればかりは本当にその人次第だねえ。 応用できちゃう人は覚えた瞬間からほぼ全問解けるだろうが 応用の苦手な人は問題集で色んなパターンを覚えるしかない。
98 名前:94 [2012/07/06(金) 22:01:30.66 .net] レスありがとうございます >>95 そうなんですか…CASLが勉強時間も短くて、試験にも通りやすいと聞いたので 選択しようと思ってたのですが、今後役に立たない知識ならば別のを選択したほうがいいですかね… >>96 試験本番で仕様を読んで合格する人ってすごいですね…
99 名前:デフォルトの名無しさん mailto:sage [2012/07/06(金) 23:20:43.78 .net] >>97 まあ、合格するまではやってみてもいいんじゃね
100 名前:デフォルトの名無しさん [2012/07/09(月) 13:16:53.86 .net] すみません最近勉強しだした、ど素人なんですが MAIN START OUT BUF,LEN RET BUF DC 'Hello, World!' LEN DC 13 END Hello,Worldって表示させるだけなんですが、 BUF DC 'Hello, World!' LEN DC 13 この二つを MAIN START と OUT BUF,LEN の間に記述したら駄目なんでしょうか? 流れ的にはラベルBUFにHello,World、LENに13と宣言してからOUTで出力させるような気がするのですが C言語とはアルゴリズムが全然違うんでしょうか? 私が買った参考書にも特に説明もありませんでした。 出力の後に宣言があるので、なぜそうなるのかどなたか教えてください。お願いします ちなみにこのプログラムは以下のサイトから抜粋しました www.officedaytime.com/dcasl2/pguide/chapter1f.html
101 名前:デフォルトの名無しさん mailto:sage [2012/07/09(月) 13:51:18.05 .net] アセンブラの場合、データ(BUF DC 'Hello, World!' / LEN DC 13)も、メモリの その場所に置かれてしまうので、もしMAIN STARTの後に置いたら、 その文字コードを命令とみなして実行してしまうのでめちゃめちゃになる。
102 名前:デフォルトの名無しさん mailto:sage [2012/07/09(月) 13:55:58.49 .net] >>99 >BUF DC 'Hello, World!' >LEN DC 13 >この二つを >MAIN START と OUT BUF,LEN の間に記述したら駄目なんでしょうか? セグメントの記述をキッチリしてればおk