汇编语言第二章总结

第二章里我们学习了寄存器的内容。了解到一个典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。前一章所说的总线,相对于CPU内部来说是外部总线。内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。在CPU中,运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接各种器件,  在它们之间进行数据的传送。

对于一个汇编程序员来说,CPU中的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。不同的CPU,寄存器的个数、结构是不相同的。8086CPU有14个寄存器,每个寄仔器有一个名称。这些寄存器是: AX、BX、CX、DX、SI、 DI、SP、BP、IP、 CS、SS、DS、ES、PSW。

一个字可以存在一个16位寄存器中,这个字的高位字节和低位字节自然就存在这个寄存器的高8.位寄存器和低8位寄存器中。若一个字型数据20000,  存在AX寄存器中,在AH中存储了它的高8位,在AL中存储了它的低8位。AH和AL中的数据,既可以看成是一个字型数据的高8位和低8位,这个字型数据的大小是20000;又可以看成是两个独立的字节型数据,它们的大小分别是78和32。

CPU访问内存单元时,要给出内存单元的地址。所有的内存单元构成存储空间是一个一维的线性空间,每一一个内存单元在这个空间中都有唯一的地址,  我们将这个唯一的地址称为物理地址。CPU通过地址总线送入存储器的,必须是一一个内存单元的物理地址。在CPU向地址总线上发出物理地址之前,必须要在内部先形成这个物理地址。不同的CPU可以有不同的形成物理地址的方式。

在编程时可以根据需要,将若干地址连续的内存单元看作一个段,用段地址x16定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。有两点需要注意:  段地址x16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;  偏移地址为16位,16位地址的寻址能力为64KB, 所以一个段的长度最大为64KB。

CS和IP是8086CPU中两个最关键的寄存器,它们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP 为指令指针寄存器,从名称上我们可以看出它们和指令的关系。在8086PC机中,任意时刻,设CS中的内容为M,IP中的内容为N,8086CPU将从内存Mx16+N单元开始,读取一条指令 并执行。

在CPU中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制。CPU从何处执行指令是由CS、IP中的内容决定的,程序员可以通过改变CS、IP中的内容来控制CPU执行目标指令。

我们在适当的时候,会用已知的汇编指令的语法来描述新学的汇编指令的功能。采用一种“用汇编解释汇编”的方法来使读者更好地理解汇编指令的功能,这样做有助于读者进行知识的相互融会。要强调的是,我们是用“已知的汇编指令的语法”进行描述,并不是用“已知的汇编指令”来描述。

原文地址:https://www.cnblogs.com/thefat/p/9726889.html

时间: 2024-08-01 18:03:48

汇编语言第二章总结的相关文章

汇编语言 第二章 寄存器检测点2.2 第二题

这道题是汇编语言第二版的习题,一开始我也是百思不得其解,下面看看吧: 有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻址到此单元, 则SA 应满足的条件是:最小为 1001H 最大为 2000H :最大值: (很多人最大值很容易算出来,但是最小值卡住了,很纳闷为什么是1001H)我们可以根据原题列出一个式子: X * 10H + 0H = 20000H 我们之前是乘以16,但是那个16是十进制的,因为整个式子里都是16进制,加入个10进制去算会出错的所以呢,我们把16转

汇编语言第二章知识梳理及思考

第二章 寄存器(CPU工作原理) CPU概述 CPU由运算器.控制器.寄存器等器件组成,这些器件靠内部总线相连. 内部总线实现CPU内部各个器件之间的联系. 外部总线实现CPU和主板上其他器件的联系. 寄存器概述 8086CPU有14个寄存器: AX.BX.CX.DX.SI.DI.SP.BP.IP.CS.SS.DS.ES.PSW. 2.1通用寄存器 8086CPU所有的寄存器都是16位的,可以存放两个字节. 通用寄存器:AX.BX.CX.DX通常用来存放一般性数据. 以AX为例,寄存器的逻辑结构

汇编语言:第二章 寄存器

一个典型的CPU由运算器.控制器.寄存器组成,内部总线连接各部分器件 寄存器是程序员可以用指令读写的部件,通过改变寄存器里的内容从而实现控制CPU, 不同CPU 寄存器的个数结构是不一样的,8086有14个寄存器 2.1通用寄存器 8086所有的寄存器都是16位的,可以存放2个字节,AX.BX.CX.DX用于存放一般性数据,成为通用寄存器 为了兼容旧的8位寄存,每个16位寄存器可以分为2个单独的8位寄存器来使用,名字分别用AH.AL来表示高8位和低8位 2.2字在寄存器中的存储 字节byte:可

汇编语言第二章知识梳理

一个典型的cpu由运算器.控制器.寄存器等器件组成,这些器件靠内部总线相连. 内部总线实现cpu内部各个器件之间的联系.外部总线实现cpu和主板上其他器件的联系. 8086CPU中的14个寄存器:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW 概括的讲,16位结构描述了一个cpu具有以下几个方面的特征:(1)运算器一次最多可以处理16位的数据.(2)通用寄存器的最大宽度为16位.(3)寄存器和运算器之间的通路是16位的. 8086cpu有20位地址总线,可传

汇编语言第二章实验

学习当然不能只是看书上的知识啦,只有实际上手操作才能体验到计算机语言的乐趣与奥妙.接下来就是我根据书上的实例和实验在个人计算机上做出的练习 先熟悉一下-e  -a等命令 CS=073F,IP=0100,所以内存073F:0100处的指令为cpu当前要读取和执行的指令,此处存放的机器码为00 00 ,对应的汇编指令为ADD balabalbla -r命令可以改变寄存器中的内容(修改cs与ip的内容) -d查看10000H(1000:0)内存处的内容(-d 1000:0会列出当前地址开始的128哥内

第二章--汇编语言 (修订版)

稍微有点儿计算机知识的朋友一定知道,计算机是只识别0和1的,最初那会儿,要写程序,就要用0和1来写,呵 呵,Cool吧!所以曾经有过的对程序员的崇拜,可能就源自那个时候吧 后来,人们发现用0和1来写程序,太不爽了,不但写起来不上手,而且回过头来看的话,应该很难再看明白了,总之出于这些原因,就有了汇编语言. 汇 编语言用一些助记符来代替0和1的多种组合,也就是各个指令,这样的话,从一定程度上来说,方便了许多(一头老牛:方便太多了)(一只菜鸟:一点儿也不方 便,完全看不懂).但是,汇编也同样不方便,

《大道至简》第二章阅读笔记

<大道至简>这本书在第二章中的主要内容是“懒人创造方法”!因为一个勤勤恳恳.老实工作的人是不太可能会懂得创新的,因为他只知道认真仔细的工作,一点一滴.一丝不苟.按部就班的按照上司交给他的内容,因为他认真负责,不容许自己出现一点纰漏.而懒人则不一样了,因为工作量庞大,所以他们自己因为懒惰而各种寻找方法,从而减轻自己的工作量,动脑筋让自己的实际工作量减到最小,而这时就需要开动脑筋,让自己想出一个可行的办法,从而实现自己的目的. 在这本书的第二章开头,还是延续了这本书的惯例,用一个寓言小故事来引入本

大道至简(周爱民)第二章-----读后感

今天把周爱民大道至简的第二章关于是懒人造就了方法读了几遍,作者通过战国时李冰凿山与愚公移山的比较来阐述懒人早就方法主题,以前听历史老师讲课的时候正是因为懒人才会有那么多可以节省人们力气和时间的发明,但懒人并不是真的懒,只是把更多的时间用到了思考上面与观察生活细节上面,正如文中作者所说愚公太勤快了,勤快的今天可以比昨天凿出一倍的石头,以致没有了机会去寻找更快的方法,人的精力终归是有极限的.提出新的方法,解决的将是做事成效的根本问题.而愚公可以多吃点饭,多加点班,但却突破不了人的精力极限.   文中

王爽《汇编语言第二版》读后感。

读了王爽的<汇编语言第二版>已经快两个月了,前几章写的都是些好理解的,所以速度稍快,到了中间,需要运用前面所学知识才能消化,所以有些稍慢.中间章节是汇编的语言核心,所以后面几章是汇编语言组织方式(子程序,中断安装等)和编程技巧,最爽的是有大段大段的完整代码展示.如果认真读过,经过中间章节的彷徨,到最后几章略有大功告成之感,速度稍快,跟心情感觉有很大关系.书中每个章节的题目都认真分析了,在网上下载了<王爽<汇编语言>第二版的习题答案>.不说了,虽然理解了书中代码,但一些编