《汇编语言》王爽著_读书笔记(一)

基础知识

机器语言

机器语言是机器指令的集合,机器指令是一台计算机可以正确执行的命令,是一列二进制数字。计算机将其转变成对应的一列高低电平,以驱动计算机的电子器件,进行CPU的主要工作——运算。

每一种微处理器的硬件设计和内部架构都不同,故需要用不同的电平脉冲来控制其工作,所以每一种微处理器都有其自己的机器指令集,也就是机器语言。

若使用8086CPU完成运算 s = 768 + 1288 - 1280, 机器码如下:

101110000000000000000011

000001010000000000110000

001011010000000000000101

程序员们将这些机器码打在纸带或卡片上,1打孔,0不打孔,再将程序通过过纸带机或者卡片机输入计算机,进行运算。

汇编语言的产生

显然,机器码很麻烦,所以产生了汇编语言。

操作:寄存器BX的内容送到AX中

机器指令:1000100111011000

汇编指令:mov ax, bx

寄存器是CPU中的储存数据的器件,一个CPU中有多个寄存器。

汇编语言通过编译器来编译成机器码,再由计算机最终执行。(编译器的编译工作自然也是由计算机执行)

汇编语言的组成

汇编语言又三类指令组成

  1. 汇编指令,机器码的助记符,有对应的机器码

  2. 伪指令,没有对应的机器码,由编译器执行,计算机不执行

  3. 其他符号,如 + - * / 等,又编译器识别,没有对应的机器码

汇编指令决定了汇编语言的特性。

储存器

CPU要运算的数据的储存位置,指令和数据都在储存器中存放,就是内存(RAM)。

指令和数据

在内存或磁盘中,指令和数据没有任何区别,都是二进制信息。

储存单元

储存器被划分成多个储存单元,每个储存单元从0开始顺序编号,如一个有128个储存单元的储存器,编号从0
~ 127.

微型机储存器的一个储存单元可以存储一个Byte,即8个二进制位,即8个bit,bit(比特)是电子计算机的最小信息单位

CPU对存储器的读写

CPU想要从内存中读取数据,首先要制定存储单元的地址,就像数据居住在一个小区的一个房子里,我们要找数据就要先确定他住在哪个房子里,而每个房子都有自己的门牌号码,这号码就可以看成储存器的编号。

在CPU读写数据时还要指明其要对哪一个器件进行操作,因为CPU中不知有储存器这一种器件。

CPU要进行数据的读写,必须和外部器件(芯片)进行下面3类信息的交互

  • 存储器单元的地址(地址信息)

  • 器件的选择,读或写的命令(控制信息)

  • 读或写的数据(数据信息)

    在计算机中有专门连接CPU和其他芯片的导线(电子计算机处理、传输的信息都是电信号,电信号当然要用导线传送)称为总线,总线从逻辑上又分为3类:地址总线、控制总线和数据总线。

  • 读3号位置的数据操作:

    CPU通过地址线对内存发出信息3

    CPU通过控制线发出内存读命令,选中存储器芯片,并通知其要从中读取数据

    存储器将3号位置的数据通过数据线发到CPU

机器码: 10100001 00000011 00000000

汇编指令:mov ax, [3]

含义: 传送3号单元的内容送入ax

地址总线

不同CPU的地址总线不同且有限,假设一个CPU有N根地址总线,那么它最多可以寻找2的N次方个内存单元(Byte)

数据总线

数据总线的宽度决定了CPU和外界的数据传送速度,比如8根数据总线一次可以传送一个8位二进制数据(即一个字节,一个Byte,一个存储单元)

  • 当CPU的数据总线宽度为8,那么它向内存中写入数据89D8H时,就要分成两次传送,第一次传送D8,第二次传送89,

第一次:

10010001 (89)

第二次:

00011011 (D8)

  • 当CPU的数据总线宽度为16,那么他可以一次传送89D8H

第一次:

00011011 - 10010001 (89D8)

控制总线

控制总线的宽度决定了CPU对外部器件的控制能力,前面讲的内存读写命令是又几根控制线综合发出的,其中一根称为“读信号输出”的控制线负责由CPU向外部传送读信号,CPU向该控制线输出低电平表示将要读取数据;同理,有一根称为“写信号输出”的控制线负责传送写信号。

内存地址空间概述

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

主板

就是PC机中的各个核心器件和主要器件都通过总线(地址总线、数据总线、控制总线)相连。这些器件有CPU、存储器、外围芯片组、扩展插槽等。扩展插槽根据接口和协议的不同,一般插有RAM内存条和各类接口卡。

接口卡

所有可用程序控制其工作的设备,都要由CPU进行控制。
但CPU不能对外部设备直接控制,如显示器、音响、打印机等。所以CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。

各类存储器芯片

  • RAM 随机存储器

用于存放CPU使用的绝大部分程序和数据

  • 装有BIOS的ROM 只读存储器

BIOS是由各种接口卡厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出(Basic
Input/Outp System)

  • 接口卡上的RAM

如显存,应付大批量输入输出数据的暂时存储情况,我们将需要显示的内容写入显存,就会显示在显示器上。

内存地址空间

上面说的各类存储器,在物理上是独立的器件,但有以下两点相同:

  • 都和CPU的总线相连(直接:RAM等, 间接: 接口卡)

  • CPU对它们进行读或写的时候都通过控制线发出内存读写命令。

也就是说,CPU把他们总的当作一个由若干存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间,汇编语言面对的就是这个内存地址空间。

这个总的逻辑存储器通过不同的器件的空间分成了一个个地址段,CPU通过访问不同的地址段以达到控制不同的器件的目的,在一段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据。

假设内存地址空间的地址段分配如下:

  • 地址0~7FFFH的 32KB空间为 主随机存储器的地址空间;
  • 地址8000H~9FFFH的 8KB空间 为 显存地址空间;
  • 地址A000H~FFFFH的 24KB为 各个ROM的地址空间;

这样,当CPU向内存地址为1000H的内存单元中写入数据,这个数据就会被写入到随机存储器中,以此类推。

  • 而CPU向内存地址为C000H的内存单元中写入数据的操作是没有结果的,因为C000H单元的内容是ROM存储器中的一个单元,它是只读的。
逻辑存储器

内存地址空间受CPU地址总线宽度的限制。
8086CPU的地址总线宽度为20,所以可以传送2的20次方个不同的地址信息(0 ~ 2的20次方-1),即可以定位2的20次方个内存单元,则8086PC的内存地址空间大小为1MB(1024KB、2的20次方Byte)。
同理,80386CPU的地址总线宽度为32,则内存地址空间最大为4GB。

在使用基于一个计算机硬件系统进行编程的时候,必须知道这个系统的内存地址空间分配情况。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容