文档章节

《汇编语言》第1章

UFO2048
 UFO2048
发布于 2014/09/22 18:15
字数 752
阅读 35
收藏 1

1.1 机器语言

机器语言是机器指令的集合。电子计算机的机器指令时一列二进制数字。

早期程序设计均使用机器语言。

计算机是指由CPU和其他受CPU直接或间接控制的芯片、器件、设备组成的计算机系统,比如PC机。

1.2 汇编语言的产生

汇编指令时机器指令的助记符,同机器指令一一对应。
每一种CPU都有自己的汇编指令集。

1.3 汇编语言的组成

(1)汇编指令:机器码的助记符,有对应的机器码。

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

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

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

1.4 存储器

CPU可以直接使用的信息在存储器中存放。

1.5 指令和数据

在存储器中指令和数据没有任何区别,都是二进制信息。

1.6 存储单元

存储单元从0开始顺序编号。
一个存储单元可以存储8个bit,即8位二进制数。

1.7 CPU对存储器的读写

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

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

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

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

在CPU中专门有连接CPU和其他芯片的导线,通常称为总线。总线从物理上来讲,就是一根根导线的集合。根据传送信息的不同,总线从逻辑上分为3类,地址总线、控制总线和数据总线。

CPU从3号单元中读取数据的过程如下:

每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出3中总线的宽度标志了这个CPU的不同方面的性能:

  • 地址总线的宽度决定了CPU的寻址能力;

  • 数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;

  • 控制总线的宽度决定了CPU对系统中其他器件的控制能力。

ps: 控制总线是一些不同控制线的集合。

1.15 内存地址空间

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

The ends。

© 著作权归作者所有

共有 人打赏支持
UFO2048
粉丝 0
博文 15
码字总数 12411
作品 0
唐山
私信 提问
JVM规范系列第3章:为Java虚拟机编译

Oracle 的 JDK 包括两部分内容:一部分是将 Java 源代码编译成 Java 虚拟机的指令集的编译器,另一部分是用于Java 虚拟机的运行时环境。 第一部分应该说的是 Javac 这个前置编译器,用于将J...

陈树义
2018/12/19
0
0
深入理解程序设计使用linux汇编语言--第3章练习题

1.程序中的某一行以字符"#"开始意味着什么? 以字符"#"开头在汇编语言中是注释,汇编程序不会对注释进行任何处理。 2.汇编语言文件和对象代码之间有何区别? 汇编语言文件里的汇编语言是方便...

guonaihong
2015/07/05
0
0
阅读《深入理解程序设计使用linux汇编语言》

以前有过,对熟悉汇编后的幻想。 如果会汇编,能打印coredmp文件里函数参数(没有用gcc -g 编译)的就好了。。 好吧,现在满足自己的心愿。 开始时间:6,30 结束时间:8,30 状态:closed 第3...

guonaihong
2015/06/30
0
2
《汇编语言》看完后再看那本书更好点?选择太多,不知道选哪一个,,,,,

正在看《汇编语言》王爽那本,看完后再看以下的那一本更好点? 1、x86汇编语言:从实模式到保护模式 作者:李忠,王晓波,余洁 著 2013-01-01 2、Windows环境下32位汇编语言程序设计 作者:罗...

Heminzhang
2013/04/29
1K
5
Python学习笔记-Day1

初识Python 第1章 初识Python 1.1什么是编程? 编程的目的就是:让机器按照人们事先为其编写好的程序自发地去工作。 1.2编程语言分为哪些种类? 1.2.1机器语言 机器语言是用二进制代码表示的...

白马探花M10
2017/07/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【C++】智能指针简述(四):shared_ptr

  在开始本文内容之前,我们再来总结一下,前文内容:   1.智能指针采用RAII机制,在构造对象时进行资源的初始化,析构对象时进行资源的清理及汕尾.   2.auto_ptr防止拷贝后析构释放同一块内...

shzwork
24分钟前
1
0
作为Java程序员这些技术都不会,拿什么去涨薪跳槽?

引言 当下,正面临着近几年来的最严重的互联网寒冬,听得最多的一句话便是:相见于江湖~,缩减HC、裁员不绝于耳,大家都是人心惶惶,年前如此,年后想必肯定又是一场更为惨烈的江湖厮杀。但博...

别打我会飞
48分钟前
2
0
springboot开发之定时器quartz 定时任务调度(压缩版,抽取quartz的单个任务表实现)

前言 老了, 记不住了, 好记性不如烂笔头; 没想到曾经过目不忘的我, 也有这么一天, 岁月蹉跎,学习一天不如一天 难受 Quartz可以用来做什么? Quartz是一个任务调度框架。比如你遇到这样的问题...

尾生
52分钟前
11
0
技术经理平时都干啥?

「技术主管」是开发团队中的某位程序员需要对一起创建系统的整个开发团队负责时所承担的角色。通常他既要对最终交付的软件系统负责,另外也会像一个程序员一样去开发实现系统。 一个技术主管...

春哥大魔王的博客
今天
7
0
java工作流引擎Jflow流程事件和流程节点事件设置

流程实例的引入和设置 关键词: 开源工作流引擎 Java工作流开发 .net开源工作流引擎 流程事件 工作流节点事件 应用场景: 在一些复杂的业务逻辑流程中需要在某个节点或者是流程结束后做一些业...

ccflow周朋
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部