久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

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

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

作者: 時間:2016-11-30 來源:網絡 收藏
ORG0000H
JMPA1
ORG002BH
A1:MOVR0,#0;數據處理寄存器(乘積高八位)
MOVR1,#255;被乘數(乘積低八位)
MOVR2,#255;乘數
MOV30H,#8;循環次數--8位二進制數相乘8次4位則4次
A2:
CLRC;清C
MOVA,R1;
JNBACC.0,A3;判斷被乘數第0位是否為0是則不用相加
MOVA,R0;不為0則相加
ADDA,R2;乘數與處理后數據相加
MOVR0,A;數據存回數據處理寄存器

A3:MOVA,R0;右移一位
RRCA;相加可能溢出所以用RRC
MOVR0,A;
MOVA,R1;
RRCA;將處理后的數移到被乘數
MOVR1,A;
DJNZ30H,A2;是否完成
NOP
NOP
NOP
JMP$
;思路
; R0處理數 R1被乘數 被乘數第0位為1相加 相加存到R0
; 00000000 11111111 1 00000000+11111111=11111111
;1 01111111 11111111 1 01111111+11111111=101111110
;2 10111111 01111111 1 10111111+11111111=110111110
;3 11011111 00111111 1 11011111+11111111=111011110
;4 11101111 00011111 1 11101111+11111111=111101110
;5 11110111 00001111 1 11110111+11111111=111110110
;6 11111011 00000111 1 11111011+11111111=111111010
;7 11111101 00000011 1 11111101+11111111=111111100
;8 11111110 00000001
END


關鍵詞: 右移加法乘法運

評論


技術專區

關閉