汇编语言程序设计第二章小结

一、通用寄存器:AX、BX、CX和DX。(均为16位,可存放2个字节)。都可以分为两个独立的8位寄存器。(eg:AH和AL,其中AL为低8位,AH为高8位。)

二、字在寄存器中的存储

1字节(byte)=8bit,1个字=2字节=高位字节+地位字节,分别对应存在高位寄存器和低位寄存器中。

三、汇编指令

注意:在写一条汇编指令或一个寄存器名称时不用区分大小写。

引入:mov和add

溢出问题:AH和AL是两个不相关到的寄存器,当操作AL中有进位时,AL不会向AH进位。

(eg: mov ax,00C5H

add al,93H

执行前al中的数据为C5H,相加后得到158H,但是al是8位寄存器,只能放两位16进制的数据,所以最高位的1丢失。ax中的数据为:0058H。这里的丢失指的是进位值不能在8位寄存器中保存,但是并不是CPU真的丢弃这个进位值。)

进行数据的传送或运输时,两个操作对象的位数需要相同。

(eg:错误指令:mov al,20000   8位寄存器最大可以存放的值为255的数据)

四、物理地址

所有的内存单元构成的存储空间是一个一维的线性空间,每个内存空间在这个空间中都有的惟一的地址,成为物理地址。

五、16位结构的CPU

结构特性:

1、运算器一次最多可以处理16位的数据。

2、寄存器的最大宽度为16位。

3、寄存器和运算器之间的通路为16位。

六、8086CPU给出物理地址的方法

读写内存步骤:

1、CPU中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址。

2、段地址和偏移地址通过内部总线送入一个称为地址加法器的部件。

3、地址加法器将两个16位地址合成为一个20位的物理地址。

(物理地址=段地址*16+偏移地址)

4、地址加法器将通过内部总线将20位物理地址送入输入输出控制电路。

5、输入输出控制电路将20位物理地址送上地址总线。

6、20位物理地址被地址总线传送到存储器。

七、“段地址*16+偏移地址=物理地址”的本质含义

类比“基础地址+偏移地址=物理地址”

八、段的概念

段地址*16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址为16位,16位地址的寻址能力为64KB,所以一个段的长度最大为64KB

同一个物理地址可以被CPU用不同的段地址和偏移地址形成。

给定段地址的情况下,仅用偏移地址来寻址,最多可以寻64KB个内存单元。

九、段寄存器

8086CPU有四个段寄存器:CS、DS、SS和ES。

十、CS和IP

CS为代码段寄存器,IP为指令指针寄存器,任意时刻CPU将CS:IP指向的内容当作指令执行。

工作过程:

1、从CS:IP指向的内存单位读取指令,读取的指令进入指令缓冲器;

2、IP=IP+所读取的指令的长度,从而指向下一条指令;

3、执行指令。转到步骤1,重复改过程。

CS或IP值变化后,执行控制器执行上一条指令???

十一、修改CS、IP的指令

jmp指令:运用形式:jmp 段地址:偏移地址(CS:IP)

jmp 某一合法寄存器    jmp ax,=mov IP ,ax(仅仅修改IP的值)

十二、引入概念代码段。(略)

本章主讲了寄存器的功能,以及数据在其中的存放。引入了mov,add和jmp的作用和使用方法、物理地址,段地址和偏移地址的关系和8086CPU工作的本质过程。注意计算的细节,以及代码段中jmp改变CS与IP的值的时间。

原文地址:https://www.cnblogs.com/Yangruzhang/p/9729463.html

时间: 2024-11-05 22:44:34

汇编语言程序设计第二章小结的相关文章

第二章小结

第二章小结 早听说数据结构要比程序设计要难,我早早就做好了心理准备,可是现实好像比我想象的还要难一些.这个星期基本结束了第二章关于线性表的学习.对于顺序表,上学期接触的比较多学起来还算比较顺利.链表就有一点困难了.书上没有完整的代码段,只是一些算法,不得不说一开始我真的有点蒙圈的感觉.但后面经过了预习以及上网查找资料就开始慢慢接受了单链表. 和顺序表不同,单链表是存储在连续或者不连续的空间里面的.每一个数据都必须跟着一个地址,指向下一个数据.虽然可能空间利用率比不上顺序表,但在插入删除操作时就显

C++ 编程第二章小结

switch()用法的注意事项 1:switch语句中的表达式只能是整形数据,字符型数据和枚举型数据,case后面的产量表达式的类型必须与switch括号后面的类型相匹配 2:各个case(包括default)的出现次序可以任意,每个case在带有break的前提下,case的次序不影响执行结果 循环设计 循环设计的几种分类方法这里介绍几种 1:字符图形类 2:素数判断类 3:逻辑判断类 4:级数逼近类 a:对于图形类的基本循环格式一般是 for(int i = 1; i < 10 ;i ++)

Javascript高级程序设计——第二章:在HTML中使用Javascript

第二章:在HTML中使用Javascript <script>元素 向HTML页面中插入Javascript的主要方法,就是使用<script>元素,<script>元素有六个属性: async:可选.表示应该立即下载脚本,但不妨碍页面的其他操作,比如下载其他资源或等待加载其他脚本,只针对外部脚本有效. defer:可选.表示脚本可以延迟到文档完全被解析和显示之后再执行.只针对外部脚本有效. src:可选.表示包含要执行代码的外部文件. type:可选.表示编写代码使用

[看书][CSS精粹(第2版)]第二章小结

刚看完CSS精粹的第二章,主要讲了跟文字样式相关的操作方面的东西. 虽然这本书貌似挺遭嫌弃(豆瓣上都没什么人标记),也的确内容有些过时,但我还是觉得有些基础的东西可以学习下,CSS方面比较基础又比较实用的东西. 重点是链接a.列表ul.标题行h和基本元素段落p的文字布局东西. a元素的伪类定义,下划线 列表ul的第一个列表项伪类first-child的定义,列表项的项目符号(符号修改和使用图片),列表项水平显示 标题行h的背景色,下划线,与后续段落之间的大间隔去除 段落p的行高,水平线,缩进,首

【数据结构】第二章小结

ps:第一次用博客园写,记录第一次 一.数据结构第二章主要为:顺序表和链表的构造及其增删查改的一些基本操作,以及粗略计算它们的时间or空间的复杂度. 1.顺序表: (1)  特点:逻辑结构上相邻,物理存储上也是相邻的,属于随机存储: (2)  优点:便于使用下标进行查找,例如:查找某数组的第6项的数据是几: 存储密度为1: (3)    缺点:由于其物理存储相邻,故无法将空间中零零散散的碎片空间利用起来: 2.链表: (1)   特点:逻辑结构上相邻,物理存储上不一定相邻的,属于顺序存储: 单链

数据结构第二章小结

第二章主要学习的是线性表,其中包含了顺序表以及链表,顺序表有两种结构体定义,一种是指针,再申请相应数组空间,一种是直接定义数组,前者数组为堆空间,后者则为栈空间,如果数组长度过大,得考虑空间是否充足问题,因而前者适用性更好: 链表主要为单链表,循环链表,双向链表:主要涉及到删除.查找.插入等操作,在学习链表过程中,主要问题是没能充分理解语句的意思,在插入语句中,类似p=s(p为辅助指针.s为指向新结点的指针)总是理解为这一步就插入成功了,插入应该是通过辅助指针来改变所指向的结点的数据域,这样才是

汇编语言第三章小结

第三章 内存访问 字数据在内存中的存储 1.      内存以字节为单位,划分为若干个单元 2.      字数据的存-取原则:高-高  低-低(小端法) 即: ① 字数据的低位字节存放在低地址内存单元 字数据的高位字节存放在高地址内存单元 ② 取低地址内存单元地址作为字数据地址 例1: 字数据124EH的地址是( 1 ) 字数据3020H存入内存后地址为4,则4存放( 30H ),3存放( 20H ) 例2: 从地址单元1取出一个 (1)     字节数据为:  4EH (2)     字数据

信号完整性第二章小结

信号的上升时间通常是从终值的10%~90%的时间 理想方波的频谱幅度以速率1/f下降 如果去掉方波中较高的频率分量,上升时间久会增加 信号的带宽是0.35/(信号的上升时间) 只要减小信号带宽,上升时间就会增加 测量带宽是指具有较好测量精度时,信号的最高频率分量 模型的带宽是指模型的预测值与互连线的实际性能的测量值能很好吻合时候最高正弦波频率分量 互连线的带宽是指信号的性能依然能满足指标时的最高正弦波频率

读书笔记 - javascript 高级程序设计 - 第二章 在Html中使用JavaScript

1 <script>的6个属性 async  立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer  文档显示之后再执行脚本,只对外部脚本有效 language 没用了 src type 描述代码内容Mine类型 默认就是text/javascript 没什么用 2 在解释器对<script>元素内部的所有代码求值完毕以前 页面中的其余内容都不会被浏览器加载或显示 3 有两种script 嵌入式 外部引入式 在解析外部引入式的js文件时,页面的