zhouboy 发表于 2011-10-20 20:18:37

nec 16位 的乘法器

下面是aaa=2000/3,为什么除法不能得结果?

乘法都能通过,除为什么不能通过,不知道哪里出错?我用的上NEC78F1211


                        DIVMODE = 1;
                        MDAH = 0;
                        MDAL = 2000;
                        MDBH = 0;
                        MDBL = 3;
                        DIVST = 1;
                        while(DIVST);
                        aaa = MDAL;

asj1989 发表于 2011-10-20 20:34:35

union d_long
{
        unsigned long twoword;
        struct
        {
                unsigned int low;
                unsigned int high;
        }int16;
}mda,mdb;

unsigned long div32( void )
{
        DIVMODE = 1;
        MDAH = mda.int16.high;
        MDAL = mda.int16.low;

        MDBH = mdb.int16.high;
        MDBL = mdb.int16.low;
        DIVST = 1;
        while( DIVST );
        mda.int16.high = MDAH;
        mda.int16.low= MDAL;
        return mda.twoword;
}


我写的和你一样 应该可以的。我用的是1213

zhouboy 发表于 2011-10-21 02:35:58

怎么调用?
页: [1]
查看完整版本: nec 16位 的乘法器