zoukankan      html  css  js  c++  java
  • 第二章 微机指令

    第二章 微机指令

    一、存储单元的地址和内容

      8086为字长16位存储器

      SP…IP…BP…关于地址的都是16位的

      注:存储器的物理地址由20条地址总线控制,一个字放入存储器中占用两个单元,低字节放在低地址中,高字节放在高地址中。

      A20位的物理地址的组成

        在1M的字节存储器里,每一个存储单元都有一个20位地址,由16位的段地址和16位的偏移地址组成

      段地址左移四位偏移地址物理地址(PA

      16* + 偏移 --> 变成20

      B逻辑地址和物理地址

        逻辑地址:由段基址和段内偏移地址组成的叫逻辑地址

        物理地址:存储器的绝对地址,范围从00000~FFFFF,由CPU访问存储器时,由地址总线发出的地址信息

    操作类型 段基址 偏移地址 物理地址

    取指令 CS IP CS*16+IP

    堆栈操作 SS SP SS*16+SP

    源字符串 DS SI DS*16+SI

    目的字符串 ES DI ES*16+DI

    寻址方式

      1、立即数寻址方式

        MOV AL,05H #AL为源,05H为目的

        MOV AX,0102H

      2、寄存器寻址方式

        8位:AHALBHBLCHCLDHDL

           16位:AXBXCXDXSIDIBPSP

      段寄存器:CSDSSSES

      MOV AX,1234H

      MOV BX,AX

      3、存储器寻址方式

        指令中给出操作数的主存地址信息(偏移地址,EA,也叫做有效地址)而段地址在指定的段寄存器中

      ①:直接寻址方式:有效地址在指令中直接给出,默认的段地址是存放在DS段寄存器中的

      MOV AX,[2000H] #[2000H]表示一个地址,在DS

      MOV AX,ES:[2000H] #[2000H]ES

      ②:寄存器间接寻址:有效地址存放在基址寄存器BX 或变址寄存器SIDI 中,默认的段地址在DS段寄存器中

      MOV AX,[SI] #[SI] -->间接 中括号里只能放SIDI

      ③:寄存器相对寻址:有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX/BPSI/DI,有效地址=BX/BP/SI/DI+8/16位位移量,段地址对应BX/SI/DI,寄存器还是默认在DS中,BP对应在SS

      MOV AX,[DI+06H] #DS

      MOV AX,[BP+06H] #SS

      ④:基址变址寻址方式:有效地址由基址寄存器BXBP内容加上变址寄存器,SIDI的内容

      有效地址=BX/BP+SI/DI #BX默认在DS中,BP默认在SS

      MOV AX,[BX+SI]

      ⑤:相对基址变址寻址方式:有效地址是一个基址寄存器,BXBP,变址寄存器,SIDI与一个8位或16位的位移量之和

      有效地址=BX/BP+SI/DI+8/16位位偏移量 #BX默认在DS中,BP默认在SS

  • 相关阅读:
    三元表达式 列表和字典推导式 函数对象 名称空间 作用域 global和nonlocal 函数装饰器 枚举对象
    函数参数 打散机制 字符串比较 返回值
    函数简介
    三种字符串的介绍 文件的读写
    字符编码
    数据类型及其常用方法 数据类型转换 可变与不可变 值拷贝与深浅拷贝
    流程控制 while和for循环
    变量命名规范 常量 输入和输出 注释 数据类型 运算符 逻辑运算符
    语言分类 编译型和解释型语言分析 环境变量 代码执行的方式 pip介绍 变量
    Python django tests
  • 原文地址:https://www.cnblogs.com/xian-luo/p/11020805.html
Copyright © 2011-2022 走看看