VC++与汇编语言混合编程事例-----两个无符号整数相加

 
#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)等。
*/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值