zoukankan      html  css  js  c++  java
  • 汇编中寄存器加[]的意思

    一般说来,加方括号 [ ] 表示一种间接的取操作数方式,有点类似于C语言中的指针概念.
    第一条指令 ADD AL ,[SI] 中,[SI] 表示寄存器间接寻址.
    也就是说,与AL中内容相加的加数,不是SI寄存器的内容,而是以SI的内容作为地址指针的内存操作数.
    假设SI的内容是1234H,这条加法指令,不是将1234H加到AL里(也加不了,数据类型不对),而是以1234H作为地址,从内存的数据段(DS所指)中,段内偏移地址为1234H的那个内存单元中取出一个字节的数据来,加到AL中.
    同样的,第二条指令 MOV [20H],AL,是将AL中的内容传送到内存里的一个单元中去.这个单元的有效地址就是[20H].
    这里,加了方括号的20H,不是运算所用的数据,而是数据的地址.
    ===================
    对问题补充的回复:
    AL是不可能加方括号的.
    8086汇编中,能加方括号的只有4个寄存器:SI,DI,BX,BP
    常数也可以加方括号,比如 [020H]
    另外,变量名可以加方括号,但与上面两种情况不同,加了方括号的变量名,意义不变.
    至于方括号内,可以出现BX+DI,SI+2这样的表达式,这是一些不同的寻址方式.
    SI 是寄存器寻址
    [SI]是寄存器间接寻址
    [SI+2]是相对的寄存器间接寻址,又称直接变址寻址,它也可以写成2[SI]这样的形式
    [BX+SI]是基址变址寻址,也可写成[BX][SI]
    [BX+SI+20H]是相对的基址变址寻址,可以写成20H[BX][SI]之类的形式,将20H换成变量名也可以.

  • 相关阅读:
    爬虫问题总结
    keras快速开始序贯(Sequential)模型
    参数估计回顾
    CSDN-markdown编辑器 字体颜色修改
    贝叶斯决策学习
    概率论中的基本公式
    VMware tools安装
    Python 常用技巧:库/模块的安装、查看和卸载
    Google 机器学习笔记一 Pandas简介
    支持向量机 数学推导 part3
  • 原文地址:https://www.cnblogs.com/FengZeng666/p/9272051.html
Copyright © 2011-2022 走看看