计算机原理学习笔记 Day2
不仅是汇编语言,用 C 语言、Java、BASIC 等编程语言编写的程序,也都需要先转换成机器语言才能被执行。机器语言有时也叫作“原生代码”(Native Code)。
内存中有多个数据存储单元。计算机用从 0 开始的编号标识每个存储单元,这些编号就是地址(Address)。I/O 中的寄存器也可以用地址来标识。哪个寄存器对应哪个地址,取决于 CPU 和 I/O 之间的布线方式。
可以使用哪种机器语言取决于 CPU(也称作处理器)的种类。所谓机器语言就是只用 0 和 1 两个二进制数书写的编程语言。即便是相同的机器语言,例如 01010011,只要 CPU 的种类不同,对它的解释也就不同。
每个地址都标示着一个内存中的数据存储单元,而这些地址所构成的范围就是内存的地址空间。
连接着的 I/O 的种类,就是指连接着微型计算机和周边设备的 I/O 的种类。
操作数表示的是指令执行的对象。CPU 的寄存器、内存地址、I/O 地址或者直接给出的数字都可以作为操作数。
构成机器语言的是二进制数,而在汇编语言中,则使用十进制数和十六进制数记录数据。
操作数必须是已存储在 CPU 寄存器中的数字,这是汇编语言的规定。
用汇编语言编写的程序是不能直接运行的,必须先转换成机器语言。机器语言是唯一一种 CPU 能直接理解的编程语言。
在将一个 2 字节的数据存储到内存时,存储顺序是低 8 位在前、高 8 位在后(也就是逆序存储)。这样的存储顺序叫作“小端序”(LittleEndian),与此相反,将数据由高位到低位顺序地存储到内存的存储顺序则叫作“大端序”(Big Endian)。
PC (ProgramCounter,程序计数器)的寄存器,负责存储内存地址,该地址指向下一条即将执行的指令。每解释执行完一条指令,PC 寄存器的值就会自动被更新为下一条指令的地址。
条件分支本身也是通过跳转指令实现的。根据比较操作的结果,跳转到之前处理过的步骤就是循环;跳转到之后尚未处理的步骤就是条件分支。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/7f2ada482a711a7bbc71ee762】。文章转载请联系作者。
评论