第120回 変数について その2

公開日:2014-11-19 更新日:2019-05-13

1. 概要

独り言によるプログラミング講座「第120回 変数について その2」です。
変数をメモリ管理レベルで説明しています。

2. 動画



3. 動画中に書いたソース

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //★独り言によるプログラミング講座

            //■変数について その2

            //  変数 --- 数値や文字などを入れる器。
            //           数式の x と同じ。

            //  CPUには変数と言う機能はない。
            //  ※レジスターと言う固定の変数はある。
            //  変数 -> コンパイラ -> メモリ

            //  メモリ64kb
            
            //  番地(アドレス) --- 1バイト毎に住所が振られている
            //  0000  0 ~ 255  or  -128 ~ 127
            //  0001  
            //  0002  10
            //  0003  X
            //  0004  Y
            //  0005  下位バイト FF   0 ~ 65535
            //  0006  上位バイト FF
            //    :
            //  FFFF

            //  MOV [0002], 10
            //  MOV AL, [0002]

            //  F --- 16進数。0~9,A,B,C,D,E,F。F = 15
            //        0x10 = 16

            //  座標 x,y
            //  MOV [0003], 10
            //  MOV [0004], 20

            //  アドレスの定数化
            //  X は 0003 です。-> アセンブラ
            //  Y は 0004 です。
            //  MOV [X], 10
            //  MOV [Y], 20

            //  変数
            //  X を使います。 -> アセンブラ
            //  Y を使います。    裏でメモリを動的に確保してる。
            //  MOV X, 10
            //  MOV Y, 20
            
            //char b = '0';
            //int a = (int)((long)1 * 65536);
            long b = 1; //8バイト
            int a = (int)b;  //4バイト
        }
    }
}