AT&T asm之Qt使用

#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;

}

时间: 2024-10-10 15:09:22

AT&T asm之Qt使用的相关文章

设置qt插件路径

1.在Qt中使用 WebKit 浏览器核心 使用 QtWebKit 需要在工程文件(*.pro)中加入: QT +=webkitQT += network 2.QtWebKit的flash支持 QtWebKit 到固定的路径(NPAPI插件厂商的安装路径)下载入flash控件,如果需要flash支持,确保一下文件存在: C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll npswf32.dll就是 QtWebKit 需要的flash插件,由 microm

计算机世界的道(C/ASM)生一(OS),一生二(API),二生万象(MFC/COM)——学包装技术的程序员将来会损失比较大,因为不了解本质,一旦包装过时就会被淘汰

道生一,一生二,二生万象.OO的思想就是抽象,万象归宗,化繁为简.99%的程序员使用OO,或者所谓的类库的目的就是好用,不必了解内部实现就可以直接达到所期望的结果.这时一种生产力的进步,一种流水线式半零件式的生产流程.程序员只是最后再流水线上拼接起来上个螺丝的工人而已(严格说来是码农).C++就是抽象万象的利器.用Windows举例子,从无到有这个关键的一步(所谓的底层),通产是C或者汇编.Windows源码大多是C/ASM编写,实现了硬件的抽象统一了抽象接口(中介有众厂商的驱动提供),然后从一

QT使用UAC(经过验证)

网上有很多manifest的版本,mingw与vs系列也有不同的解决方案,不管那么多,我是使用这篇文章解决这个问题的: So it turns out that I had another bug that caused the non-elevated running branch to run in all cases. The model I described in the post works. To avoid Windows infering the need for elevat

How To: set udev rule for setting the disk permission on ASM disks when using multipath on Linux 6.x

在RHEL6.4上安装11gR2的RAC时,使用了MULTIPATH来聚合绑定多路径的磁盘,并且修改磁盘的权限,赋予grid:asmadmin用户和组. 此时,在安装时可以发现磁盘,日志如下 INFO: ... discoveryString = /dev/mapper/* INFO: Executing [/tmp/OraInstall2014-11-24_04-55-14PM/ext/bin/kfod, nohdr=true, verbose=true, disks=all, status=

Opencv交叉编译到ARM(基于Qt)

*:前提是Qt交叉编译已经完成,并能正常使用. 1.下载Opencv2.2.0并解压,在解压后的目录下新建一个release目录. 2.安装cmake和cmake-gui. 3.执行命令:cmake-gui 错误提示和解决: Issue 2. ImportError: No module named sphinx: Just copy the following line, then this problem disappear. yum install python-sphinx Issue

Qt webkit插件相关知识

1.在Qt中使用 WebKit 浏览器核心 使用 QtWebKit 需要在工程文件(*.pro)中加入:1.           QT +=webkit  2.           QT += network  2.QtWebKit的flash支持 QtWebKit 到固定的路径(NPAPI插件厂商的安装路径)下载入flash控件,如果需要flash支持,确保一下文件存在:1.           C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll  n

ORACLE11g R2【RAC+ASM→单实例FS】

ORACLE11g R2[RAC+ASM→单实例FS] 11g R2 RAC+ASMà单实例FS的DG,建议禁用OMF. 本演示案例所用环境:   primary standby OS Hostname node1,node2 std OS Version RHEL6.5 RHEL6.5 DB Version 11.2.0.4 11.2.0.4 db_name stephen stephen db_unique_name stephen standby service_names stephen

GCC在C语言中内嵌汇编 asm __volatile__ 【转】

转自:http://blog.csdn.net/pbymw8iwm/article/details/8227839 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作. 1.简单的内嵌汇编 例: __asm__ __volatile__("hlt"); "__asm__"表示后面的

Qt编译好的OCI驱动下载

在上文,我累赘了一大堆,给大家写了一篇Qt如何编译OCI驱动,在这里自然就不再累赘了,直接附上编译好的文件供大家下载: <Qt5.3.1+OCI驱动下载地址> 有经济来源的请传送:http://download.csdn.net/detail/u012433546/9922424 无经济来源的请传送:链接:http://pan.baidu.com/s/1boKG9lH 密码:7yj5 <Qt5.3.2+OCI驱动下载地址> 有经济来源的请传送:http://download.csd