📄 asm.cpp
字号:
#include <iostream>
using namespace std;
//此程序也展示了内嵌汇编应如何使用C++中的指针
void main( )
{
unsigned int a,b;
cout<<"输入两个正整数:"<<endl;
cin>>a;
cin>>b;
unsigned int *c = &a;
__asm //下面是内嵌汇编...
{
mov eax, c; //c中存储的a的地址->eax
mov eax, [eax]; //a的值->eax
//注意直接mov eax, [c]是错误的
mov ebx, b; //可以像这样直接对ebx赋值
lea eax, [eax+ebx];
mov a, eax; //可以直接将eax的值->a
} //内嵌汇编部分结束...
cout<<a<<endl;
}
/*
还有一个非常重要的寄存器,叫做标志寄存器(EFLAGS),标明了运算结果的各个属性,
你不能直接读取或修改它。
这些属性有:不溢出/溢出(OF)、正/负(SF)、非零/零(ZF)、偶/奇(PF)、不进位/进位(CF)等。
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -