zoukankan      html  css  js  c++  java
  • 汇编各寄存器作用

    先来看寄存器相对寻址方式:

    操作数的有效地址是一个寄存器的内容和指令中给定的一个位移量(disp)之和。对于16位寻址,这个寄存器只能是基址寄存器BX、BP或变址寄存器SI、DI;对于32位寻址,允许使用任何32位通用寄存器。位移量可以是8位、16位、32位(只适用于32位寻址情况)的带符号数。这种寻址方式常用在访问数组中的数据。

    有效地址EA=(基址<或变址>寄存器)+disp

    若指令中使用的是BX、SI、DI、EAX、EBX、ECX、EDX、ESI、EDI,则默认操作数在数据段,即它们默认与DS段寄存器配合;若使用的是BP、EBP、ESP,则默认操作数在堆栈段,即它们默认与SS段寄存器配合。这两种情况都允许使用段超越前缀。

    关于BP寄存器:

    MOV AX,[BP]就是把BP作为偏移地址,SS作为段所寻到的内存设为AX。如果不用[BP]而用[SP],就是把SP作为偏移。使用BP的理由是SP会随着PUSH,POP而改变,而BP却不变,可用于访问函数参数(请了解过程间传递参数的3种方式)。

    注:上图来自张雪兰《Intel 80X86/Pentium汇编语言程序设计》(第3版)

  • 相关阅读:
    Dao跨事务调用实现转账功能
    QueryRunner类 的應用,以及ResultSetHandler 接口的实现类
    C3P0数据源的使用
    iOS中UI阶段常用的一些方法
    谷歌云服务器的使用
    Odoo学习之domain表达式【转载】
    odoo 视图继承
    Odoo字段类型详解
    odoo12:命令行
    xpath转义‘
  • 原文地址:https://www.cnblogs.com/cloud2rain/p/3045172.html
Copyright © 2011-2022 走看看