共 3 篇文章 |
|
Gcc嵌入式汇编。“=r”表示相应的目标操作数(指令部分的%0)可以使用任何一个通用寄存器,并且变量__dummy 存放在这个寄存器中,但如果是:表示任何通用寄存器。如果输入部分一个操作数所要求使用的寄存器,与前面输出部分某个约束所要求的是同一个寄存器,那就把对应操作数的编号(如“1”,“2”等)放在约束条件中,在后面的例子中,我们... 阅229 转2 评0 公众公开 12-04-25 10:46 |
''=f''里的''=''说明,该操作数是输出操作数,所有输出操作数的限制符必须使用''=''。冒号(:)会将汇编器模板与第一个输出操作数分隔开,另外的冒号会将最后一个输出操作数与第一个输入操作数分割开,如果有的话。逗号分隔输出操作数和输入操作数。例如,编译器或许会在一个寄存器中发现'&... 阅135 转0 评0 公众公开 12-04-25 09:59 |
输出寄存器表示那些寄存器存放数据,这些寄存器分别对应一个C语言表达式或一个内存地址;:”=a”(__res)表示代码运行结束后将eax所代表的寄存器的值放入__res变量中,作为本函数的输出值,”=a”中的”a”叫加载码,”=”表示这是一个输出寄存器。为了在汇编语句中使用该地址值,嵌入式汇编规定把输入和输出寄存器统一按顺序编号,顺序是从输出... 阅497 转3 评0 公众公开 12-04-25 09:56 |