欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

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

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年03月19日   【字體:
 ORG 0000H
 JMP A1
 ORG 002BH
A1: MOV R0,#0;數據處理寄存器(乘積高八位)
 MOV R1,#255;被乘數(乘積低八位)
 MOV R2,#255;乘數
 MOV 30H,#8;循環次數--8位二進制數相乘8次4位則4次
A2:
 CLR C;清C
 MOV A,R1;
 JNB ACC.0,A3;判斷被乘數第0位是否為0是則不用相加
 MOV A,R0;不為0則相加
 ADD A,R2;乘數與處理后數據相加
 MOV R0,A;數據存回數據處理寄存器
 
A3: MOV A,R0;右移一位
 RRC A;相加可能溢出所以用RRC
 MOV R0,A;
 MOV A,R1;
 RRC A;將處理后的數移到被乘數
 MOV R1,A;
 DJNZ 30H,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
關閉窗口

相關文章