paiza times

paizaがお届けする、テック・キャリア・マネジメント領域における「今必要な情報」を届けるWebメディア

logo

paizaがお届けする、テック・キャリア・マネジメント領域の「今必要な情報」を届けるWebメディア

初心者向け・アセンブラで学ぶ「コンピュータの動作原理」の基礎

f:id:paiza:20200702013956j:plain
Gerd AltmannによるPixabayからの画像

f:id:paiza:20180910132940p:plainこんにちは。倉内です。

皆さんは「コンピュータがなぜ動くのか」を考えたことはありますか?

もちろん動作原理を知らなくてもコンピュータを使うことはできますが、ITエンジニアとしてメモリやCPU、入出力装置、それらの役割と仕組みなどハードウェア部分の理解を深めておいて損はありません。

とはいえ情報系以外の専攻ですと体系的に学ぶ機会はなかなかありませんし、テキスト片手に独学するのも結難しい分野で「いつか勉強しよう…」と思いつつ手をつけられていない方も多いですよね。

そこで今回は、paizaラーニングに新しく登場した「情報処理入門 アセンブラ言語編」の動画講座を使って分かりやすく解説していきます!


コンピュータの動作と「アセンブラ」の役割

コンピュータは簡単に表すとこのような構成になっていて、特に重要なのがCPUとメモリの役割です。

CPUやメモリは普通にコンピュータを使う際にもよく登場する単語なので耳馴染みはあるかと思いますが、どのような仕組みになっているかも大まかに把握しておきましょう。

CPU(Central Processing Unit):中央処理装置…コンピュータ全体の制御と演算などを担当

メモリ:主記憶装置…プログラムの実行時に、CPUが処理するコードやデータを一時的に記憶

その役割からコンピュータの頭脳とも呼ばれるCPUですが、2進数で表されたマシン語(機械語)しか理解できません。しかし、私たちがCPUに処理を実行させたいとき「0」と「1」だけを使って命令を与えるのはかなり大変です。

実はpaizaで連載している4コマ漫画「ぱいじょ!」に登場するつばめちゃんはマシン語が大好きなので……

20200702023028
Picture by ITエンジニアを目指す女子高生たちの学園ライフ4コマ漫画『ぱいじょ!』

直接マシン語を書いちゃいそうな勢いですが、私たち普通の人間には難しいので、そこで登場するのが1コマ目につばめちゃんが言っている「アセンブラ言語」(アセンブリ言語)です。

アセンブラ言語は、マシン語にほぼ1対1で対応したプログラミング言語で、マシン語よりは人間にとって理解しやすい記述にすることができます。

そしてアセンブラ言語のコードをマシン語に変換するプログラムを「アセンブラ」といいます。

20200702103134

ちなみにアセンブラ言語でプログラミングをする際には、2進数と16進数の知識があったほうがよいです。「05:2進数と16進数をおさらいしよう」で学習できますのでごらんください。

アセンブラ言語でプログラム作成

この講座ではさきほど紹介した、アセンブラ言語を実際に書いて実行する演習もあります。

環境構築は不要でブラウザで実行できるよう環境を用意しているので、下の図のように動画の解説(画面左側)を見ながらすぐにアセンブラ言語でのプログラム作成を試す(画面右側)ことができます。

20200702111628

今回は基本情報技術者試験のために開発された、「COMETⅡ」という16ビットの仮想コンピュータと、「CASLⅡ」というCOMETⅡ用のアセンブラを使って学びます。

「CASLⅡもCOMETⅡも初めて聞いたんだけど…」という方も講座内でしっかり説明しますのでご安心ください。

余談ですが、アセンブラ言語って「プログラミング学習をしよう!」となったときに一番に選ぶ言語ではないですよね。一般的にはPythonやRuby、Javaといった言語を選ぶ人がほとんどだと思います。(もちろん目的によるので一概には言えませんが…)

ただTIOBEが発表しているプログラミング言語の人気指標のランキングでは、アセンブラ言語(Assembly language)は2020年6月は14位、2019年6月には10位にランクインしています。

特にC言語やC++を学びたい・学んでいるという方には、メモリの基本的な知識や仕組みが学べるアセンブラ言語の習得はオススメです。

また、プログラムの書き方によって計算速度にどのような違いが出るのかを理解できるという点でもアセンブラ言語を学ぶ意義はあると思います。

(参考)index | TIOBE - The Software Quality Company

CPUの動作を理解する

CASLⅡとCOMETⅡを使って、CPUの動作を理解していくのですが、そのためにCPUのレジスタ構成とプログラムのメモリ配置を学習しておきます。

20200702112848

概要を把握したあとは、プログラムの動作をステップ実行してプログラムレジスタの値が変わるのを確認していきます。

プログラミング学習はしたことがあってもこういったコンピュータの仕組みについては触れていなかったという方にとっては、少し難しく感じる部分もあるかもしれませんね。

動画は繰り返し見ることができますのでじっくり取り組んでいきましょう。

情報処理入門 アセンブラ言語編01」で学べる内容

ここまで少しずつ紹介してきましたが、本講座のチャプター一覧は以下の通りです。(チャプター1、2は無料講座です)

01:CPUとアセンブラの関係を理解しよう
02:はじめてのアセンブラ
03:CASLⅡのコードの書式を理解しよう
04:COMETⅡの基本操作を理解しよう
05:2進数と16進数をおさらいしよう
06:CPUの動作を理解する - その1
07:CPUの動作を理解する - その2
08:マシン語で足し算する
09:マシン語で引き算する

アセンブラ言語編のレッスンは今後も追加予定ですので、興味がある方はぜひチェックしてください。

20200702144454

まとめ

コンピュータをハードウェア面から理解するためにCPUやメモリ、アセンブラ言語について学んできました。

この分野はまだまだ奥が深いので学ぶべきことはたくさんありますが、これまでなんとなく難しそうで避けていたという方も動画講座で学習を進めていただければなと思います。

本文でもお伝えしたように、CASLⅡは基本情報処理試験の午後問題に登場します。今回やってみておもしろいなと思った方は過去問題を解いてみるのもよいかもしれません。

なお、paizaラーニングでは、他にも情報処理試験対策に役立つ講座を公開しています。





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

詳しくはこちら

paizaラーニング

そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

詳しくはこちら

paizaのスキルチェック

paizaのおすすめコンテンツ

PPG proken プログラミングゲーム「初恋 プログラミング研究会〜海に行こうよ〜」 PPG Bingo プログラミングゲーム「コードレビューBINGO!!」
paiza転職 paiza新卒 EN:TRY paizaラーニング 記事内に記載している情報は、記事公開時点でのものとなります。 Copyright Paiza, Inc, All rights reserved.