3: 2007-01-10 (水) 21:40:55 |
現: 2024-01-06 (土) 22:39:13 |
| | | |
| 10111000,00010000 , 00000101,00001000 | | 10111000,00010000 , 00000101,00001000 |
| + | |
| └────────┘ └───────┘ | | └────────┘ └───────┘ |
| AXに16をセットしろ !AXの値に8を足せ! | | AXに16をセットしろ !AXの値に8を足せ! |
| B8,10, ← B8が「AXに値を入れろ!」という命令。後ろの10は10進数で16。 | | B8,10, ← B8が「AXに値を入れろ!」という命令。後ろの10は10進数で16。 |
| 05,08 ← 05が「AXの値と足し算しろ!」という命令。後ろの08が足す数。 | | 05,08 ← 05が「AXの値と足し算しろ!」という命令。後ろの08が足す数。 |
| + | |
| うーん。こういうふうに命令ごとに縦に割って書けばだいぶ解りやすくなってきましたね?。でも、やっぱり「足し算は05だ!」とか「代入はB8だ!」なんて、とても覚えていられませんよね?。こういう機械的な翻訳が得意な道具ってないかな・・・は! そうだ! あった!! ''コンピューターだ!!'' | | うーん。こういうふうに命令ごとに縦に割って書けばだいぶ解りやすくなってきましたね?。でも、やっぱり「足し算は05だ!」とか「代入はB8だ!」なんて、とても覚えていられませんよね?。こういう機械的な翻訳が得意な道具ってないかな・・・は! そうだ! あった!! ''コンピューターだ!!'' |
| | | |
| ここで、''アセンブラ言語''が考え出されました。B8とか05とかじゃわからない(覚えきれない)けど、MoveとかAddとかJumpとかならなんとか覚えられるよね?。あと、数値も10進数でも16進数でも2進数でも自由に書けたら後でチェックする時にも楽じゃない?。そんなわけで、アセンブラ登場!。(しかし、上記に書いた通り、Moveとか言ってもコンピュータにはわからない。ちゃんと最後は2進数に変換してやらないといけないんですよね。これが変わったわけではないのです) | | ここで、''アセンブラ言語''が考え出されました。B8とか05とかじゃわからない(覚えきれない)けど、MoveとかAddとかJumpとかならなんとか覚えられるよね?。あと、数値も10進数でも16進数でも2進数でも自由に書けたら後でチェックする時にも楽じゃない?。そんなわけで、アセンブラ登場!。(しかし、上記に書いた通り、Moveとか言ってもコンピュータにはわからない。ちゃんと最後は2進数に変換してやらないといけないんですよね。これが変わったわけではないのです) |
| アセンブラ言語で書く マシン語できた〜! | | アセンブラ言語で書く マシン語できた〜! |
| + | |
| ┌──────┐ アセンブラプログラム ┌────┐ | | ┌──────┐ アセンブラプログラム ┌────┐ |
| │MOV AX,16│ → が翻訳してくれる。 → │B5,10 │ | | │MOV AX,16│ → が翻訳してくれる。 → │B5,10 │ |
| | | |
| アセンブラ言語で書く マシン語できた〜! | | アセンブラ言語で書く マシン語できた〜! |
| + | |
| ┌────────┐ アセンブラプログラム ┌──────┐ | | ┌────────┐ アセンブラプログラム ┌──────┐ |
| │ADD CX,0x1234│→ が翻訳してくれる。 → │81,C1,34,12 │ | | │ADD CX,0x1234│→ が翻訳してくれる。 → │81,C1,34,12 │ |
| --画面になにか表示する | | --画面になにか表示する |
| --キーボードやマウス等からの信号を受け付ける | | --キーボードやマウス等からの信号を受け付ける |
| + | |
| こういったことは、''純粋な意味でのC言語''では、一切できないのです。 | | こういったことは、''純粋な意味でのC言語''では、一切できないのです。 |
| | | |
| | | |
| ソースファイル Cコンパイラ | | ソースファイル Cコンパイラ |
| + | |
| Main(){ ←ふむ。最初に実行される関数だね。 | | Main(){ ←ふむ。最初に実行される関数だね。 |
| int a; ← 変数の定義か。これはできるぞ! | | int a; ← 変数の定義か。これはできるぞ! |
| | | |
| ソースファイル Cコンパイラ | | ソースファイル Cコンパイラ |
| + | |
| <#include stdio.h> ←ふむ。stdio.hというファイルを読もう。なになに?いろんな関数があるなぁ。 | | <#include stdio.h> ←ふむ。stdio.hというファイルを読もう。なになに?いろんな関数があるなぁ。 |
| + | |
| Main(){ ←ふむ。最初に実行される関数だね。 | | Main(){ ←ふむ。最初に実行される関数だね。 |
| int a; ← 変数の定義か。これはできるぞ! | | int a; ← 変数の定義か。これはできるぞ! |