《汇编语言(第二版)》
——笔记•敉沧
第一章:基础知识
<附>进制数示例(1-15):
二进制: 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
八进制: 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
十进制: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
十六进制:1 2 3 4 5 6 7 8 9 A B C D E F
1111=8+4+2+1=15
1000=8
0100=4
0010=2
0001=1
机器语言是机器指令的集合。
每种微处理器都有自己的机器指令集。
汇编语言发展至今,有以下3类指令组成。(1)汇编指令:机器码的助记符,有对应的机器码。
(2)伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
(3)其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。
汇编语言的核心是汇编指令,他决定了汇编语言的特性。
CPU要想进行数据的读写,必须和外部芯片进行下面3类信息的交互。
•存储单元的地址(地址信息);
•器件的选择,读或写的命令(控制信息;)
•读或写的数据(数据信息)。
一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。
内存读或写的命令是由几根控制线综合发出的,其中有一根称为“读信号输出”的控制线负责由CPU向外传送读信号,CPU向该控制线上输出低电平表示将要读取数据;有一根称为“写信号输出”的控制线则负责传送写信号。
CPU可以直接使用的信息在存储器中存放。
在存储器中指令和数据没有任何区别,都是二进制信息。(被CS:IP指定的内存单元地址的内容认为是指令。)
存储单元从0开始顺序编号。
一个存储单元可以存储8个bit(一个Byte),即8位二进制数。
每个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出3种总线的宽度标志了这个CPU的不同方面的性能:
*地址总线的宽度决定了CPU的寻址能力;(2^N,N表示宽度。)
*数据总线的宽度决定了CPU与其它器件进行数据传送的一次数据传送量;
*控制总线的宽度决定了CPU对系统中其它器件的控制能力。
在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件,这些器件通过总线相连。这些器件有CPU、存储器、外围芯片组、扩展插槽等。扩展插槽上一般插有RAM内存条和各类接口卡。
CPU对外部设备都不能直接控制,直接控制这些设备进行工作的是插在扩展插槽的接口卡。CPU可以直接控制这些接口卡,从而实现CPU对外设的间接控制。
存储器芯片从物理连接上看是独立的、不同的器件。从读写属性上看分为两类:随机存储器(RAM)和只读存储器(ROM)。随机存储器可读可写,但必须带电存储,关机后存储的内容丢失;只读存储器只能读取不能写入,关机后其中的内容不丢失。
这些存储器从功能和连接上又可分为以下几类。
随机存储器:用于存放CPU使用的绝大部分和数据。
装有BIOS(Basic Input/Output System,基本输入/输出系统)的ROM:可以通过它利用该硬件设备进行最基本的输入输出。
接口卡上的RAM:某些接口卡需要对大批量输入、输出数据进行暂时存储,在其上装有RAM。
内存地址空间的大小受CPU地址总线宽度(寻址能力)的限制。(计算方法:2^N,N表示地址总线宽度)
对CPU来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中。
- [kanwangxue] 如果是文字的,不是特别好啊,体力活,如果文字还加点动画,那就必须顶了。 01/15 01:10
- [kanwangxue] 必须顶啊。 01/15 00:54
- [ltoiii] 既然是实现loop功能,是否要考虑s和se标号? mov bx,offset s - offset 12/09 12:09
- [xiaoyao2012] 正确 11/01 15:33
- [xuer2016] 又找到2条被我忽视的地方: 1.PUSH 和 POP 针对字单元 2.POP 不能是CS 10/26 10:57
- [xuer2016] 学习了 我书写不规范,16进制字母前不加0,后面不加H,以后要注意了。。。 10/26 10:51
- [xuer2016] 来老师这学习下 10/26 10:31
- [youthangel] 不妙,CPU的利用率一下子就上去了。还好我的处理器不是太弱,35%左右的利用率。建议博主在修改一下 10/20 08:23
- [fpamc] 在我心里她就是我的女神。 10/02 08:58
- [newpeople] 你女朋友用得了简直就是一个女神…… 10/01 08:10
- [99998888] 请您指点一下如何找到会ASSEMBLER 语言的翻译,翻译成中文或英文。我的QQ ; 9097815 07/25 09:56
- [jeremy] 我觉得你学习的挺好,可以加你扣扣吗?我的469614823 08/07 14:46
- [zhangbo0805] 哈哈, 你好呀!很希望认识你呀!我发现你学习的积极性很高!正想向您学习呢! 07/31 23:31
- [tomato] 知道了,排得还挺满。 05/29 16:35
- [tomato] 现在学习情况怎么样?在做课设二还是什么? 05/29 10:41
- [tomato] 你的留言收到了。 05/05 23:51
- [fpamc] 开始学习c咯! 05/03 21:40
- [fpamc] 居然不能发博客了……! 04/22 21:03
- [tomato] 你相册中的游戏界面我看过了,非常好,界面很漂亮,很有创造力。博主,很有潜力。加油,一定能把这个游戏做 04/20 23:46
- [fpamc] 忙了半个月,不在家,没时间学习汇编。 但是在途中想到了一个有史以来最难的程序。对于刚学完9章的我。 04/13 20:56