8086汇编--1.王爽《汇编语言》

1 基础知识

1.1 机器语言

  • 机器语言是机器指令的集合。电子计算机的机器指令是一系列二进制数字。计算机将之转换为一系列高低电平脉冲信号来驱动硬件工作的。

1.2 汇编语言的产生

  • 机器语言难记忆、易出错、效率低下,之后诞生了汇编语言。汇编语言的主体是汇编指令。
  • 示例
    操作:寄存器BX的内容送到AX中
    机器指令:1000100111011000
    汇编指令:mov ax,bx
    在这里插入图片描述

1.3 汇编语言的组成

汇编语言的组成如下,其中汇编指令时核心。

  • 汇编指令:机器码的助记符,有对应的机器码。
  • 伪指令:没有对应的机器码,由编译器执行,计算机并不执行。
  • 其他符号:如+、-、*、/等,由编译器识别,没有对应的机器码。

1.4 寄存器

1.5 指令和数据

  • 指令和数据对应到计算器都是二进制数据,同一个二进制数据可作为数据也可作为指令。
  • 示例:
    1000100111011000 -> 89D8H(数据)
    1000100111011000 -> mov ax,bx(指令)

1.6 存储单元

存储单元从零开始顺序编号。
一个存储单元可以存储8bit,一个字节。

1.7 CPU对存储器的读写

在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。总线在物理上就是一根根导线的集合。根据传送信息的不同,总线从逻辑上又分为3类,地址总线、控制总线和数据总线。
在这里插入图片描述

  • CPU通过地址线将地址信息3发出。
  • CPU通过控制线发出内存读命令,选中存储器芯片,并通知它,将要从中读取数据。
  • 存储器将3号单元中的数据8通过数据线送入CPU。写操作与读操作的步骤相似。

1.8 地址总线

  • CPU是通过地址总线指定存储单元,地址总线传送的能力决定了CPU对存储单元的寻址能力。(一般32位CPU,寻址能力为2^32=4G)

1.9 数据总线

  • CPU通过数据总线来与内存等器件进行数据传送,数据总线的宽度决定了CPU和外界的数据传送速度。

1.10 控制总线

  • 控制总线是一些不同控制的集合,CPU通过控制总线对外部器件的控制。控制总线的宽度决定了CPU对外部器件的控制能力。

1.14 各类存储器芯片

在这里插入图片描述

1.15 内存地址空间

在这里插入图片描述
每个物理存储器在这个逻辑存储器中占有一个地址段,即一段地址空间。CPU在这段地址空间中读写数据,实际上就是在相对应的物理存储器中读写数据(对ROM写无效)。
在这里插入图片描述

2 寄存器

CPU由运算器、控制器、寄存器 等器件组成,靠内部总线相连。
内部总线实现CPU内部各器件之间的联系;外部总线实现CPU和主板上其他器件的联系。

2.1 通用寄存器

8086有14个寄存器:
AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、CS、ES、PSW。
AX、BX、CX、DX通常用来存放一般性数据,被称为通用寄存器。
16位寄存器所能存储的数据最大值为216-1 。
为保证兼容性,8086 CPU的通用寄存器可以分为两个独立的8位寄存器使用。例: AX可分为AH和AL。

2.2 字在寄存器中的存储

086 CPU所有的寄存器是16位,可以存放2个字节(一个字)。
在这里插入图片描述
8086采用小端模式:高地址存放高位字节,低地址存放低位字节。

2.3 几条汇编指令

在这里插入图片描述

2.6 8086CPU给出物理地址的方法

地址加法器采用物理地址=段地址X16+偏移地址的方法合成物理地址。
在这里插入图片描述

2.7 段地址X16+偏移地址=物理地址的理解

以123C8为例的一个物理地址,16进制的寄存器存储不了,就分为基础地址和偏移地址,基础地址12300,16进制寄存器存储不了,就定规则为段地址X16,这个解决了物理地址的存储问题。

2.8 段的概念

地址10000H~100FFH的内存单元组成一个段,该段的起始地址(基础地址)为10000H,
段地址为1000H,大小为100H;也可以认为是地址10000H1007FH、10080H100FFH的内存单元组成两个段,该段的起始地址(基础地址)为10000H和10080H,段地址为:1000H和1008H,打小都为80H。
在这里插入图片描述

2.9 段寄存器

8086 CPU有4个段寄存器:CS(代码段)、DS(数据段)、SS(堆栈段)、ES(附加段),这4个段提供给8086CPU内存单元的段地址。

2.10 CS和IP

CS(代码段寄存器) 和IP(指令指针寄存器) 是8086CPU中最关键的寄存器,它们指示了CPU当前要读取指令的地址。在任意时刻CPU将CS:IP指向的内容当作指令执行。
CS为代码段寄存器,IP为指令指针寄存器,
CPU将CS、IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物理地址,
CPU将CS:IP指向的内容当作指令执行。(即PC)
在这里插入图片描述
8086CPU的工作过程简要描述
从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
IP=IP+所读取指令的长度,从而指向下一条指令;
执行指令。转到步骤1,重复这个过程。

2.11 修改CS、IP的指令

  • mov指令(传送指令) 可以改变8086CPU大部分寄存器的值,但不能用于设置CS、IP的值。
  • jmp指令(转移指令) 可以用来同时修改CS和IP的值,格式为
jmp 段地址:偏移地址;同时修改CS和IP
jmp 某一合法寄存器;则是仅修改IP

3 寄存器

参考

1、《汇编语言》 [王爽]
2、x86汇编语言笔记(全)(长文警告)
3、王爽《汇编语言》笔记(详细)
4、汇编入门(长文多图,流量慎入)

汇编语言(第3版)》是我国计算机科学教育领域的-部重要的经典著作。   《汇编语言(第3版)》可用作大学计算机专业本科生的汇编教材及希望深入学习计算机科学的读者的自学教材。本书自出版以来,受到业内专家和高校教师、广大计算机专业学生和计算机科学与技术学习者的热烈欢迎和高度评价。100多所高校用作教材,取得了非常好的教学效果。很多人在网络上将其与国外同专业名著相并列向广大读者推荐。本书很大程渡地推动了我国计算机科学与技术教育的发展。   《汇编语言(第3版)》出版10年连续印刷了30次,成为本专业学生和广大学习者的必读书。为满足新的出版需要,本社特请王爽老师对此书的第2版进行了修订,出版第3版,以飨读者。书评赏析本书是国内原创的极少的经典书籍,通俗易懂,高屋建瓴,实践和理论相结合,看完之后对于许多知识点有种豁然开朗的感觉。这本书完全是-切以学生为中心的,活泼生趣,讲得非常不错!要是我们的课本都是这么样就好了,不像有些教材写得那么晦涩难懂、就像看古文-样。要学汇编这本书是必不可少的!   《汇编语言(第3版)》很好地把握了“教”与“学”的关系,确实是一本独-无二的汇编书籍,能极好地激发学习汇编的热情和勇气。想深入学习汇编语言的,这本教材是一个很好的选择,它打破了传统教材的教学顺序,但是能极大保证读者每章都能明白,做到真正的循序渐进。好久没有看到一本这么适合初学者的书了,作者的用心是良苦的。作者在排版、布局和知识点方面都下了功夫,而且是大功夫,以至于全书的结构如此精良,能让初学者在短时间内上手,不会感到一丝吃力。非常值得推荐!王爽老师的这本书写得是很有思想的,是一种教育的思想而不是单纯的知识积累。它能和国外经典教材并称于世绝非偶然,相信它能帮助每一个学习者更好地学习理解汇编语言
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

worthsen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值