汇编语言第三版——王爽(著)、第一章学习笔记。

汇编语言是直接在硬件之上工作的编程语言。

我们要先了解硬件系统结构,才能有效地应用汇编语言对其编程。

 

1.1 机器语言

机器语言是机器指令的集合。
机器指令 展开来讲 就是一台机器可以正确执行的命令。
我们常用的PC机中,有一个芯片来完成上面所说的计算机的功能,这个芯片就是我们常说的CPU-中央处理单元。

 

1.2 汇编语言的产生

汇编指令是机器指令便于记忆的书写格式。
操作:寄存器BX的内容写入到AX中
机器指令: 1000 1001 1101 1000
汇编指令: mov ax,bx

汇编指令通过编译器翻译成机器码交给计算机执行。

 

1.3 汇编语言的组成

汇编语言有三类指令组成:
1. 汇编指令:机器码的助记符,有对应的机器码。
2. 伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
3. 其他符号:如+、-、*、/、等,由编译器识别,没有对应的机器码。

汇编语言的核心是汇编指令,它决定了汇编语言的特性。

 

1.4 存储器

指令和数据 在存储器中存放,也是我们常说的内存。

 

1.5 指令和数据

指令和数据是应用上的概念,在内核或者磁盘上,指令和数据没有任何区别,都是二进制的信息。

 

1.6 存储单元

128个存储单元,编号为 0~127
一个存储单元8位,一个字节。
1024B = 1KB 1014KB = 1MB …等等~

 

1.7 CPU对存储器的读写

三总线:地址、数据、控制。
3类信息交互:
1. 存储单元地址(地址信息)
2. 器件的选择,读或者写命令(控制信息)
3. 读或者写的数据(数据信息)

通过地址总线发送地址信息
通过控制总线发送操作命令
通过数据总线传送读写数据

 

1.8 地址总线

CPU通过地址总线来指定存储器单元。
地址总线宽度决定了CPU寻址能力。
N根地址总线,寻址宽度为2的N次方。

 

1.9 数据总线

CPU与内存或其他器件之间的数据传送是通过数据总线来进行的。
数据总线的宽度决定了CPU和外界的传输速度。
8根数据总线一次可传送一个8位二进制数据。(一个字节)
16跟数据总线一次可传送一个16位二进制数据。(两个字节)
8088CPU数据总线宽度为8.
8086CPU数据总线宽度为16.

 

1.10 控制总线

CPU 对外部器件的控制是通过控制总线来进行的。
有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。
控制总线的宽度决定了CPU对外部器件的控制能力。

例如:内存的读写命令是由几根控制线综合发出的。

 

1.1 ~ 1.10 小结 —— 原文…

1. 汇编指令是机器指令的助记符,同机器指令一一对应
2. 每一种CPU都有自己的汇编指令集
3. CPU可以直接使用的信息在存储器中存放
4. 在存储器中指令和数据没有什么区别,都是二进制信息
5. 存储单元从0开始顺序编号
6. 一个存储单元可以存储8个bit,即8位二进制数
7. 1Byte = 8bit 等等~
8. 每一个CPU芯片都有多管脚,这些管脚和总线相连。也就是说,这些管脚引出总线。一个CPU可以引出三种总线的款的标志了这个CPU不同方面的性能:
地址总线的宽度决定了CPU的寻址能力。
数据总线的宽度决定了CPU与其他器件进行数据传输时的单次数据传输量
控制总线的宽度决定了CPU对系统中其他器件的控制能力

 

监测点1.1  —— 题目 & 答案
(1)1个CPU的寻址能力为 8KB,那么它的地址总线的宽度为 13位

(2)1KB的存储器有 1024 个存储单元,存储单元的编号从 0 1023

(3)1KB的存储器可以存储 8192(2^13) 个bit, 1024 个Byte。

(4)1GB是 1073741824 (2^30) 个Byte、1MB是 1048576(2^20) 个Byte、1KB是 1024(2^10)个Byte。

(5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根。
则它们的寻址能力分别为: 64 (KB)、 1 (MB)、 16 (MB)、 4 (GB)。

(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。
则它们一次可以传送的数据为: 1 (B)、 1 (B)、 2 (B)、 2 (B)、 4 (B)。

(7)从内存中读取 1024 字节的数据,8086至少要读  512  次,80386至少要读  256  次。

(8)在存储器中,数据和程序以 二进制 形式存放。

 

1.11 内存地址空间(概述)

一个CPU的地址总线宽度为10,那么可以寻址1024个单元,这1024个可寻址到的内存单元就构成这个CPU的内存地址空间。

 

1.12 主板

主板上有核心器件和一些主要器件,这些器件通过总线相连。
这些器件有:CPU、存储器、外围芯片组、拓展插槽等。
拓展插槽一般有RAM内存条和各类接口卡。

 

1.13 接口卡

所有可用程序控制其工作的设备,必须受到CPU的控制。
CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设工作。

 

1.14 各类存储器地址空间

从读写属性上分为两类:
1. 随机存储器RAM
2. 只读存储器ROM
随机存储器可读可写必须带电存储,断电内容丢失。
只读存储器只可读不可写,关机后内容不丢。

RAM就不说了一般的应用程序,显卡的显存。
ROM就是BIOS的存放

 

1.15 内存地址空间

所有的存储器,在物理上虽然是独立的器件,但是肯定有两点相同:
1. 和CPU总线相连。
2. CPU对它们读写时通过总线发送命令。
即,CPU在操控它们的时候,把它们当内存看待。

8086PC机内内存地址空间分配:
00000~9FFFF 为内存单元
A0000~BFFFF 为显存单元
C0000~FFFFF 为各类ROM单元

最后小结——内存地址空间

最终运行程序的是CPU,我们用汇编语言编程的时候,必须要从CPU的角度考虑问题。对CPU来说,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器就是我们所说的内存地址空间。

【Assembly】第一章——基础知识
Tagged on:
0 0 投票数
Article Rating
订阅评论
提醒

0 评论
内联反馈
查看所有评论