汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解( 二 )


汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
I 指令集与硬件逻辑层具有一一对应关系 , 根据一套需要设计的指令集设计出CPU(硬件逻辑层) , 或者说 , 一个CPU(硬件逻辑层)系列有对应的一个指令集 。
II 在指令集的基础上可以设计出不同的操作系统 。
5 编码与编程
指令和处理的对象都要二进制化 。
5.1 数据的编码
5.1.1 数的编码:包括负整数的补码方案 , 浮点数的IEEE754方案;
5.1.2 字符编码:ASCII、BG2312、Unicode等及Unicode的存储方案utf;
5.1.3 声音编码:包括音波的采样与量化;
5.1.4 图像编码:位图的像素采样与量化及矢量图的数学公式表示;
5.2 指令集(指令编码):指令集包括一套CPU可以完成的操作集合 , 每一条指令语句由操作码和操作数(上述的数据编码)组成(特殊指令语句可以没有操作数) , 按指令格式编码为1-6个字节的二进制数序列;
5.3 机器语言与机器语言程序:机器语言就是符合上述指令格式编码的语句集合 , 按指令格式编写二进制序列组合便是机器语言程序;
5.4 汇编语言、汇编器、汇编程序 , 汇编语言建立与指令集的一一对应关系 , 按汇编语言编写汇编程序 , 由汇编器汇编为机器语言程序;
汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
5.5 高级语言、编译器或解释器、高级语言程序:高级语言建立语法规则建立与汇编语言或机器语言的对应程序 。 由高级语言编写的高级语言程序由编译器编译或解释器解释为机器语言 , 由CPU执行 。
5.5.1 编译、解释
不同的平台(层次)、不同的领域 , 有不同的编程语言 , 当然也有不同的编译器 , 都是多对多的关系 。 当然 , 相同的一份代码 , 如果有不同操作系统的编译器的话 , 也可以编译为用于不同平台(操作系统)的可执行文件 。
另外 , 即使相同的平台 , 相同的源代码 , IDE环境的工程选项中 , 还可以选择不同的编译选项 , 如Debug、Release版就是不同的编译选项的组合 。
5.5.2 连接
对于大型程序来说 , 需要包含多个源程序文件 , 加上库文件 , 这些文件需要连接到一起 , 形成一个整体的可执行文件 。
6 C的hello.c程序的机器语言、汇编语言
C语言也称为中级语言 , 除了可 直接操作内存外 , 还在于其没有中间层 , 与汇编、机器语句有较清晰的对应关系 。
汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
7 hello.c程序在硬件中的执行流程
7.1 程序由硬盘加载到内存
汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
7.2 cpu执行程序及输出
汇编语言■C|编程的一些前置知识及底层(计算机组成与汇编)了解
本文插图
-End-