汇编第一章
1.1机器语言
什么是机器语言,机器语言就是机器指令的集合,机器指令展开来讲其实就是一台机器可以只缺执行的命令,电子计算机的机器指令是一列二进制数字,计算机将之转变为一系列的高低点评
1.1疑问(1)
什么是高低电平
这里的计算机指的就是可以执行机器指令,进行运算的机器
而我们现在的机器就是常用的PC机中,有一个芯片来完成我们上述所言的一个计算机的功能,这个芯片就是我们常说的CPU(是一种微处理器)
现在的计算机指的是由CPU和其它受CPU直接或者间接控制的芯片,器件,设备则称的计算机系统,比如我们最为常见的PC机
什么是PC机
PC(Personal Computer)简单理解就是个人电脑
因为每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制
1.1疑问(2)
电平脉冲是什么?
这样每一种的微处理器就都有了自己的机器指令集(机器语言),那么我们早起如果用机器语言编写程序是一大长串子的01编码,那如果我们有一个地方写错了,那该怎么办呢?
而且一个简简单单的hello,world就都会很长,机器语言如此复杂我们该怎么办呢?这就引出来了我们的第二节
1.2汇编语言的产生
既然机器语言这么麻烦那我们就搞一个新的语言简单易懂,这样我们的这个汇编语言就产生了
汇编语言的主体是汇编指令,汇编指令和机器指令的差别就在于指令的表示方法上,汇编指令是机器指令便于记忆的书写格式
操作如下
操作:寄存器BX的内容发送到AX中
机器指令:1000100111011000
汇编指令:mov ax,bx
什么是寄存器
简单的讲就是CPU中可以存储数据的器件,一个CPU里面会有多个寄存器,上面的AX和BX都可以理解为是寄存器的一个代号
欲知后事如果请听以后分解
1.2未掌握(1)
寄存器的具体内容和知识
既然我们可以使用汇编了,那新的问题出现了,机器怎么去识别呢?
那就需要用到我们的编译器了,这个其实就是像是一个翻译官一样,我们输入了汇编的指令,编译器(翻译官)把我们输入的汇编的指令给翻译成机器码,最后计算机去执行
1.3汇编语言的组成
汇编语言到目前为止一共由以下三类指令组成
(1)汇编指令:机器码的助记符,有对应的机器码
(2)伪指令:没有对应的机器码,由编译器执行,计算机不执行
(3)其他符号:如+,-,*,/等,由编译器识别,没有对应的机器码
汇编语言的核心就是汇编指令,它决定了汇编语言的特性
1.4存储器
首先理解这部分,先明确CPU是计算机的核心部件,它控制整个计算机的运作并进行运算
那我们怎么命令CPU呢?
我们就是需要向他提供指令和数据
然后这个时候存储器就出现了,指令和数据在储存器中存放(这里就是我们平时所说的内存)
这里的储存器我们可以直接理解为是内存
CPU和内存对于一台健脑来说缺一不可,就好比是记忆和大脑的关系
然后这里就有了另一个概念:磁盘
磁盘和内存的关系
首先必须明确的就是磁盘不同于内存(存储器)
如果我们磁盘上的数据或者是程序不读入到内存中的话,就是无法被CPU使用的
这里出现了一个疑问
如果我们要灵活的利用汇编语言编程的话,我们首先肯定要了解的就是CPU是如何从内存中读取信息,以及向内存中写入信息的
1.4疑问(1)
CPU是如何从内存中读取信息,以及向内存中写入信息的
1.5指令和数据
指令和数据是应用上面的一个概念,在内存或者是磁盘上,指令和数据可以认为是没有什么太大的区别,都是二进制的信息
当CPU在工作的时候,把有的信息看作了是指令,有的信息看作是数据,这样我们就是给同样的信息赋予了不同的意义
就比如象棋,围棋当棋子在棋盒中的时候他们之间没有任何的区别,但是在对弈的时候就有了不同的意义
就好比内存(存储器)中的二进制信息
1000100111011000
计算机可以把它看成是89D8H的数据来处理,也可以当成是mov ax,bx来执行
1000100111011000-> 89D8H(数据)
1000100111011000-> mov ax,bx(程序)
1.5疑问(1)
我们的计算机什么时候把一串二进制信息当成数据,什么时候当成程序呢?我们该怎么区分和判断呢?
1.6存储单元
存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号,例如一个存储器有128个存储单元,编号从0~127,有点和c++里面的数组类似
那下一个问题来了
一个存储单元能存储多少信息呢?然后这里我们就是要引入一个概念
电子计算机的最小信息单位是bit(比特),也就是一个二进制位。8bit组成了一个Byte,也是就是通常所讲的一个字节
这里微型机存储器的存储单元可以存储一个Byte,即8个二进制位。一个存储器有128个存储单元,它可以存储128个Byte
微机存储器的容量是以字节为最小单位来计算的,对于一个拥有128个存储单元的存储器,我们可以说他的容量是18字节
对于大一点的容量的存储器一般还可以用以下单位来计量容量(下面的表格用B来代表Byte)
1Kb=1024B
1mb=1024kb
1GB=10024MB
1TB=1024GB
磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位
微机:微型机器