从0开始的汇编语言

从0开始的汇编语言

本文是总结自王爽老师的《汇编语言》第四版

加上部分笔者的个人理解,如有错误,请及时指出

汇编语言是直接在硬件之上的工作编程语言,第一次,我们要先简单了解下硬件系统的结构,才能有效的使用汇编语言进行编程。

1.从机器语言到汇编

简单来说,机器语言是机器指令的集合,即二进制代码,计算机将二进制代码转换为一列高低电平,使电子元件受到驱动,进行运算。
在这里插入图片描述

在这里插入图片描述
由此可见,机器语言不便于我们阅读和分析,由此产生了汇编语言

在这里插入图片描述

相较于机器语言,汇编语言显得简单易读,因此,我们便可以用汇编语言写程序,通过编译器转换为机器码,再交给计算机运行。

2.学习汇编语言的理由

效率

运行效率:开发软件的核心部件,快速执行和实时响应。

开发效率∶做合适的事,开发效率无敌

底层︰计算机及外围设备的驱动程序操作系统的内核

嵌入式系统:家用电器、仪器仪表、物联网…

汇编语言在学习计算机中起到的独特作用——直击计算机系统的核心
便于加深对计算机原理和操作系统等课程的理解
通过学习和使用汇编语言,能够感知、体会和理解机器的逻辑功能
向上为理解各种软件系统的原理,打下技术理论基础
向下为掌握硬件系统的原理,打下实践应用基础。学会底层的程序调试和错误分析方法

3.汇编语言的组成

汇编语言发展至今,有以下3类指令组成。
(1)汇编指令:机器码的助记符,有对应的机器码。

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

(3)其他符号:如+、一、*、/等,由编译器识别,没有对应的机器码。

4.存储器

CPU是计算机的核心部件,它控制整个计算机的运作并进行运算。要想让一个CPU工作,就必须向它提供指令和数据。指令和数据在存储器中存放,也就是我们平时所说的内存。在一台PC 机中内存的作用仅次于CPU。离开了内存,性能再好的CPU也无法工作。磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU使用。

要灵活地利用汇编语言编程,我们首先要了解CPU是如何从内存中读取信息,以及向内存中写入信息的。

5.存储单元

一个二进制位为1bit——即01

8个bit组成1Byte(字节)

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB

6.CPU对存储器的读写

CPU对存储器的读写,即CPU与存储器的信息交互,一般为以下三种

存储单元的地址(地址信息);

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

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

电子计算机所处理、传输的都是电信号,故需要导线传送。计算机中专门连接CPU和其他芯片的导线,通常称为总线,总线从逻辑上分为3类——地址总线、控制总线、数据总线。

在这里插入图片描述

地址总线

CPU通过地址总线来指定存储器单元,可见地址总线能传送多少不同的信息,CPU就可以对多少个存储单元进行寻址。

假设一CPU有10根地址总线,一根导线有高低电平两种状态(高电平或低电平(1或0)),即每次可以传送2^10种状态,也就是最小数为0,最大为1023。

即,一个CPU中有N根地址先,则说这个CPU的地址总线宽度为N,可以寻找2^N个内存单元。

在这里插入图片描述

数据总线

与地址总线类似,也由导线的高低电平传输数据,即8根数据总线一次可传输8位的二进制数据(1字节),16根可传输2字节。

例:8088CPU数据总线宽度为8, 8086宽度为16,则他们同样传输一个16进制数据,情况不同

在这里插入图片描述
在这里插入图片描述

控制总线

CPU对外部器件的控制是通过控制总线来进行的。

在这里控制总线是个总称,控制总线是一些不同控制线的集合。有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。所以,控制总线的宽度决定了CPU对外部器件的控制能力。

7.各类存储器

一台PC机中,装有多个存储器芯片,这些存储器芯片从物理连接上看是独立的、不同的器件。

从读写属性上看分为两类:随机存储器(RAM)和只读存储器(ROM)。随机存储器可读可写,但必须带电存储,关机后存储的内容丢失;只读存储器只能读取不能写入,关机后其中的内容不丢失。这些存储器从功能和连接上又可分为以下几类。

随机存储器

用于存放供CPU使用的绝大部分程序和数据,主随机存储器一般由两个位置上的RAM组成,装在主板上的RAM和插在扩展插槽上的RAM。

装有BIOS(Basic Input/Output System,基本输入/输出系统)的ROM

BIOS是由主板和各类接口卡(如显卡、网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插有存储相应BIOS的 ROM。例如,主板上的 ROM中存储着主板的 BIOS(通常称为系统BIOS);显卡上的ROM中存储着显卡的 BIOS;如果网卡上装有ROM,那其中就可以存储网卡的BIOS。

接口卡上的RAM

某些接口卡需要对大批量输入、输出数据进行暂时存储,在其上装有RAM。最典型的是显示卡上的 RAM,一般称为显存。显示卡随时将显存中的数据向显示器上输出。换句话说,我们将需要显示的内容写入显存,就会出现在显示器上。

以上存储器在以下两点上相同

1.都和CPU的总线相连。

输出数据进行暂时存储,在其上装有RAM。最典型的是显示卡上的 RAM,一般称为显存。显示卡随时将显存中的数据向显示器上输出。换句话说,我们将需要显示的内容写入显存,就会出现在显示器上。

以上存储器在以下两点上相同

1.都和CPU的总线相连。

2.CPU对他们进行读或写的时候都通过控制线发出内存读写指令

  • 26
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值