汇编语言简介

2016-07-13  本文已影响58人  我的梦想之路

机器语言(二进制语言编写) -->汇编语言(形象化二进制)-->高级语言

汇编语言的特点:
1>与硬件有关(不同的CPU有不同的机器指令)
2>与机器指令一一对应
3>须详细描述“如何做”
4>可移植性差

Inter微处理器

1>微处理器结构
8086微处理器结构:
1.1 CPU功能结构:
总线接口部件BIU(Bus Interface Unit):总线接口单元(完成CPU与主存储器或外围设备之间的信息传递)
执行部件EU(Execute Unit):执行单元(完成指令的执行)

注意:两个单元独立,并行工作,使指令的读取与执行部分重叠,提高指令的执行速度 --- 指令的流水线结构

        1.2 CPU寄存器结构:
                数据寄存器(通用数据寄存器)
                指针及变址寄存器
                段寄存器
                控制寄存器
CPU寄存器结构

AX 累加器:存放操作数和结果,乘除运算、I/O指令中特指
BX 基址寄存器:存放偏移量
CX 技术寄存器:循环中计数
DX 数据寄存器:双字长时与AX组合成32位数,乘除运算、I/O指令中特指
注意:可以以字(16)或字节(8)形式访问,例如,AX的高字节、低字节分别用AH、AL表示

SP 堆栈指针寄存器:内容始终只想栈顶
BP 基址指针寄存器:存放地址的偏移量
SI 源变址寄存器
DI 目的变址寄存器
注意:变址寄存器:存放地址的偏移量,也可存放操作数,但只能以字为单位访问(16位)

CS 代码段寄存器
DS 数据段寄存器
SS 栈段寄存器
ES 附加段寄存器
注意:段寄存器存放相应段的段基址(段首址的高16位)

IP 指令指针寄存器:程序计数器,指向下一条指令在代码段中的偏移量(非常重要)
PSW 程序状态寄存器:记录系统运行中的各种状态和信息。由各种标志位构成,反映运算后的结果特征,将影响某些指令(如条件转移指令)的执行。

程序状态寄存器

2> 内存储器结构
8086内存储器组织:有20条地址线,最大存储空间为1MB。
2.1 以字节(8位)为单位编址,一个字节数据占一个存储单元
2.2 以字(16位)为单位存储数据时,占相邻两个单元,高8位存放在高地址字节,低8位存放在低地址字节
2.3 字单元的地址用它的低地址来表示
2.4 访主存指令中应指出是字节访问还是字访问
2.5 字单元的地址一般为偶数值

内存储器结构 --- 例子

3>段概念的引进
16位寄存器如何表示20为的地址?
答:采用存储器地址分段的方法

3.1 段是最大长度为64KB的内存储块
3.2 段的起始地址(段首址)低4位必须为0(人为分段)
3.3 用户可以同时使用4个段,段间可以邻接、部分重叠、重叠或不相邻
3.3.1 代码段存放当前程序的指令代码
3.3.2 数据段存放程序涉及的源数据或结果
3.3.3 堆栈段是以“先入后出”为原则的数据区
3.3.4 附加段是辅助数据区,存放串或其他数据

段概念的引进 -- 图例

4>内存储器的地址
4.1 物理地址:每个存储单元的20位实际地址,有唯一性,访问主存时必须用物理地址
4.2 逻辑地址:每个存储单元的地址用两个部分表示:段基址(段首址的高16位)和偏移量(段内某单元相对段首址的地址差)
4.3 物理地址 = 段基址*16+偏移量
书写形式:段基址:偏移量
4.4 段寄存器中存放的是相应段的段基址值
4.5 BX/SP/...IP寄存器中存放的是偏移量

内存储器的地址---示例图 物理地址的形成

5>堆栈

堆栈 堆栈示意图

6>I/O结构

I/O(输入/输出)结构
上一篇下一篇

猜你喜欢

热点阅读