c语言内联汇编的int变量,C语言内联汇编HelloWorld

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

C语言内联汇编HelloWorld

汇编就是用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码

•像mov,add,这种可以对应一种机器指令的符号

•Mov eax,10//就是将10放进eax这个寄存器中

•Add eax,10//就是将eax里面的值加等于10再放进eax中

•操作码:将寄存器BX的内容送到AX中的操作的机器码是:1000100111011000

由于内联汇编程序不需要单独的程序集和链接步骤,因此它比单独的汇编程序更方便。 内联程序集代码可以使用任何 C 变量或范围中的函数名,因此,将其与程序的 C 代码集成非常容易。 由于程序集代码可与 C 或 C++ 语句内联组合,因此它可以执行在 C 或 C++ 中难以完成或无法完成的任务。

内联程序集的用法包括:使用汇编语言编写函数。

代码的点优化速度临界区。

通过硬件直接访问设备驱动程序。

为“naked”调用编写 prolog 和 epilog 代码。

内联程序集是一个具有特殊用途的工具。 如果您计划通过端口将应用程序传输到其他计算机,您可能需要在单独的模块中放置计算机特定的代码。 由于内联汇编程序不支持任何 Microsoft 宏汇编程序 (MASM) 的宏和数据指令,因此您可能会发现对此类模块使用 MASM 会更方便。

内联汇编格式1

2

3

4

5

6

7

8int ()

{

__asm

{

}

return 0;

}1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24// helloworld.cpp : 定义控制台应用程序的入口点。

//

int _tmain(int argc, _TCHAR* argv[])

{

char* strHello = "HelloWorld";

__asm

{

mov eax, dword ptr ds : [strHello]

push eax

call printf

add esp,4

}

//__asm mov eax,10 写一条

//__asm mov eax,eax

//__asm mov eax,eax

return 0;

}

运行结果

你可能感兴趣的:(c语言内联汇编的int变量)