您的位置:首页 > 其它

汇编语言基础2

2015-06-09 17:39 120 查看
汇编语言基础(寄存器)

首先一个CPU 的结构一般包含运算器,控制器,寄存器,高速缓存,总线等等他们的功能简要来说就是:

1.运算器进行信息处理

2.寄存器进行信息处理

3.控制器控制个种器件进行工作

4.内部总线连接各种器件

不同的CPU ,寄存器的个数,结构是不相同的。8086有14个寄存器每一个都有一个名字:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW。

它的寄存器都是16位的,可以存放两个字节,AX,BX,CX,DX这4个寄存器通常用来存放一般性的数据。

特别一提:

8086是现阶段主流PC处理器X86架构处理器的鼻祖,虽然已经是64位了,但是他们还是有很多相似之处的,X86有4种模式,真实模式,保护模式,系统管理模式,虚拟V86模式。

关于寄存器:

以普通的存放一般性数据的寄存器AX 来说,这是一个十六位的寄存器,它可以被从中间等分点分开成两个八位的寄存器,叫AL(low),AH(high),这两个寄存器可以分别使用,就是说可以当作两个寄存器来使用。

字:

字在这里是一个新的概念,一个由16位二进制数据组成的数据就叫做一个字,这是以往没有接触过的。

简单的几条汇编指令:

指令 举例 执行动作 高级语言表示

MOV MOV AX,18 将18送入寄存器AX AX = 18

ADD ADD AX,8 将AX 寄存器的值加8 AX+=8

SUB SUB AX,BX 将BX 的值与AX 相减存入AX AX-=BX

JMP JMP XXXX:YYYY 将地址跳转到XXXX:YYYY

注意:

汇编语言并不区分大小写,MOV与mov 是一样的随便写那种都可以

在使用指令传送数据时两个操作对象的位数应当是一致的(例如,8位不可以和16位互相传数据),不能超过上限。

物理地址:

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

8086得出物理地址的方法:

1.CPU提供两个16位的地址一个称之为段地址,一个叫偏移地址。

2.段地址和偏移地址通过内部总线送入一个地址加法器的部件,然后使用上面的公式来进行计算

3.地址加法器将两个16位地址合成一个20位物理地址

4.通过内部总线将20位的物理地址送入输入输出的控制电路

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

6.20位物理地址被地址总线传送到存储器

7。不同的段地址和偏移地址可能合成同样的物理地址

其中CS寄存器中存储的就是段地址,IP存储器中存储的是偏移地址。

使用:

windos 用户直接使用DOS就好

linux 用户需要使用dosbox模拟一个DOS 环境
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: