RIOT_ON_THE_KEYBOARD 新米プログラマ奮闘記

うつ病と向き合いながらプログラマとして社会人デビューするも、病気の悪化により無念のリタイア。 そんな管理人が社会復帰に向け、徒然なるままに綴るブログです。過去記事へのコメント・トラバも大歓迎!

FC2カウンター

カレンダー

09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

プロフィール

必作仕事人マオマオ

Author:必作仕事人マオマオ


沖縄在住。2X歳・男
進路が定まらないまま大学を卒業。公共職業訓練に通うも、在籍中に「うつ病」を発症。

ココロの病気と向き合いながら、ついに内定ゲット。’06年4月からはプログラマとして社会人デビュー。

しかしながら病気の悪化で無念のリタイア。

現在は沖縄でノンビリと療養中。

そんな管理人「必作仕事人マオマオ」が、日々の出来事・職業訓練・闘病記・果ては下ネタ妄想まで(笑)、タイトル
"RIOT_ON_THE_KEYBOARD"
(キーボード上の暴動)

の通り、徒然なるままに綴るブログです。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

ブロとも申請フォーム

--/--/-- --:--|スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2006/01/13 02:01|職業訓練TB:0CM:0
久しぶりに職業訓練の話を。

今回は2ヶ月目に受けたアセンブラについてお送りします。

具体的な内容に進む前に、プログラム言語における「高級言語」「低級言語」について説明させてもらいます。

プログラム言語には、C言語・C++(シープラスプラス:略してシープラプラ)・JAVA(ジャバ)・アセンブラなど、様々な言語があります。

どの言語も、コンピューターに対し、「こういう処理をしなさい」と命令している点に変わりはありません。

なら、その違いはどこにあるのかと言いますと、「プログラムが、組んでいる人間にとって理解しやすいものであるかどうか」と言うことになります。(他にも「クラス設定が必要」とか、各言語ごとに違いはありますが、ここでは省きます。)

例えばC言語ですと、“if else文”なんて文法が出てきます。
「もし入力された数値がAだったら、処理Xを実行しなさい。A以外の場合は、処理Yを実行しなさい。」といった命令文です。
これは、プログラムを組む人間にとっても理解しやすい表記法です。

しかし、このように英単語を用いて分かりやすく書かれたプログラムも、最終的にはコンピューターが分かる言語、すなわち、0(=電気を流さない)・1(=電気を流す)の組み合わせに変換されます

ちなみに、プログラムを0と1の電気信号に置き換える役割を担うものを、コンパイラと呼びます。
これも、一種のプログラムです。

話が込み入ってしまいましたが、プログラムにおいて、「人間が理解しやすい表記法を取るもの」を「高級言語」と呼び、「コンピューター側の視点に立ったもの」を「低級言語」と呼びます
「高級」・「低級」という呼称は、決して、プログラム的に優れている・劣っているを示すものではありません。

で、職業訓練2ヶ月目には、マイコンの1つ“SH3(エスエイチスリー)”と、それの処理に使われる低級言語の1つであるアセンブラについて学んだわけです。

これが難しいのなんのって・・・。


まず授業は、0と1の組み合わせからなる2進数について学びました。

2進数というのは、1桁目は2の0乗、2桁目は2の1乗、3桁目は2の2乗を表し・・・という数の記述法です。

例えば、10進数(日常で使われている、10になると桁が1つ繰り上がる表記法です)の“5”は、2進数に直すと、“2の2乗=4が1つ、2の1乗=2が0個、2の0乗=1が1つ”となり、“101”と表記される、と言った具合です。

ちなみに、2進数の1桁のことを“1ビット”と言い、8桁を一纏りとして“1バイト”と表現します

この“バイト”と言う表現は、CD-RやUSBフラッシュメモリの記憶容量として目にした方も多いと思います。
例えば256MBの記憶容量ですと、256×1024×1024×8=2’147’483’648、すなわち、21億4748万3648個の0と1のデジタル信号を記憶できる容量があると言うことになります。


この辺で頭がバクハツしかけてる人もいるでしょうが、まだまだ続きますよ。(笑)

さらに、2進数では桁が大きくなるので、2進数4桁分を1つにまとめた16進数なる表記法も習いました。

これは、0~9までは普通の10進数と同じ、後は、A=10、B=11、C=12、D=13,E=14、F=15とみなして表記するという方法です。


さて、16進数まで習ったところで、いざプログラミング実習開始。

でもこれが、さっぱり分からないんです

アセンブラと言うのが、マイコン向けに開発された低級言語なので、どんな処理をやってるのかさっぱり分からないんです。

SH3というマイコンには、データを保存しておく“レジスタ”と呼ばれる部分があるそうなんですが、「mov命令を用いてレジスタ間でデータのやり取りを行え」って、やってられるかああああ! 意味分からんわ!

その頃は、うつ病が悪化して、理解力も記憶力も何もかも低下していた時期でした。

でもってこの超難解なアセンブラ。

精神的に健康な他の受講生の方々も、口をそろえて「難しい」と言っていたこの言語。

・・・無理だって。
ただでさえ頭の回転が鈍っているオイラに、この言語を理解するのは無理だって。


と言うわけで、合格通知を受け取ったときの決意はどこへやら。
盆休みを挟んで後半からは、授業も休みがちになりました。


ちなみにこのアセンブラ、現在は先ほど述べたコンパイラ(プログラムをコンピューターが理解できる0と1の電気信号に置き換える装置)の性能が向上したことにより、実際のマイコン開発の現場では使われることが少なくなっているそうです。
ホッとする話です。


記事を読んで「面白い」とお思いになった方、1クリックお願いします。
人気ブログランキングへ→人気ブログランキングへ

スポンサーサイト
コメント
コメントの投稿

管理者にだけ表示を許可する

トラックバック

カテゴリー

リンク

メールフォーム

名前:
メール:
件名:
本文:

ブログ内検索

RSSフィード

Copyright(C) 2006 RIOT_ON_THE_KEYBOARD 新米プログラマ奮闘記 All Rights Reserved.
Powered by FC2ブログ. template designed by 遥かなるわらしべ長者への挑戦.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。