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

来源:互联网 发布:云打印软件 编辑:程序博客网 时间:2024/04/30 02:23
#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)等。
*/
/*
http://f2.9612.org//vcpp/webinfo/WebInfoBata1.asp
QQ群:
34409541 讨论网页 
34409326 讨论JAVA 已满
34408784 讨论VC++ 
34409699 讨论VC++ 
9143041 讨论MFC编程 
10614204 讨论C# 
10613030 讨论Win32编程 
10613067 讨论游戏开发 
18779860 讨论JAVA 
*/
 
原创粉丝点击