声明:汇编学习意义不大
1、为什么使用汇编
(1)以前台湾某些IC只能采用汇编写程序。
(2)利用汇编去理解高级语言和芯片内部原理。
(3)利用汇编去调试程序。
2、计算机体系结构
计算机体系结构分为冯氏结构和哈佛结构,两种结构的主要区别是程序与数据是否统一编址。
2.1、冯氏结构
(1)冯氏结构指冯诺伊曼结构,程序和数据统一编址。
(2)Intel 8086处理器采用的就是冯氏结构。
(3)8086代码和数据都在内存中,统一编址。
补充:8086和x86
(4)intel 8086是一款微处理器,主频为4.77MHz,采用16位寄存器。
(5)X86架构是微处理器执行的计算机语言指令集,标识一套通用的计算机指令集合。
(6)8086采用X86架构。
2.2、哈佛结构
(1)8051单片机采用的是哈佛结构,程序和数据独立编址。(51单片机是大端模式)
(2)8051的ROM和RAM,都有0x00这个地址。
3、CPU模型
(1)CPU包括运算器(ALU)和控制器
(2)8051中的运算器是全加器(全加器指用门电路实现两个二进制数相加并求出和的组合线路)
(3)减法、乘法、除法都可以转换为加法。考虑到电路设计的复杂性以及成本,运算器中一般只有加法器。
(4)控制器将机器码转换成电平信号。
4、计算机指令系统
指令系统是计算机硬件的语言系统,也叫机器语言,指机器所具有的全部指令的集合。
CPU依据不同的指令集,分为精简指令集和复杂指令集。
4.1、精简指令集(RISC)
(1)每一个指令的运行时间都非常短,运行性能较佳。可是若要做复杂的事情就要多个指令来完成。
(2)ARM系列就采用精简指令集。
4.2、复杂指令集(CISC)
(1)每一个小指令能够运行一些较低阶的硬件操作,指令数目多并且复杂,每条指令长度不同,运行时间长。
(2)常见的复杂指令集CPU主要有AMD、Intel、VIA等x86架构的CPU,这样的CPU被大量用于个人计算机。因此个人计算机常常被称为x86计算机。
(3)8051采用复杂指令集。
5、计算机语言
5.1、从高级语言低级语言来看
(1)机器码→汇编语言(X86,51,ARM)→高级语言(C,C++,JAVA,C#)
(2)机器码和汇编属于低级语言,其他是高级语言。
(3)高级语言采用易于识别和记忆的字符来作为关键字,也更接近人类的思维方式,编写容易读写性好,开发效率更高。
(4)高级语言由编译器编译得到低级语言。
5.2、编译型语言和解释型语言
(1)编译型语言要求使用编译器一次性将所有源代码编译为一个可执行程序,一次编译可重复执行。代表语言有C、C++等。
(2)解释型语言是使用解释器一边执行一边转换,用到哪些源代码就转换哪些,不会生成可执行程序。代表语言有JavaScript、Python、PHP、Shell等。
(3)JAVA:一次编译到处运行