8086汇编笔记

第一章 基础知识

1.3 汇编语言的组成

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

1.5 指令和数据

指令和数据是应用上概念,在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。

1.6 存储单元

1KB = 1024B
1MB = 1024 KB
1GB = 1024 MB
1TB = 1024 G

1.7 CPU对存储器的读写

总线从逻辑上有3条:地址总线,控制总线,数据总线。

1.9 数据总线

8088CPU的数据总线宽度位8,8086CPU的数据总线宽度为16。

1.1 ~ 1.10总结

(1)汇编指令是机器指令的助记符,同机器指令一一对应。
(2)每一种CPU都有自己的汇编指令集。
(3)CPU可以直接使用的信息在存储器中存放。
(4)在存储器中指令和数据没有任何区别,都是二进制信息。
(5)存储单元从零开始顺序编号。
(6)一个存储单元可以i存储8个bit,即8位二进制数。
(7)
1KB = 1024B
1MB = 1024 KB
1GB = 1024 MB
1TB = 1024 G
(8)每一个CPU芯片都有许多管脚,这些管脚和总线相连。也可以说,这些管脚引出总线。一个CPU可以引出3中总线的宽度标志了这个CPU的不同方面的性能:
地址总线的宽度决定了CPU的寻址能力;
数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传递量。
控制总线的宽度决定了CPU对系统中其他期间的控制能力。

在汇编课程中,我们从功能的角度介绍了3类总线,对实际的连接情况不做讨论。

1.14 各类存储器芯片

●随机存储器RAM:用于存放工CPU使用的绝大部分程序和数据,主随机存储器一般由两个位置上的RAM组成,装在主板上RAM和插在扩展插槽上的RAM。

●装有BIOS的ROM:BIOS是由主板和各类接口卡厂商提供的软件系统,可以通过它利用该硬件设备进行最基本的输入输出。在主板和某些接口卡上插由存储相应BIOS的ROM。例如:主板上的ROM中存储着主板的BIOS;显卡上的ROM中存储着显卡的BIOS;如果网卡上装有ROM,那其中就可以存储网卡的BIOS。

●接口卡上的RAM:某些接口卡需要对大批量输入,输出数据进行暂时存储,在其上装有RAM。最典型的是显卡上的RAM,一般称为显存。显示卡随时将显存中的数据想显示器上输出。换句话说,我们将需要显示的内容写入显存,就会出现在显示器上。

1.15 内存地址空间

8086PC机的内存地址空间分配的基本情况
00000~9FFFF 主存储器内存空间(RAM)
A0000~BFFFF 显存地址空间
C0000~FFFFF 各类ROM地址空间

第二章 寄存器

8086由14个寄存器

2.1 通用寄存器

8086CPU的所有寄存器都是16为的,可以存放两个字节。AX,BX,CX,DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。

2.1 通用寄存器AX,BX,CX,DX

2.3 几条汇编指令

在进行数据传送或运算时,要注意指令的两个操作对象的位数应当一致。

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

物理地址 = 段地址 × 16 + 偏移地址

一个数据的十六进制形式左移一位,相当于乘以16;一个数据的十进制形式左移1位,相当于诚意10;一个X进制的数据左移1位,相当于乘以X。

2.8 段的概念

我们注意到,“段地址”这个名称中包含这“段”的概念。这种说法可能对一些学习者产生了误导,使人误以为内存被划分成了一个一个的段,每一个段有一个短地址。如果我们在一开始形成了这种认识,将影响以后对汇编语言的深入理解和灵活应用。

两点需要注意:段地址 × 16 必然是16的倍数,所以一个段的起始地址也一定是16的倍数;偏移地址位16位,16位地址的寻址能力为64KB,所以一个段的长度最大为64KB。

2.9 段地址

段地址在8086 CPU的段寄存器中存放。
8086 CPU有4个段地址:CS,DS,SS,ES。

2.10 CS和IP

CS为代码段寄存器,IP为指令指针寄存器。
8086 CPU的工作过程可以简要描述如下:
(1)从CS:IP指向的内存单元读取指令,读取的指令进入指令缓冲器;
(2)IP = IP + 所读取指令的长度,从而指向下一条指令;
(3)执行指令,转到(1)步,重复这个过程。

在8086 CPU加电启动或复位后(即CPU刚开始工作时)CS和IP被设置位CS = FFFFH,IP = OOOOH,即在8086 PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行,FFFF0H单元中的指令时8086PC机开机后执行的第一条指令。

CPU将CS:IP中的内容当作指令的段地址和偏移地址,用它们合成指令的物理地址,到内存中读取指令码,执行。如果说,内存中的一段信息曾被CPU执行过的话,那么,它所在的内存单元必然被CS:IP指向过。

2.11 修改CS、IP的指令

在CPU中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制。
jmp 段地址:偏移地址
指令的功能:用段地址修改CS,偏移地址修改IP

如只想修改IP jmp 某一合法寄存器

实验一 查看CPU和内存,用机器指令和汇编指令编程

用Debug的R命令查看、改变CPU寄存器的内容;
用Debug的D命令查看内存中的内容;
用Debug的E命令改写内存中的内容;
用Debug的U命令将内存中的机器指令翻译成汇编指令;
用Debug的T命令执行一条机器指令;
用Debug的A命令以汇编指令的格式在内存中写入一条机器指令;

第三章 寄存器(内存访问)

3.4 mov、add、sub指令

mov 寄存器,数据
mov 寄存器,寄存器
mov 寄存器,内存单元
mov 内存单元,寄存器
mov 段寄存器,寄存器
mov 寄存器,段寄存器
mov 寄存器,内存单元

实验2 用机器指令和汇编指令编程

Debug的T命令在执行修改寄存器S的指令时,下一条指令也紧接着被执行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值