汇编语言程序设计(基于8086处理器)

总章节

第一部分_基础知识

1.1机器指令

如:1000100111011000
机器指令可以用汇编语言来实现:
如:MOV AX,BX 就是将寄存器BX的内容送到AX中。

1.2寄存器

寄存器:简单的讲是CPU中可以存储数据的器件,一个CPU中有多个寄存器。
AX是其中一个寄存器的代号。
BX是其中一个寄存器的代号。

1.3汇编语言的组成

1.汇编指令(机器码的助记符)。汇编语言的核心是汇编指令。
2.伪指令(由编译器执行)。它决定了汇编语言的特性。
3.其他符号(由编译器识别)

1.4存储器

CPU是计算机的核心部件,它控制整个计算机的运作并进行运算,要像让一个CPU工作,就必须向它提供指令和数据。
指令和数据在存储器中存放,也就是平时所说的内存。

1.5指令和数据

指令和数据是应用上的概念。
在内存或磁盘上,指令和数据没有任何的区别,都是二进制消息。
二进制消息:1000|1001|1101|1000
数据信息:89D8H(数据)H表示Hex 16进制 。 B:表示二进制 B表示Byte
程序信息:MOV AX,BX

1.6存储单元

存储器被划分为若干个存储单元,每个存储单元从0开始顺序编号。
例如:
一个存储器由128个存储单元 。 编号从0~127
1kb=1024B 1MB=1024Kb
1Gb=1024Mb 1Tb=1024Gb
磁盘的容量单位同内存的一样,实际上以上的单位都是微机中常用的计量单位。

1.7CPU对存储器的读写

CPU要想进行数据的读写,必须与外部器件(标准的说法是芯片)进行三类信息的交互;
1.存储单元的地址(地址信息)
2.期间的选择,读或写命令(控制信息)
3.读或写的数据(数据信息)
提问: CPU是如何讲地址,数据和控制信息传到存储芯片中的?
答:电子计算机能处理,传输的信息都是电信号,电信号当然要用导线传送。
在计算机中专门有连接CPU和其他芯片的导线,通常称为总线。
在物理上:是一根根导线的集合;
在逻辑上划分为:1.地址总线 2.数据总线 3.控制总线
总体在逻辑上划分的图示为:
在这里插入图片描述

CPU
地址总线
数据总线
控制总线
内存

1.8地址总线

CPU是通过地址总线来制定存储单元的。
地址总线上能传送多少个不同的信息,CPU就可以对多少个存储单元进行寻址。
1B=8b(bit) 翻译过来就是1B等于8位,1位等于一个数据。
请添加图片描述
在CPU区域内,有一连串的数字,这里要注意,最上面的是底位,下面的是高位,逐渐增加。
上面的图片读出来的是1011而不是1101。
一个CPU有N根地址总线,则可以说这个CPU地址总线的宽度位N.
而这样的CPU最多可以寻址2的N次方个内存单元。

1.9数据总线

CPU与内存或其他器件之间的数据传送是通过数据总线来进行的。
数据总线的宽度决定了CPU和外界的数据传送速度。

1.10控制总线

CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些控制线的集合。
有多少根控制总线,就意味着CPU提供了对外部器件的多少种控制。
所以,控制总线的宽度决定了CPU对外部器件的控制能力。

前面所讲的内存读写命令是由几根控制线综合发出的
1.其中有一根名为读信号输出控制线负责由CPU向外传送读信号,CPU向该控制线上输出低电平表示将要读取数据。
2.有一根名为写信号输出控制线负责由CPU向外传送写信号。

小结:

1.汇编指令是机器指令的助记符,同机器指令一一对应。
2.每一种CPU都有自己的汇编指令集。
3.CPU可以直接使用的信息在存储器中存放。
4.在存储器中,指令和数据没有任何的区别,都是二进制信息。
5.存储单元从零开始顺序编号。
6.一个存储单元可以存储8个bit(用作单位写成“b”),即8位二进制数。
7.1B=8b  1Kb=1024B 1Mb=1024Kb 1Gb=1024Mb
8.每一个CPU芯片都有许多管脚,这些管脚和总线相连。也就是说,这些管脚引出地址总线。一个CPU可以引出三种总线的宽度标志着这个CPU的不同方面的性能。

1.11内存地址空间(概述)

问:什么是内存地址空间?
答:一个CPU的地址线宽度为10,那么可以寻址1024个内存单元,这1024个可寻址的内存单元就构成这个CPU的内存地址空间。

1.12主板

1.在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件。
2.这些器件通过总线(地址总线,数据总线,控制总线)相连。

1.13接口卡

1.计算机机系统中,所有可用程序控制其工作的设备,必须受到CPU的控制。
CPU对外部设备不能直接控制,如显示器,音箱,打印机等,直接控制这些设备进行工作的是插在扩展槽上的接口卡。

1.14各类存储器芯片

1.从读写属性上看分为两类:
随机存储器(RAM)和只读存储器(ROM)
2.从功能和连接上分类
  01.随机存储器RAM.
  02.装有BIOS的RAM.
  03.接口卡的RAM
解释一下装有BIOS的ROM
BIOS:Basic Input/Out System 基本输入输出系统。
BIOS是主板和各类接口卡(如:显卡,网卡等)厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出,在主板和某些接口卡上插有存储相应BIOS的ROM.
在这里插入图片描述

1.15内存地址空间

上述的那些存储器在物理上是独立存在的器件
但是他们在以下两点相同:
1.都和cpu总线相连
二:CPU对他们进行读或者写的时候都通过控制线发出内存读写命令。
不同的计算机系统的地址内存空间分配情况是不同的。

第二部分_寄存器

2.1CPU概述与通用寄存器

CPU概述:一个典型的CPU由运算器、控制器,寄存器等器件组成,这些器件靠内部总线相连。
区别:
内部总线实现CPU内部各个器件之间的联系。
外部总线实现CPU和主板上其他器件的联系。
8086 CPU有14个寄存器 它们的名称为:
AX,BX,CX,DX, SI,DI,SP,BP,IP,CS,SS,DS,ES, PSW。
8086CPU所有的寄存器都是16位的,可以存放两个字节。
AX,BX,CX,DX通常用来存放一般性数据被称为通用寄存器
以下以AX为例:寄存器的逻辑结构
在这里插入图片描述
16位数据在寄存器中的存放情况
数据:18
二进制表示:10010
在寄存器AX中的存储
在这里插入图片描述
数据:20000
二进制表示:10010
在寄存器AX中的存储:
在这里插入图片描述
一个16位寄存器所存储的数据最大值是:2**16-1

通用寄存器
8086上一代中的寄存器都是8位的;
为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用;
1.AX可以分为AH和AL (高位和低位),High low.
2.BX可以分为BH和BL;
3.CX可以分为CH和CL;
4.Dx可以分为DH和DL;
以AX为例:8086cpu的16位寄存器分为两个8位寄存器的情况。
在这里插入图片描述AX的低8位(0位~7位)构成了AL寄存器;
高8位(8位~15位)构成了AH寄存器;
AH和AL寄存器是可以独立使用的8位寄存器;
在这里插入图片描述

2.2字在寄存器中的存储

2.3几条汇编指令

2.4物理地址

2.5 16位结构的CPU

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

2.7 地址加法器工作原理

2.8 段的概念

2.9 段寄存器

2.10 CS和IP

2.11 修改CS和IP指令

2.12 代码段

第三部分_内存访问

3.1 内存中字的存储

3.2 DS和[address]

3.3字的传送

3.4 mov,add,sub 指令

3.5 数据段

3.6 栈

3.7 CPU提供的栈机制

3.8 栈顶超界的问题

3.9 push pop指令

3.10栈段

第四部分_一个源程序的执行过程

4.1 一个源程序从写入到执行过程

4.2 源程序

4.3 编辑源程序

4.4编译

4.5连接

4.6以简化的方式进行编译和连接

4.7exe文件的执行

4.8可执行文件中的程序装入内存并运行的原理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

煎饼果子小鸢

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

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

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

打赏作者

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

抵扣说明:

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

余额充值