当前位置:网站首页>王爽汇编语言学习详细笔记一:基础知识
王爽汇编语言学习详细笔记一:基础知识
2022-07-06 09:24:00 【Deteriorate_Kr】
文章目录
前言
汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。
一、从机器语言到汇编语言
1.机器语言
机器语言是机器指令的集合。
机器指令展开来讲就是一台机器可以正确执行的命令。
电子计算机的机器指令是一列二进制数字,计算机只看得懂二进制数字。
很明显,如果使用机器指令来编程是如此的难于辨别和记忆,稍有不慎就会出错。
2.汇编语言
汇编语言的主体是汇编指令。
汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。
汇编指令是机器指令的助记符(更接近人类语言)
但汇编语言也需要编译成机器语言,计算机才看得懂
汇编语言由以下3类组成:
1、汇编指令(机器码的助记符,有对应的机器码)
2、伪指令 (由编译器执行,没有对应的机器码,计算机并不执行)
3、其它符号(由编译器识别,没有对应的机器码,如+ - * /等)
汇编语言的核心是汇编指令,它决定了汇编语言的特性。
二、存储器
1.指令和数据
CPU 是计算机的核心部件.它控制整个计算机的运作并进行运算,要想让一个CPU 工作,就必须向它提供指令和数据。
指令和数据在存储器中存放,也就是平时所说的内存。在一台PC机中内存的作用仅次于CPU。
指令和数据是应用上的概念。
在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。
例如,内存中的二进制信息1000100111011000,计算机可以把它看做大小为89D8H的数据来处理,也可以将其看做指令 mov ax,bx来处理
离开了内存,性能再好的CPU也无法工作。
磁盘不同于内存,磁盘上的数据或程序如果不读到内存中,就无法被CPU 使用。
2.存储单元
计算机的最小信息单位是bit(比特),也就是一个二进制位。
而计算机的基本单位是字节(byte),1byte=8bit
一个存储单位可以存储一个Byte,即八个二进制位
对于大容量的存储器一般还用以下单位来计量容量(以下用B来代表Byte):
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
磁盘的容量单位同内存的一样,实际上以上单位是微机中常用的计量单位
三.CPU对存储器的读写
CPU要想进行数据的读写,必须和外部器件(标准的说法是芯片)进行三类信息的交互:
存储单元的地址(地址信息)
器件的选择,读或写命令(控制信息)
读或写的数据(数据信息)
在计算机中专门有连接CPU和其他芯片的导线(计算机能处理、传输的信号都是电信号,电信号当然要用导线传送),通常称为总线。
总线从物理上讲就是一根根导线的集合;
逻辑上划分为:
地址总线
数据总线
控制总线
1.如何命令计算机进行数据的读写呢?也就是说如何让CPU工作呢?
通过指令
当然包括机器指令和汇编指令
2.地址总线
CPU是通过地址总线来指定存储单元的。
地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。(10根地址总线,CPU可以访问1024个存储单元,一个存储单元存储字节)
1.有几根地址总线,CPU就可以传输几位二进制数,这10个二进制数可以表示2^10次方个不同的数据,大小区间为 0→1023。最小数为0,最大数为1023
2.一个CPU有N根地址总线,则可以说这个CPU的地址总线的宽度为N。
这样的CPU最多可以寻找2的N次方个内存单元。
3.数据总线
数据总线的宽度决定了CPU和外界的数据传送速度。每根数据总线一次传送一位二进制数,8根数据总线一次可传送一个8位二进制数据(即一个字节),16根数据总线一次可传送两个字节。
4.控制总线
有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。
所以,控制总线的宽度决定了CPU对外部器件的控制能力。
前面所讲的内存读或写命令是由几根控制线综合发出的:
其中有一根名为读信号输出控制线负责由CPU 向外传送读信号,CPU 向该控制线上输出低电平表示将要读取数据;
有一根名为写信号输出控制线负责由CPU向外传送写信号。
四.小结
(1)汇编指令是机器指令的助记符,同机器指令一一对应。
(2)每一种CPU都有自己的汇编指令集。
(3)CPU可以直接使用的信息在存储器中存放。
(4)在存储器中指令和数据没有任何区别,都是二进制信息。
(5)存储单元从零开始顺序编号。
(6)一个存储单元可以存储 8 个 bit (用作单位写成“b”),即 8 位二进制数。
(7)1B = 8b 1KB = 1024B
1MB = 1024KB 1GB = 1024MB
(8)每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出三种总线的宽度标志了这个CPU的不同方面的性能:
地址总线的宽度决定了CPU的寻址能力;
数据总线的宽度决定了CPU与其它器件进行数据传送时的一次数据传送量;
控制总线宽度决定了CPU对系统中其它器件的控制能力。
(9)
五.内存地址空间
什么是内存地址空间呢?
一个CPU的地址线宽度为10,那么可以寻址1024个内存单元,这1024个可寻到的内存单元就构成这个CPU的内存地址空间
1.主板
在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件。
这些器件通过总线(地址总线、数据总线、控制总线)相连。
这些器件有CPU、存储器、外围芯片组、扩展插槽等。扩展插槽上一般插有RAM内存条和各类接口卡
2.接口卡
CPU对外部设备不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展插槽上的接口卡。CPU可以直接控制这些接口卡,从而实现CPU对外设的间接控制。简单地讲是CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。
3.各类存储芯片
一台PC机中,装有多个存储器芯片,这些存储器芯片从物理连接上看是独立的、不同的器件。
从读写属性上看分为两类:
随机存储器(RAM,可读可写,但必须带电存储,关机后存储的内容丢失)和只读存储器(ROM,只读,关机后内容不丢失)
从功能和连接上分类:
1.随机存储器RAM
用于存放供CPU使用的绝大部分程序和数据,主随机存储器一般由两个位置上的RAM组成,装在主板上的RAM和插在扩展插槽上的RAM
2.装有BIOS的ROM
BIOS:Basic Input/Output System,基本输入输出系统。
BIOS是由主板和各类接口卡(如:显卡、网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插有存储相应BIOS的ROM。
3.接口卡上的RAM
某些接口卡需要对大批量输入、输出数据进行暂时存储,在其上装有RAM。
最典型的是显示卡上的RAM,一般称为显存。显示卡随时将显存中的数据向显示器上输出。换句话说,我们将需要显示的内容写入显存,就会出现在显示器上。
4.逻辑存储器
上述的那些存储器在物理上是独立的器件。
但是它们在以下两点上相同:
1、都和CPU的总线相连。
2、CPU对它们进行读或写的时候都通过控制线发出内存读写命令。
也就是说,CPU在操控这些物理上独立的存储器的时候,把它们都当做内存来对待,把它们总的看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。
1.所有的物理存储器被看作一个由若干存储单元组成的逻辑存储器;
2.每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间;
3.CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据
不同的计算机系统的内存地址空间分配情况是不同的。
我们在基于一个计算机硬件系统编程的时候,必须知道这个系统中的内存地址空间分配情况。这样才能正确的对相应存储器进行读写。
5.总结内存地址空间:
最终运行程序的是CPU,我们用汇编编程的时候,必须要从CPU角度考虑问题。
对CPU来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器即是我们所说的内存地址空间。
边栏推荐
- Statistics, 8th Edition, Jia Junping, Chapter 11 summary of knowledge points of univariate linear regression and answers to exercises after class
- 刷视频的功夫,不如看看这些面试题你掌握了没有,慢慢积累月入过万不是梦。
- [paper reproduction] cyclegan (based on pytorch framework) {unfinished}
- How to test whether an object is a proxy- How to test if an object is a Proxy?
- Statistics 8th Edition Jia Junping Chapter XIII Summary of knowledge points of time series analysis and prediction and answers to exercises after class
- 链队实现(C语言)
- 线程的实现方式总结
- Realize applet payment function with applet cloud development (including source code)
- 《统计学》第八版贾俊平第十二章多元线性回归知识点总结及课后习题答案
- 1.支付系统
猜你喜欢
sqqyw(淡然点图标系统)漏洞复现和74cms漏洞复现
Detailed explanation of network foundation routing
《统计学》第八版贾俊平第四章总结及课后习题答案
Sqqyw (indifferent dot icon system) vulnerability recurrence and 74cms vulnerability recurrence
数据库多表链接的查询方式
Proceedingjoinpoint API use
Lintcode logo queries the two nearest saplings
List and data frame of R language experiment III
Database monitoring SQL execution
Statistics 8th Edition Jia Junping Chapter 14 summary of index knowledge points and answers to exercises after class
随机推荐
flask实现强制登陆
后台登录系统,JDBC连接数据库,做小案例练习
Attack and defense world misc practice area (GIF lift table ext3)
《统计学》第八版贾俊平第八章假设检验知识点总结及课后习题答案
Detailed explanation of network foundation routing
SQL injection
Solutions to common problems in database development such as MySQL
Web vulnerability - File Inclusion Vulnerability of file operation
Intranet information collection of Intranet penetration (5)
Attack and defense world misc practice area (simplerar, base64stego, no matter how high your Kung Fu is, you are afraid of kitchen knives)
【指针】求字符串的长度
链队实现(C语言)
数字电路基础(五)算术运算电路
sqqyw(淡然点图标系统)漏洞复现和74cms漏洞复现
C language file operation
Wu Enda's latest interview! Data centric reasons
Intranet information collection of Intranet penetration (4)
MySQL中什么是索引?常用的索引有哪些种类?索引在什么情况下会失效?
Markdown font color editing teaching
刷视频的功夫,不如看看这些面试题你掌握了没有,慢慢积累月入过万不是梦。