[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 06/24 11:52 / Filesize : 195 KB / Number-of Response : 910
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

アセンブラ… Part 12



1 名前:デフォルトの名無しさん [2007/08/14(火) 17:18:08 ]

アセンブラ全般に関するスレッドです。

【前スレ】
アセンブラ… ( ゚д゚)ウッウー
pc11.2ch.net/test/read.cgi/tech/1174825173/



833 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:07:07 ]
文法はアセンブラによって異なる
C言語のような決まりがあるわけではない
MASM/NASM/TASM/GASなど色々あるからそれに合う本を探せ

834 名前:829 mailto:sage [2008/09/09(火) 13:19:39 ]
>>832-833
有難うございます。実際に見て理解しやすそうな本を購入することにします。

835 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:42:15 ]
アセンブラで実際組むわけじゃなくどんな動作してるのか
見たいって程度ならCASLで十分じゃないか?

資料も豊富だし

836 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:20:41 ]
いまどきワードアドレッシングなアーキテクチャはおすすめしがたい

837 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 14:29:48 ]
なんで?

838 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:45:31 ]
>>831
文法って、
> 命令 レジスタ,メモリ;
ぐらいじゃない?
命令のこと?

839 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 02:09:47 ]
>>838
正直セグメント絡みの方言が色々あってわけわからなくね?

840 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 08:18:25 ]
疑似命令のバリエーションとか、
即値やレジスタ名の記法とか、
いろいろ違うけど?

ソースとデスティネーションの順序が違うというのもあるか。

841 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 08:44:36 ]
キャッシュとか絡んでくると・・・



842 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 09:03:59 ]
アキュムレータ丸出し、暗黙のレジスタ参照、直交性の無いアドレッシングですね、wkrms

843 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 16:31:58 ]
>>839
全然

844 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:03:23 ]
>>843
一体いくつのアセンブラ使えるのさ?

845 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 05:55:11 ]
>>839
セグメントなんてもう10年近く意識したことないが。
もうDOSの.EXEなんて作れねえな。

>>840
違うCPUだと思えば別に問題ない。


846 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 09:38:50 ]
ASSUMEの具体的な効果とかもう覚えてない

847 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 13:44:13 ]
USINGは覚えてる?

848 名前:デフォルトの名無しさん [2008/09/17(水) 02:06:26 ]
バイトでアセンブラやるんだけど
アセンブラて何

849 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 05:09:10 ]
馬鹿たれ、たとえバイトでもそんな質問がでてくるようなレベルの人間雇ったりしねえよ。


850 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 07:44:45 ]
工場のラインに並んで部品を組み立てる仕事じゃない?


851 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 10:49:10 ]
なるほど確かにアセンブルする人だな。



852 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 13:30:16 ]
そっちの分野ではアッセンブルって言うけど、ここは黙っておこう。

853 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 14:03:39 ]
斡旋ぶるぶる?

854 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 21:58:55 ]
汗バイブ

855 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 22:45:17 ]
未経験者でも大丈夫! やる気だけでOK!

仕事内容: アセンブラ プログラミング
※コンピュータの命令を並べていくだけの単純なお仕事です。

応募資格:
・経験不問
・学歴不問
・未経験者歓迎
・髪型自由
・フリーター歓迎

みたいな?


でもこれだけ見ると単純にネタ扱いできない現実味がw

856 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:17:06 ]
>>855
海外アウトソーシングとか実はそんなもんだったりしないよね?

857 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 01:04:33 ]
アセンブラの仕事をバイトでできるなんてすごいよね。
C言語とかをさらに訳の分からん言葉に翻訳する仕事なんでしょ?

858 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 01:48:15 ]
ある意味Cよりシンプルともいえる

859 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 02:20:33 ]
フラグを覚えりゃ後はバッチファイルレベルだしな。

860 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 07:15:13 ]
アセンブラって最適化できるのかな?

861 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 07:44:25 ]
>>860
Cコンパイラのようにはアセンブラが最適化することは通常無い。
但し、実際には使えないインストラクションを他のインストラクションに置き換えたり
相当するより速いインストラクションに置き換えたりするケースはある。

勿論、プログラマが自身で最適化する余地はいくらでもある。



862 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 13:28:40 ]
ブランチ命令のオフセットは最適化されるな。

863 名前:,,・´∀`・,,)っ-○●◎ mailto:sage [2008/09/20(土) 02:50:26 ]
おれ団子だけどRIP相対アドレッシングのうまい使い道教えれ

864 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 13:55:31 ]
今まで通り使えばいいのでは。

命令の近くにデータを置くとか
switchので等間隔に処理を並べて分岐とか今までのCPUだって出来るわけで
ただの命令長削減以外の何物でもないと思う。

865 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 19:01:04 ]

アブラカタブラアセンブラ

866 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 19:01:35 ]
やった
j規制かいじょされてるよー

867 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 12:08:55 ]
>>863
DLL再配置の手間が省けるってことはないの?

868 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2008/09/23(火) 12:42:52 ]
いやさ、Xbyakに追加してやったんはいいんだけど
あれってもともと動的生成じゃん


869 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 22:20:16 ]
なんか該当するスレが見つからないのでここで質問させていただきます

単純に与えられた回数分インクリメントして総和を求めるプログラムで時間をみつもろうとしました
カウンタのインクリメント分と結果となる値のインクリメント分でADDが2回、ジャンプが1回
どれも最小の1クロックで処理できるとすると1ループで4クロック

でこれをathlon64 3000+(2G)のCPUで10^9回まわすとすると
4*10^9 / 2.0*1024^3 = 1.862645149230957と概算を行いました

しかし実際にtimeを使って10^9, 10*10^9の場合を計った結果は1.00と1.42
そこから求めるとかかった時間は0.42/9=0.046..
ディスアセンブルしてもADD*2,CMP,JNEの繰り返しになってました

どう考えても1クロックの間に1以上の命令が実行されてるわけなんですが
こういう動作が前提だとするとどうやって実行時間を見積もればいいんでしょうか?

870 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 22:24:33 ]
IPCも知らんのか

871 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 22:52:15 ]
Intelの資料によれば(AMDじゃなくてすまそ)、
ADD命令は0.5クロックで、ALUは2器載ってるらしいから、
1クロックでADDを4つ実行できることになるな



872 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2008/09/26(金) 22:53:59 ]
>>871
ニヤニヤ

873 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 23:00:06 ]
後は任せた

874 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 23:07:29 ]
まあ、そもそも命令数とクロックから実行時間を見積もろうとするが大馬鹿なんだが。

875 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2008/09/27(土) 02:01:31 ]
っていうかさ、Pentium 4はパイプラインが3 issueなのに、4つ実行なんてどうやるんだよ。
日本語資料じたいが相当旧いし



876 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 03:03:13 ]
確かに日本語版のIA-32 インテル アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアルの
本書の対象となるIA-32プロセッサの中にcore2duoとかの文字が無い。
やっぱ最新版は英語じゃないとだめなのか。

877 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 07:33:50 ]
>>874
いやあでも、こうやって一つ賢くなれるんだからいいんじゃねーの?
それより見積もりも出来ないで、処理がハードウェアの能力と釣り合っているかを考えない方が大馬鹿者。

現代のCPUで処理に必要なクロック数を机上で計算するのが難しいとしても
プロファイル取ってIPCを見たりはするし、それによって局所的にどの命令が
ボトルネックかを考える事もある。
机上という静的な方から攻めるか、プロファイルという動的な方から攻めるかの違いで、たどり着くところは一緒。

878 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2008/09/27(土) 08:43:46 ]
Agner.orgを参考にしたらいいと思う

879 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 16:50:24 ]
VC++でint cx; と変数を宣言して、
インラインアセンブラでcmp eax,cx と書いてエラーになったから助かった。
imul ebx,cx はimul ebx,ecx にコンパイルされてエラーになっておらず、
危うくハマるところだった。

880 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2008/10/02(木) 00:41:47 ]
「goto」というシンボルすら作らせないJavaは徹底してる。

881 名前:デフォルトの名無しさん [2008/10/22(水) 14:04:06 ]
オペランドの前に=が付くとどういう意味があるんですか。
教えてください。



882 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 14:42:54 ]
どの石のなんてアセンブラかわからないと答えようがない

883 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 01:42:12 ]
gcc asm の制約のことだったりして。

884 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 11:41:49 ]
たぶん、リテラルのことでしょう。名無しの定数が作られる。昔のメインフレームのASMなんかで
  LD  R0,=F'00F0'  とか書くと、フルワードの 000000F0h という定数がどこかに作られて
それをアクセスするアドレッシングが命令に組み込まれる。

885 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 21:19:28 ]
CPU:Intel 8085

(1) [80A1h] ← (B+C)*2-[80A0h]*3 オーバーフローは考慮不要
(2) [80B3h] [80B2h] ←[80B0h] +[80B1h] *2    和を16ビットで求める(分岐命令を使用してもよい)
(3) A ← B ・C + H ・L (論理演算)

これらを実行するプログラムを教えてください。
よろしくお願いします

886 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 23:19:24 ]
>>885
(3)
170o
241o
107o
174o
245o
260o

887 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 23:29:15 ]
>>885
(1)
041o 0a0h 80h
170o
201o
207o
226o
226o
226o
043o
167o

888 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 23:35:13 ]
>>885
(2)
052o 0b0h 80h
051o
042o 0b2h 80h

889 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 00:28:09 ]
>>886-888
ありがとうございます。
すごくありがたいのですが、私の知識不足のせいで思っていた結果ではありませんでした。

.8085
ASEG
ORG    8000h
LDA D1
LXI    H,D2

のような形で、もう一度教えてもらえませんか?
頼ってばかりで申し訳ないのですが、よろしくお願いします

890 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 01:29:31 ]
なんという攻防戦

891 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 04:55:46 ]
>>889 ほれ。アセンブルリスト。エラーも取れてる
        CSEG
    ;(1) [80A1h] ← (B+C)*2-[80A0h]*3 オーバーフローは考慮不要
0000 78         MOV    A,B
0001 81         ADD    C    ; (B+C)
0002 87         ADD    A    ; *2
0003 F5         PUSH    PSW    ; を退避
0004 21A080         LXI    H,80A0h
0007 7E         MOV    A,M
0008 86         ADD    M
0009 86         ADD    M    ; *3
000A 6F         MOV    L,A    ; をLに
000B F1         POP    PSW    ; (B+C)*2を復元
000C 95         SUB    L    ; 引き算
000D 32A180         STA    80A1h    ; 結果をストア



892 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 04:57:03 ]
    ;(2) [80B3h] [80B2h] ←[80B0h] +[80B1h] *2 和を16ビットで求める(分岐命令を使用してもよい)
0010 3AB180         LDA    80B1h
0013 6F         MOV    L,A
0014 2600         MVI    H,0
0016 29         DAD    H    ; [80B1h] *2
0017 11B080         LXI    D,80B0h
001A 1A         LDAX    D
001B 4F         MOV    C,A
001C 0600         MVI    B,0    ; [80B0h]の内容を16bitに
001E 09         DAD    B    ; HLに16bitで加算
001F 22B280         SHLD    80B2h    ; 結果をストア

893 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 04:58:52 ]
    ;(3) A ← B ・C + H ・L (論理演算)
0022 78         MOV    A,B
0023 A1         ANA    C
0024 5F         MOV    E,A    ; B・Cを退避
0025 7C         MOV    A,H
0026 A5         ANA    L    ; H・L
0027 B3         ORA    E    ; H・L+B・C
0028         END
最後の行は ADD E かもしらん。論理演算とのことでORAにしといた。

894 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 09:48:11 ]
なんという親切回答


895 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 15:56:43 ]
ありがとうございます。
助かりました

896 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:07:01 ]
どういたしまして。実際には、(1)の問題も、8bit加算→9bit、8bit*3→10bitになるので、
(2)のようにHLに結果を保持する手法のほうが一般的です。
最終結果が8bitでいいなら、Lレジスタのほうだけを使えばいいので。

897 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 03:16:05 ]
>>885
KITの学生のお前にひとつ忠告しておくが、
過去ログくらい見ろwwwwwwwww

特に↓
>>137-167

今更忠告してももう遅いかもしれねぇけどな。レポートの提出は明日だっけ?笑


898 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 03:40:04 ]
うぁはは、丁度1年なのねw

899 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 08:29:19 ]
うひょーーーーー


いまからレポートやろうと思ったらちょうど良いものみつけたーーーーーーー




さんきゅーーーーーーーー

900 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 11:02:57 ]
KITは8085なのか

901 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 20:17:42 ]
KITはレベルが低いな

さすがFランク



902 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 20:22:04 ]
ナイトライダーかと思ったらスパルタFランクか

903 名前:デフォルトの名無しさん mailto:sage [2008/10/29(水) 22:15:47 ]
おまいら
レポート提出はできたのか?


落第しないよう頑張れよwwwwwwwwwwwwwwwww

904 名前: ◆0uxK91AxII mailto:sage [2008/10/30(木) 05:53:46 ]
東洋経済の本当に強い大学ランキング19位。
( ゚,_J゚)

905 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 10:12:17 ]
機械語教育が8085だからってレベル低いとは思えんが
お約束のようにこのスレに質問があるのはどうかと思うが

906 名前:896 mailto:sage [2008/10/30(木) 13:29:33 ]
とほほ 165-166のレスしたのは俺だったよ。1年前のコードのほうが896の示唆守ってるし・・・

907 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 16:28:53 ]
Wikipedia「アルベルト・アインシュタイン」より
>>簡単な数字や記号を記憶することが苦手だったとされる。ある新聞社のインタビューの中で、光速度の数値を答えられず、記者から揶揄されると「本やノートに書いてあることをどうして憶えておかなければならないのかね?」とやりかえしたという。

KITの学生曰く「ネットで簡単に教えてもらえることをどうして自分で考えなければならないのかね?」ってとこだな。
KITの学生はアインシュタインより進んでるってことだ、多分。

908 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 16:38:58 ]
手元にある本やノートはページを開けば数秒〜十数秒ほどで情報を得られるが、
ネットで教えてもらうには数分〜数日かかるわけで、
そのタイムロスが許容範囲かどうかってことだ、多分。

909 名前:デフォルトの名無しさん mailto:sage [2008/10/30(木) 16:46:39 ]
手元にある本やノートに書いてある情報からでは解答を導き出せない、
自力で解こうにも数分〜数日かけても解答を導き出せない、
となるともう誰かに教えを乞うか潔く落第するしかないもんな。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<195KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef