• 汇编第3章 80X86指令系统和寻址方式


    3.1 8086指令系统概述

    3.1.1汇编指令

    汇编指令由操作码和操作数组成,操作码是指令的操作命令,操作数是指令的操作对象。

    指令格式:[标号:] 指令助记符 [操作数1] [,[操作数2] [,[操作数3]]] [;注释]

    标号:在汇编语言中标号是由用户定义的符号名,用来标记位置。标号可以是任意的字符串但是通常由字符和数字组成。(来自百度文库

    MOV <目的操作数><源操作数>

    使用源操作数为目的操作数赋值

    伪指令没有对应的机器指令。不能用寄存器

    标识符:

    存储单元的有效地址

    不可以用数字开头,不可以用BX、AX、?之类

    伪指令

    【变量名】助记符 操作数 [;注释]

    DB(1单元,字节) DW(2) DD(4单元、双字)

    3.2 寻址方式

    3.2.1 数据寻址方式

    80X86的操作数来自以下三个方面:

    1、操作数包含在指令当中,这样的操作数叫做立即数。

    2、操作数包含在存储器当中,这样的操作数叫做存储器操作数。

    3、操作数包含在某个寄存器当中,这样的操作数叫做寄存器操作数。

    8086存储器的实际地址由段基地址和偏移地址决定,段基址由段寄存器提供,偏移地址由以下四个基本单位组成:

    1、基址,基址寄存器为BX和BP。

    2、变址,变址寄存器为SI和DI。

    3、比例因子,8086系统比例因子为1.

    4、位移量,即相对某个单元的偏移量。

    有效地址(EA)=基址+变址*比例因子+位移量

    九种寻址方式详见:CSDN

    3.2.2 8086\8088常用指令

    MOV指令

    功能:传送操作数

    1、MOV指令可以传8位数据,也可以传16位数据。

    2、不允许用MOV实现两个单元间的数据传输。

    3、不能用CS和IP作为目标操作数,

    4、不允许在段寄存器之间传输数据。

    5、不能向段寄存器传输立即数

     

    LEA指令

    LEA指令是将有效地址送往通用寄存器。

    1. LEA BX,[1000]; BX的值是1000
    2. LEA bx,[si][bp];bx的值是si+bp的偏移地址

     

  • 相关阅读:
    springboot项目需要的依赖
    pytorch开发问题汇总
    信息熵,交叉熵,KL散度,互信息一网打尽
    go语言 leetcod1 两数之和
    计算机毕业设计(42)java小程序毕设作品之小说电子书阅读小程序系统
    网络安全(黑客)自学
    JavaScript 讲述数据结构 - 栈结构
    我的周刊(第064期)
    15、Gateway全局过滤器
    java js 经纬度转换 大地坐标(高斯投影坐标)与经纬度互相转换
  • 原文地址:https://blog.csdn.net/m0_63823490/article/details/133343816