新聞中心

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

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

作者: 時間:2013-04-03 來源:網(wǎng)絡(luò) 收藏
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


關(guān)鍵詞: 右移加法 乘法運算 寄存器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉