アセンブラ言語やマシン語は覚えておくべきですか?

1仕様書無しさん
垢版 |
2009/06/12(金) 19:54:03
c言語だけ、理解していれば、プログラマーとして、大丈夫なのでしょうか?
2009/06/14(日) 16:49:29
>>82
それはフォンノイマン型コンピュータの話だろう。
いずれちょびっツに出てくるようなパソコンが主流となる。
そうなれば機械語は終わりだ。
2009/06/14(日) 16:56:17
>>83
生きてるうちにちょびっつが完成したらいいなー
無理だろうなorz
2009/06/14(日) 18:36:05
>>83
intelがあの調子じゃ今世紀一杯(あと91年)は無理だろw
2009/06/14(日) 18:45:21
アセンブラぐらいマニュアル見ながら読めるのが普通だろ。ユーザーレポートのレジスタ値見ても障害解析できねーじゃないか。

何も上級シスアド受かれとか言ってるわけじゃないし、基本だけ知ってれば何とでもなる。2日で覚えれるさ。
2009/06/14(日) 18:50:26
C言語「覚えた」の基準は、構造化やモジュール結合度の概念が身についてないと何の意味もないよね。
2009/06/14(日) 20:34:04
>>85
つまりドラえもんの時代まで待てということか
2009/06/15(月) 23:07:49
簡単なアセンブラぐらいできないんだったら、
プログラマやめたほうがいいだろ。
アセンブラでアプリ1本作るというのなら、大変だけど。
90仕様書無しさん
垢版 |
2009/06/16(火) 08:12:49
>>67
 >> OSですら500万STEPだぞ。

君ねー、OS書いたことないの、バレバレだよーん。
その君の言ってるOSって、まあ、基本的なドライバは
含めるとしても、ExcelやWordは入ってないよな?(笑)
2009/06/16(火) 10:04:26
つーか、マイコンやれば簡単な電子回路も学べるし
アセンブラも学べるしドライバが何やってるかもよくわかるし
PCだけやってても技術者にはなれない
2009/06/16(火) 10:35:19
>>65
糞ソースwwwwwwwwwwwwww
2009/06/16(火) 22:37:58
つーか、自分でCPU作ってCコンパイラを作らなければいいんだよ
2009/06/16(火) 22:39:55
>>54
> 引数をスタックでわたすかレジスターで渡すかの違いがわかるのは大きい
> わけねーだろ!

組み込みだと結構気にしますが。
関数の第一引数はint型であれば、レジスタ渡しを優先的に選択するマイコンとか。
知らないと損をすることがあるので違うマイコンをはじめて使う時は
このあたりのことから勉強してます。
2009/06/16(火) 22:47:52
>>94
それはマイコンがどうとか言うより、そのマイコンのCコンパイラの癖じゃないのか。
9694
垢版 |
2009/06/16(火) 22:49:59
>>95
> >>94
> それはマイコンがどうとか言うより、そのマイコンのCコンパイラの癖じゃないのか。

そうですね正確にはそういうことです
2009/06/16(火) 22:57:48
-O -fomit-frame-pointer -fforce-register
ってやれば出来るだけスタック渡ししてくれるでそ
2009/06/16(火) 23:01:17
まちがえた 出来るだけレジスタ渡し、ね
99仕様書無しさん
垢版 |
2009/06/17(水) 02:45:46
組込みマイコンでもGCC使えないのは、もうモチベーション出ないな。
2009/06/17(水) 02:50:16
GCCがあってもむしろアセンブラでガリガリ書きたい石もある。
ColdFireとか。
101仕様書無しさん
垢版 |
2009/06/17(水) 04:47:33
>>1

アセンブラはプログラマーとして必需言語です。
主にSIMDを使った最適化や、難読化に使います。
102仕様書無しさん
垢版 |
2009/06/17(水) 05:29:38
>>65
10万ステップの内、実際実行されるステップ数が1000行で残りはゴミとか容量気にしないアホが作るとこうなるんだな
あとオブジェクト指向言語から始めた奴なんかも容量まったく気にしてないしな
携帯500万行っていってっけど、ゴミがわんさかwww
103仕様書無しさん
垢版 |
2009/06/17(水) 08:00:33
アセンブラなどは、大工で云えば「カンナ使った面仕上げや、カナヅチ使った釘打ちの技など」だよ。

今の住宅建設では、ほとんど使わないだろ。
工場で面仕上げ済みだし、釘は電動釘打ち機で打つ。
プレハブ方式で、ユニットを組み上げるイメージで建設してる。
だから、ド素人に近い大工でも使えてる。

ソフト業界も似たことやってるよな。
素人の若いの集めて、生産性の高い最新言語を即席で教え込んで
バカスカとアホなコード粗製濫造して、何とかシステムを完成に持ち込んでいる。

やっぱ、カンナも使えない釘打ちもできないじゃあ、大工じゃないよな。
細かな調整や裏技のためには必須だろ?
2009/06/17(水) 10:08:02
>>103
きわめて同意。
なんだか自分たちが頑固オヤジになった気分だなあ。
でも、ほんとうに速度やメモリ効率を重視される時が来たら、出番があると信じてるが。
105仕様書無しさん
垢版 |
2009/06/17(水) 10:08:21
昔話 まだ仮想記憶でなかったメインフレームの頃

初心者〜低レベルプログラマーの書くCOBOLプログラムが原因不明のアドレスエラーで
落ちるケースが続出した。
ソースを読むと、一見落ちる理由がない。
あるとすればテーブルの添え字がゾーン形式であることくらい。
ま、やってみよう、とその添え字をパック形式やバイナリー形式に直すと、OK。
初めのうち首をひねった。落ちないプログラムもあるのだ。

落ちたプログラムのオブジェクトリストを出して追跡してみて、ようやくわかった。
FILE-CONTROLの4番目以降に記述したファイルのフィールドに対してゾーン形式の
添え字を使うとレジスターのやりくりがつかなくなって落ちるということ。

すぐにメーカーに現象を連絡し、各プログラマーにはゾーン形式の添え字を使うなと厳命。

仮想記憶コンピューターが入った頃転勤したので、その後どうなったかは知らない。
2009/06/17(水) 15:04:32
コンパイラも同時進行で作ってるような出来立てのホヤホヤの石とかで
新規で構築するとかなら、アセンブラ必要だな。
2009/06/17(水) 17:26:20
マシンの性能が良くなり、メモリもいくらでも使える時代なんだから
アセンブラなど不要。

…と思ってる馬鹿はおらんか?w
108仕様書無しさん
垢版 |
2009/06/17(水) 17:47:20
新しい石ができれば最小限誰かがどこかで機械語を使わなきゃならんのだがな
2009/06/17(水) 18:10:15
新規の石はむしろコンパイラの不具合が出切ってないから、実地で修正でバッグしなならん。
コンパイラの吐き出すコードが正しいかどうかを検証する事もしばしば。
2009/06/17(水) 23:55:09
オープン系のもれにはなんで枯れたコンパイラがあるCPUを使わないのか
不思議でならない。
2009/06/18(木) 01:44:21
>>110

組み込みだとそういう理由でハードを選定しないからかと。
大概、基盤の搭載性とかコストでほぼ決まる。
11299
垢版 |
2009/06/18(木) 03:07:12
組込制御系だけど、>>110みたいな理由でGCCの使えない案件(石)は
もうヌルーすることにしてる。GCCだけでなく、gdbやmakeも含めて。
石に依存した新しいIDEの突っつき方ばかり次々と憶えるのが馬鹿らしい。
アルゴリズムやOS, TCP/IPとかのプロトコルの使いこなしをマスターする
方が学習コスト/パフォーマンスが良い。

>>103
>工場で面仕上げ済みだし
今は工場も派遣のド素人がツールやライブラリ作ってるんだぜw
それをド素人の派遣SEにOOPで組立てさせるorさせたことにする
などという粗製乱造に拍車が掛かってる。
2009/06/18(木) 07:17:16
>>104
>でも、ほんとうに速度やメモリ効率を重視される時が来たら、出番があると信じてるが。

組込では無いが、マルチスレッドで作ることを強制される時代が近いはず
高級言語でも俺達の持つ枯れた知識の出番も近づいていると思うんだけど。


あ、異動してPGではなかったonz
2009/06/18(木) 07:25:18
マルチスレッドなんてもう使いまくりでしょ業務系は
2009/06/18(木) 09:04:51
DBとかのミドルウェアでは使われてるだろうけど、業務系プログラミングではほとんど使ってない。
というか、使う場面が無い。

>>113
並列処理の知識って、あまり広まってなくね?
教科書とか論文とか読み始めてはいるが。。
2009/06/19(金) 00:16:08
組込制御系でも、32bitの石を使うような案件だと、
もうマルチスッドレぐらい使いまくり。
空ループ禁止とか、mutexやセマフォなんかの排他/同期
手法ぐらい理解しといてくれ。
2009/06/19(金) 04:03:53
>>114
なんかのサーバープログラムではマルチスレッドなしでは無理。
でもクライアント画面とかにマルチスレッドが必要?
2009/06/19(金) 08:36:29
>>117
クライアントでもストレスない操作性を実装しようと
思ったらマルチスレッド使うよ。
何かするたびにユーザーを待たせてもいいなら使わないけどね。
2009/06/19(金) 18:20:34
マルチスレッドなんて使わなくても、実装方法一つで幾らでも解決できるのにね。
2009/06/19(金) 18:46:28
でもマルチスレッドのほうが楽でしょ?
2009/06/19(金) 18:50:08
目的による。
マルチスレッドにするコストってのはあるからなぁ
むしろ単にループを工夫するだけで目的達成できればそっちの方が楽なのはある。
2009/06/19(金) 21:32:30
>>110
このページには聞いたことないCPUの名前がいっぱい出てくる
http://it.nikkei.co.jp/mobile/news/index.aspx?n=MMIT0f000017062009&landing=Next
2009/06/20(土) 00:44:28
全部ARMだろう。
2009/06/20(土) 06:00:03
モバイルはだいたいARMかSHの互換だな
全く独自ってのはまずない
2009/06/20(土) 07:06:27
>>117
PC-機器とのタイマー監視アプリとかで必要でね?

2009/06/20(土) 08:35:55
リアルタイム性が重要なのはマルチスレッドにしてプロセス数上げるより
シングルスレッドで安定性重視なんじゃないのか
2009/06/21(日) 22:01:12
>>126

いまだにRTOS乗ってない案件やってます。
2009/06/23(火) 16:06:39
OSの不要な組み込み機器はいっぱいあるぞ。
だいいち、RTだけが必要でOS部分なんて不要なんだよな
2009/06/24(水) 08:41:47
っていうかOSがあるほうがめずらしいだろ
2009/06/24(水) 13:08:56
>>129
そこまで言うと無知丸出し
2009/06/24(水) 14:01:59
ちっこいのしか相手してなきゃそうなるんでないかい。

俺も自前マルチタスクモニタ持ち出す方が多いかもしれん。
最近はめっきり減ってしまったが…
2009/06/25(木) 01:32:24
汎用機を使用した開発では、COBOLやPL/Iブログラムの性能が出ない時にアセンブラをコンパイラに出力させて、ホットスポットの解析を行うことがあります。

ソースコード上は問題無いようにみえても、アセンブラのステップ数がかさんでいたりする問題などを検出するためです。

※コンパイラが出力するのは、正確には擬似アセンブラです。コンパイルリストと呼ばれています。

なにが言いたいかというと、汎用機の開発ではまだまだアセンブラが現役のスキルとして重宝されているので、そっち系の仕事をするならば勉強して損はありません。
2009/06/25(木) 04:38:07
組込作ってる会社でもアセンブラできない人は結構いる.
チーム(開発)違うのに解析・最適化頼まれる事も ;P

おまいら!

別に自分がアセンブラできなくても,
好きな奴がやってくれるからイイヤって思ってないか?

「アセンブラ扱える」
=「アセンブラでハァハァできる奴」
=「お金と時間とアセンブラコード渡せば
喜んで解析・最適化してくれる」
と勘違いしてないか?

・・・いや確かにそうかもしれないが,
本見ながら, 読める程度にはなろうぜ!
2009/06/25(木) 12:11:46
汎用機でアセンブラソースをメンテした事が2回ある
可変長レコードファイル出力と単なる帳票出力
後者でCOBOLを使わなかった理由は知らん
2009/06/25(木) 17:19:10
処理速度をウリにしてたんだろうきっと。
136仕様書無しさん
垢版 |
2009/07/01(水) 07:08:45
昔話だが、俺のいた電子計算室ではCOBOLを開発言語と決めていた。
ところがあるチームが室長に黙ってアセンブラで業務を書き換えた。
発覚したとき「これはアセンブラでなければ書けない」と言い訳をした。

その後、他のチームの人は2〜3年でどんどん人事異動で入れ替わってゆくのに
そこは5年間人事異動なし、10年後にCOBOLで書き換えられるまで
半数が異動できなかった。
2009/07/01(水) 08:36:17
俺もC++とアセンブリ言語併用してそういうことやってるよ
他の人間には理解できないように作るのは保身の基本だと思ってる
138仕様書無しさん
垢版 |
2009/07/01(水) 10:49:16
それは止めとけ。 

「策士策に溺れる」「上手の手から水が漏れる」って昔から云うだろ。
バグを誘引して、自滅する。
2009/07/01(水) 10:56:06
アセンブリって一番簡単な言語なのになぁ
140仕様書無しさん
垢版 |
2009/07/01(水) 11:03:42
アセンブリって一番原始的な言語なのになぁ
2009/07/01(水) 11:07:50
原始的だから一番簡単なんだよなぁ
2009/07/01(水) 11:14:02
簡単過ぎて難しい
何をやってるかが理解出来るまで少し読むだけでは理解出来ない
143仕様書無しさん
垢版 |
2009/07/01(水) 11:25:26
FORTRANでやればなんでもない超多元配列など
アセンブラでどうやって書けっちゅうんだ!
2009/07/01(水) 21:46:32
>>143
[10][10][10][10]の多次元配列なら、
各最大要素 10*10*10*10 のメモリを確保しておいて、
[i1][i2][i3][i4]をアクセスするときは
basePoint + ( i1 * 1000 + i2 * 100 + i3 * 10 + i4 ) の中身を参照すればいいんでないか?

2009/07/02(木) 04:05:16
メモリ参照する度に乗算命令なんかコスト高すぎて使ってられねえ。
2009/07/02(木) 04:32:22
10は、(2*2+1)*2
2回シフトに元足して更に1回シフト。
4ステップだけど、いまどき乗算なんて1サイクルだからなぁ…
2009/07/02(木) 10:58:59
>>145
だから普通はループの外でアドレスレジスタを設定し
ループ内ではインクリメントで済むように書くわけですが。
2009/07/03(金) 00:26:36
デバッガによるx86プログラム解析入門 こういう本を理解するにはアセンブラやc言語をマスターしておかないと理解できないものなんですか?
2009/07/03(金) 03:11:36
そもそもプログラマ辞めろ
2009/07/03(金) 11:02:57
そうだそうだ
プログラマは少ないほうが俺の給料はよくなる
2009/07/03(金) 12:18:29
プログラマになりたいんじゃなくてゲーム解析したいだけっす
2009/07/03(金) 14:34:50
俺はエロゲ起動時のDVDチェックを外したいだけだぜ。
2009/07/03(金) 16:13:04
マスターなんてできるわきゃないから必要に応じて調べながら読めばいいだろ
154仕様書無しさん
垢版 |
2009/08/03(月) 08:58:21
IBM360アセンブラで育った俺にとっては
インテルのアセンブラはもうめちゃくちゃで理解不能な代物
2009/08/03(月) 13:49:05
老舗旅館の増築工事みたいなニーモニックだからな。
RISC系とは違うのさ。
2009/08/03(月) 16:20:48
醜さに納得は出来ないが、一応使う事はできる。
2009/08/03(月) 16:24:16
MN1610のマシン語から入った俺でも
インテル系くらい読めるが。
あんなもん慣れだ。
2009/08/03(月) 16:56:40
インテル系の石、拡張されないかな?
どの命令にも好きなアドレッシングモードで使える汎用レジスタ32本追加とか。
命令長固定な追加汎用レジスタ専用命令とか。
2009/08/04(火) 01:38:13
Z80と6809のマシン語やっててSystem370もいじってたけど
今の86系のはさっぱりだな
2009/08/04(火) 05:31:30
System360アーキは、コテコテのCISCだが。
そのCISCの中でもintelアーキは最悪に醜い。
i8080の時ですら醜いと思ったが、それの増築工事
の繰り返しだもんな。
MC68kに移った時は美しいと思ったが、RISCは
もっと美しかったな。個人的にはMIPSが一番好き
だが、最近はARMの案件が多いな。
2009/08/04(火) 13:23:00
SPARCやAlphaはx86より遥かに安定してるって聞いた時は
はぁ?CPUのアーキテクチャでそんなの変わんねーだろUNIX厨が
とか思っていたが、今は反省している
2009/08/04(火) 14:23:35
アーキの違いがそのまま発熱の違いになって、組み込みにARMが多いのもそんな感じで。
2009/08/04(火) 15:58:24
変わらなかったら誰も馬鹿高いSPARCなんて買わんわな
164仕様書無しさん
垢版 |
2009/08/05(水) 10:49:54
アセンブラのニーモックに対して疑問。
例えばmovl %esp, %ebp と書くから呪文ぽいんだよ。

32ビット値のムーブ レジスタ1 レジスタ2

と書ければ良いだけ。こういうアセンブラ作れば、小学生でも
機械語をマスター出来るようになる。なので誰か作れ。
簡単なはず。
165仕様書無しさん
垢版 |
2009/08/05(水) 10:54:01
>小学生でも機械語をマスター出来るようになる。

pu
2009/08/05(水) 11:12:11
発想がぴゅう太から進化してねぇw
167仕様書無しさん
垢版 |
2009/08/05(水) 11:40:39
>>166
俺の感じ方は逆で、ぴゅう太の時代から求められているのに
みんなめんどくさがってやってないだけだと思う。
2009/08/05(水) 12:56:43
そんな前から思ってたんなら自分でやれよとも思う
2009/08/05(水) 13:22:41
s/レジスタ1/eax/g
s/レジスタ2/ebx/g
s/レジスタ3/ecx/g
s/レジスタ4/edx/g
s/レジスタ5/esi/g
s/レジスタ6/edi/g
s/レジスタ7/esp/g
s/レジスタ8/ebp/g
s/8ビット値のムーブ/movb/g
s/16ビット値のムーブ/movw/g
s/32ビット値のムーブ/movl/g

あとはまかせた
2009/08/05(水) 13:30:55
>>167
>みんなめんどくさがって
>>164 は
>簡単なはず。
つってるけど?w
171仕様書無しさん
垢版 |
2009/08/05(水) 14:41:11
gasのソース落としてきたけど、オペコードを何処で定義してるの?
今Winしか触れない環境だから探すのが面倒。

というのが面倒、そりゃあ具烈婦使えば一発だろうけども、
もっといいツール探せばいくらでもなんぼでもあるし、そもそも
家に帰ればちゃんとツール一通りそろってるし。

というが面倒。
2009/08/05(水) 16:12:36
>>164
小学生の頃からZ80でハンドアセンブルしてた身としては、データシートさえ日本語で
書いてあれば、ニモニックは現状のままで何も問題はない。というか、小学生なめんな。
表記と意味の結びつけはわりと問題無くできるんだよ。手に入る資料と違う表記を強要
される方がよっぽど辛いわ。
それにアセンブリ言語自体は小学生にとってちっとも難しくない。糞設計の石だと
使えるレジスタやアドレッシングモードに変な制限があるから、機能を実装しようと
した時に、難しいと感じる事があるだけで。
2009/08/05(水) 21:34:38
日本語の何がダメって、入力するシステムを安定させるまでが大変。
2009/08/06(木) 12:35:33
それそれ。
Windowsが一番使われている理由もきっとそこが一番まともなOSだからだろう。
2009/08/06(木) 12:41:47
Windowsさえなければ、日本語処理はもっと楽になるのに。
176仕様書無しさん
垢版 |
2009/08/06(木) 19:13:14
>>1
日本語も理解出来ない奴は仕事があっても騙されるだけ、日本語も理解できる様にしなきゃ良い鴨だね。
177仕様書無しさん
垢版 |
2009/08/06(木) 19:46:21
これはやっとくべき?

さすがAMD! 業界初のx86 CPU対応OpenCLソフト開発プラットフォームを無償提供!!
ttp://tsushima.2ch.net/test/read.cgi/news/1249554674/
2009/08/06(木) 21:07:03
それでなくてもいいけど、OpenCLはやっとけ。
2009/08/07(金) 03:10:09
癖ありすぎて全然つかいものにならん。
180仕様書無しさん
垢版 |
2009/08/09(日) 14:29:50
アセンブリやる=人間やめる
2009/08/09(日) 14:32:02
ジサカーはにんげんじゃないわけか
2009/08/09(日) 20:52:48
神の領域w
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況