zoukankan      html  css  js  c++  java
  • GCC内嵌汇编一些限制字符串

    /******************/
    “b”将输入变量放入ebx
    “c”将输入变量放入ecx
    “d”将输入变量放入edx
    “s”将输入变量放入esi
    “d”将输入变量放入edi
    “q”将输入变量放入eax,ebx ,ecx ,edx中的一个
    “r”将输入变量放入通用寄存器,也就是eax ,ebx,ecx,edx,esi,edi中的一个
    “A”把eax和edx,合成一个64位的寄存器(uselong longs)
    “m”内存变量
    “o”操作数为内存变量,但是其寻址方式是偏移量类型,也即是基址寻址,或者是基址加变址寻址
    “V”操作数为内存变量,但寻址方式不是偏移量类型
    “,” 操作数为内存变量,但寻址方式为自动增量
    “p”操作数是一个合法的内存地址(指针)

    /******************/
    寄存器或内存

    “g” 将输入变量放入eax,ebx,ecx ,edx中的一个或者作为内存变量
    “X”操作数可以是任何类型

    /******************/
    立即数
    “I” 0-31 之间的立即数(用于32位移位指令)
    “J” 0-63 之间的立即数(用于64 位移位指令)
    “N” 0-255 ,之间的立即数(用于out 指令)
    “i” 立即数
    “n” 立即数,有些系统不支持除字以外的立即数,这些系统应该使用“n”而不是“i”

    匹配

    “0”、”1” …..”9”
    表示用它限制的操作数与某个指定的操作数匹配,也即该操作数就是指定的那个操作数,例如用“0 ”去描述“%1”操作数,那么“%1”引用的其实就是“%0”操作数,注意作为限定符字母的0-9 ,与指令中的“%0”-“%9”的区别,前者描述操作数,后者代表操作数。
    /******************/
    操作数类型
    “=” 操作数在指令中是只写的(输出操作数)
    “+” 操作数在指令中是读写类型的(输入输出操作数)
    /******************/
    浮点数
    “f”
    /******************/
    浮点寄存器
    “t”第一个浮点寄存器
    “u”第二个浮点寄存器
    “G”标准的80387

  • 相关阅读:
    【Python】 命名空间与LEGB规则
    【Python&数据结构】 抽象数据类型 Python类机制和异常
    【算法】 算法和数据结构绪论
    【网络】 数据链路层&物理层笔记
    svn -- svn图标解析
    svn -- svn数据仓库
    svn -- svn安装与配置
    svn -- svn简介
    mysql -- 远程访问mysql的解决方案
    css3 -- 自动生成序号(不使用JS,可任意排序)
  • 原文地址:https://www.cnblogs.com/dongguolei/p/7975449.html
Copyright © 2011-2022 走看看