#include <stdio.h>

#include <string.h>

/*

函数名: att_asm_p();

功能:类似于Intel汇编功能:mov ebx, [OSTCBCur]

mov esp, [ebx]

返回值: 无

传入值: 无

*/

void att_asm_p(void)

{

int b = 11;

int d = 599;

int *p = &d;

asm("movl %0, %%ecx \n\t"::"r"(p));

asm("movl   (%ecx),%eax \n\t");

asm("movl   %%eax,%0 \n\t":"=r"(b));

printf("b: %d\n", b);

}

/*

函数名: att_asm_mov();

功能:类似于Intel汇编功能:mov

说明:  "movl %1, %%esi \n\t"  //%1对应第二出现的c语言变量(__in1)

"movl %2, %%edi \n\t" //%2对应第三出现的c变量(__in2)

"movl %%edi, %0 \n\t"  //%0对应第一出现的C变量(__out)

: "=a"(__out)

: "r" (__in1), "r" (__in2));

返回值: 无

传入值: 无

*/

void att_asm_mov()

{

int __out = 1, __in1 = 2, __in2 = 3;

__asm__ (

"movl %1, %%esi \n\t"

"movl %2, %%edi \n\t"

"movl %%edi, %0 \n\t"

: "=a"(__out)

: "r" (__in1), "r" (__in2));

printf("cr0: %d\n", __out);

}

int main(int argc, char *argv[])

{

att_asm_p();

att_asm_mov();

return 0;

}

最新文章

  1. Redis 数据类型-List
  2. 【Convert Sorted List to Binary Search Tree】cpp
  3. shell编程之sleep的运用
  4. DIV背景半透明文字不半透明的样式
  5. POJ 1269 Intersecting Lines(直线相交判断,求交点)
  6. ABAP 日期时间函数(转)
  7. WWDC2014之App Extensions学习笔记
  8. iOS图片拉伸技巧—— resizableImageWithCapInsets
  9. C++中的条件传送代码
  10. Sliding Window Maximum
  11. Excel 帮助类
  12. shortcut to open a linux terminal
  13. How to get HTML code of a WebElement in Selenium
  14. 主流IOC框架测验(.NET)
  15. 【论文:麦克风阵列增强】Microphone Array Post-Filtering For Non-Stationary Noise Suppression
  16. 高通msm8909耳机调试
  17. EMC题
  18. 用Java为Hyperledger Fabric(超级账本)开发区块链智能合约链代码之部署与运行示例代码
  19. ubuntu学习笔记
  20. Redis学习笔记之延时队列

热门文章

  1. maven nexus
  2. Trasformation中的公式报错误,错误数据行定位
  3. iscroll 使用及遇到的问题
  4. Jmockit使用
  5. Linux变量
  6. Scrum Meeting 4-20151204
  7. iOS - Frame 项目架构
  8. nodejs系列(一)安装和介绍
  9. hdu3247Resource Archiver(ac自动机+spfa)
  10. CSS cursor属性