【汇编语言】第三章微型计算机8086的结构 | 东北大学

第三章知识树

在这里插入图片描述

一、微处理器的结构

1.CPU内部结构

(1)执行单元EU
(2)总线接口单元BIU
(还没彻底明白,明白了回来补坑)

2.寄存器和标志

  • 通用寄存器
    用来暂存中间结果(省时间)
    四个16位的寄存器AX BX CX DX,分为高8位和低8位。
    在这里插入图片描述

  • 指针和变址寄存器
    把内存单元地址放在特定的寄存器中,可以访问、改变地址,也可以存中间结果。
    16位寄存器
    SP :堆栈指针,指向堆栈段的栈顶
    BP :基址指针,指向堆栈段中的地址
    SI.DI:变址寄存器,一般可以互换

  • 段寄存器
    在这里插入图片描述
    注意CS段,不允许用传送指令赋值
    DS,ES,SS可以赋初值或改变值

  • 标志位
    在这里插入图片描述
    CF=1 最高位进位或借位
    PF=1 运算结果第八位中含有偶数个1
    AF=1 第3位向第4位进位或借位
    SF=1 运算结果为负
    ZF=1 运算结果=0
    OF=1 溢出(符号位不同)ZF OF只对带符号位有意义
    不满足都为0

二、存储器

1MB的存储空间内划分为一些逻辑段,段内连续,段与段独立。每个段有一个段地址(段开始的地方),存在段寄存器中。

段对应的指针:
指针变址寄存器SI,DI,BP,SP存放的是在某一段内寻址的单元的偏移地址。其中SI和DI存放的是数据段内某单元的偏移地址,而BP和SP存放的则是堆栈段内某单元的偏移地址。
指令指针IP用以存放下一条要执行的指令在当前代码段内的偏移地址。

因为两个逻辑段可以重叠,所以逻辑地址不唯一,一个实际地址可以对应多个逻辑地址。

  • 实际地址与逻辑地址
    在这里插入图片描述
    计算的时候段地址要左移四个二进制位

三、寻址方式

1、操作数的种类

(1)立即操作数:要操作的数据在指令代码中(直接看到)
(2)存储器操作数:在内存中
MOV AL,[1234H]
(3)寄存器操作数:在寄存器中 MOV AL,BL
(4)I/O端口操作数:来自或送到I/O端口

2、寻址方式

(1)固定寻址

操作对象隐藏在代码中,没有明确的操作数字段

(2)立即寻址

数据在指令代码中,例如MOV AX,3064H

(3)寄存器直接寻址

在寄存器中

(4)存储器寻址

  • 存储器直接寻址 :直接给出偏移地址
  • 寄存器间接寻址:[BX] [SI] [DI]
  • 基址寻址:BX/BP+位移量

在这里插入图片描述

  • 变址寻址:SI/DI+位移量
    在这里插入图片描述
    同样,位移量可以移到外面。
  • 变址变址寻址:BX/BP+SI/DI+位移量
    在这里插入图片描述
存储器寻址方式中的段地址

在存储器寻址方式中只给出了偏移地址,上面只讨论了偏移地址
段地址是隐含的,一般情况下是DS, 只有特殊情况下是SS。
什么是特殊情况:在基址寻址和基变址寻址方式下,基址寄存器是BP
请看下面的例子:
假定DS=1000H,SS=2000H, BP=0100H,BX=0100H,如下指令在执行完后的结果分别是什么?
MOV AX,[BX+100H] == 1234H
MOV AX,[BP+100H] ==5678H

访问非隐含段——段跨越、段更换

  • 段更换:把DS段重新赋值为想要的段,再用隐含段
  • 段跨越:加前缀 CS: DS: SS: ES:
    例如:MOV AL,CS:[BX]

计算例题

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yyzuimei

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

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

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

打赏作者

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

抵扣说明:

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

余额充值