• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用右移加法做乘法運算(65535*65535)

    用右移加法做乘法運算(65535*65535)

    作者: 時間:2013-04-03 來源:網(wǎng)絡 收藏
    ORG0000H
    JMPA1
    ORG002BH
    A1:MOVR0,#0;數(shù)據(jù)處理高位(乘積高8位)
    MOVR1,#0;數(shù)據(jù)處理低位(乘積高中8位)
    MOVR2,#255;被乘數(shù)高位(乘積低中8位)
    MOVR3,#255;被乘數(shù)低位(乘積低8位)
    MOVR4,#255;乘數(shù)高位
    MOVR5,#255;乘數(shù)低位
    MOV30H,#16;循環(huán)次數(shù)--8位二進制數(shù)相乘8次4位則4次
    A2:
    CLRC;清C
    MOVA,R3;
    JNBACC.0,A3;判斷被乘數(shù)第0位是否為0是則不用相加
    MOVA,R1;不為0則相加
    ADDA,R5;乘數(shù)低位與處理后數(shù)據(jù)低位相加
    MOVR1,A;數(shù)據(jù)存回數(shù)據(jù)處理低位
    MOVA,R0
    ADDCA,R4;乘數(shù)低位與處理后數(shù)據(jù)高位相加上面相加可能溢出所以用ADDC
    MOVR0,A;數(shù)據(jù)存回數(shù)據(jù)處理高位寄存器
    A3:MOVA,R0;先右移高位
    RRCA;相加可能溢出所以用RRC
    MOVR0,A;
    MOVA,R1;在右移低位
    RRCA;RRC把高位的數(shù)移入低位
    MOVR1,A
    MOVA,R2;
    RRCA;將處理后的數(shù)移到被乘數(shù)高位
    MOVR2,A;
    MOVA,R3;
    RRCA;將處理后的數(shù)移到被乘數(shù)低位
    MOVR3,A;
    DJNZ30H,A2;是否完成
    NOP
    NOP
    NOP
    JMP$
    END


    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 红原县| 简阳市| 固镇县| 绥阳县| 青浦区| 田阳县| 永善县| 闽清县| 灵川县| 日喀则市| 扎赉特旗| 乌审旗| 楚雄市| 临城县| 南皮县| 安陆市| 依兰县| 盐边县| 礼泉县| 庆城县| 蒙自县| 河西区| 东兴市| 南安市| 都兰县| 沅江市| 堆龙德庆县| 麟游县| 始兴县| 当阳市| 泰安市| 原阳县| 麻栗坡县| 谢通门县| 马尔康县| 靖安县| 陵水| 峡江县| 和平区| 大丰市| 若尔盖县|