汇编学习:基础知识
机器语言
机器语言是机器指令的结合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行计算,
CPU是一种微处理器。计算机是指由CPU和其他受CPU直接或间接控制的芯片、器件、设备组成的计算机系统。
每一种微处理器,由于硬件设计和内部结构不同,就需要用不同的电平脉冲来控制,使它同坐。所以每一种微处理器都有自己的机器指令集,也就是机器语言。
个人感想
能写机器码的第一批捣鼓计算机的人真的好厉害
汇编语言的产生
- 汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法。汇编指令是机器指令便于记忆的书写格式。
用汇编语言编写程序的工作过程
程序员——汇编指令——编译器——机器码——计算机
例子
操作:寄存器BX的内容送到AX中
机器指令:1000100111011000
汇编指令:mov ax,bx
汇编语言的组成
汇编语言有三类指令组成
汇编指令。机器码的助记符,有对应的机器码。
伪指令。没有对应的机器码,由编译器执行,计算机并不执行。
其他符号。如+-×\等,由编译器识别,没有对应的机器码。
汇编语言的核心是汇编指令,它决定了汇编语言的特性。
指令和数据
- 指令和数据时应用上的概念。CPU在工作的时候把有的信息看做指令,有的信息看做数据,为了同样的信息赋予了不同的意义。
例子
1000100111011000 ------------------------->89D8H(数据)
1000100111011000 ------------------------->mov ax,bx(程序)
存储单元
- 微型机存储器的存储单元可以存储一个Byte,即8个二进制位
CPU对存储器的读写
CPU要想进行数据的读写,必须和外部器件进行三种信息的交互:
存储单元的地址(地址信息)
器件的选择,读或者写(控制信息)
读或写的数据(数据信息)
在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。
- 根据传送信息的不同,总线从逻辑上分为3类,地址总线、控制总线和数据总线。
- CPU从内存中读/写数据的过程
- 通过地址总线发出相应的地址信息;
- 通过控制线发出内存读命令,选中存储器芯片,并通知它,将要对其进行读写操作。
- 将数据通过数据线传入CPU或者由CPU传入存储单元。
命令计算机进行进行读写
机器码 :101000010000001100000000
对应的汇编指令: MOV AX,[3]
含义: 传送3号单元的内容入AX
地址总线
- 一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。
数据总线
8088CPU的地址总线宽度为8,8086CPU的数据总线宽度为16
8088CPU分两次传送89D8,第一次传送D8,第二次传送89
8086CPU一次传送89D8
控制总线
控制总线是一个总称,控制总线是一些不同控制线的集合。控制总线的宽度决定了CPU对外部器件的控制能力。
内存读或写命令是由几根控制线综合发出的,其中有一根称为“读信号输出”的控制线负责由CPU向外传送读信号
主板
- 主板上有核心器件和一些主要器件,这些器件通过总线(地址总线、数据总线、控制总线)相连。这些器件有CPU、存储器、外围芯片组、拓展插槽等。拓展插槽上一版插有RAM内存条和各类接口卡
接口卡
- 计算机系统中,所有可用程序控制其工作的设备,必须受到CPU的控制。简单的讲,就是CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。
各类存储器芯片
存储器从功能和连接上可以分为以下几类:
随机存储器。主随即存储器一般由两个位置上的RAM组成,装在主板上RAM和插在拓展插槽上的RAM
装有BIOS的ROM
接口卡上的RAM
内存地址空间
- 这些存储器在物理上是独立的器件,但是在一下两点上相同:
- 都有CPU的总线相连
- CPU对它们进行读或写操作的时候都通过控制线发出内存读写命令。
- 所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器,每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。
- 内存地址空间(假想的逻辑存储器)
- 主存储器地址空间
- 显存地址空间
- 显卡BIOS ROM地址空间
- 网卡BIOS ROM地址空间
- 系统BIOS ROM地址空间
- 8086PC机内存地址空间分配
- 主存储器地址空间
- 显存地址空间
- 各类ROM地址空间
小结
汇编指令是机器指令的助记符,同机器指令一一对应
每一种CPU都有自己的汇编指令集
CPU可以直接使用的信息在存储器中存放。
在存储器重指令和数据没有任何区别,都是二进制信息。
存储单元从零开始顺序编号
一个存储单元可以存储8个bit,即8位二进制数。
1Byte=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB
每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出3种总线的宽度标志了这个CPU的不同方面的性能。
地址总线的宽度决定了CPU的寻址能力;
数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;
控制总线的宽度决定了CPU对系统中其他器件的控制能力。
习题检测
- 1个CPU的寻址能力为8KB,那么它的地址总线的宽度为(13)
- 1KB的存储器有(1024)个存储单元。存储单元的编号从(0)到(1023)
- 1KB的存储器可以存储(8192)个bit,(1024)个Byte
- 1GB、1MB、1KB分别是(1073741824)、(1048576)、(1024)Byte
- 8080、8088、80286、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为:(64)KB、(1)MB、(16)MB、(4)GB
- 8080、8088、8086、80289、80386的数据总线宽度为8根、8根、16根、16根、32根。则它们一次可以传送的数据为:(1B)、(1B)、(2B)、(2B)、(4B)。
- 从内存中读取1024字节的数据,8086至少要读(512)次,80386至少要读(256)次。
- 在存储器中,数据和程序以(二进制)形式存放。