集合論としては、与件(data)の一部が算譜(program)である。
ハードウェア
CPUによっては、プログラム領域とデータ領域を分けている場合がある。
http://www.cpu-world.com/Arch/8086.html
CS: code segment ->instruction pointer (IP)
DS: data segment -> stack pointer (SP) base pointer (BP)
SS: Stack segment -> general registers (AX, BX, CX, DX) index register (SI, DI)
プログラムの分岐が狭い範囲と、広い範囲とでコードの長さが違うことがある。
狭い範囲でプログラムが分岐している場合には、高速でかつ小規模なソフトウェアになることが8086系CPUの利点であった。
論理的には68000系の線形なメモリ配置の方がわかりやすいかもしれない。
算譜(program)
ソフトウェアで、プログラム領域とデータ領域を分けることがある。
抽象データ型では、プログラムとデータをあるメモリ空間に閉じ込めることにより保守を容易にしようとする。
ハードウェアでメモリの局所的利用に優位性があるかどうか。
ソフトウェアでメモリの局所的利用に優位性をもたらす機能をOS, 言語で設定するかどうか。
与件(data)
プログラムとデータを別々に持っていたとしても、
データを分類分けしてプログラムを短くしたりすることがある。
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.