中文字幕无码不卡一区二区三区_少妇被又大又粗又爽毛片久久黑人_91精品国产在热久久无毒不卡_久久久久久亚洲综合网站

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開發(fā)工具

提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

PIC單片機(jī)無符號 BCD 減法

更新時(shí)間: 2019-03-22
閱讀量:2365

單片機(jī)開發(fā)商深圳英銳恩分享PIC單片機(jī)無符號 BCD 減法。

;******************* 無符號 BCD 加法  ***************
;
;       This routine performs a 2 Digit Unsigned BCD Addition
; It is assumed that the two BCD numbers to be added are in
; locations Num_1 & Num_2. The result is the sum of Num_1+Num_2
; and is stored in location Num_2 and the overflow carry is returned
; in location Num_1
;
;   Performance :
;               Program Memory  :       25
;               Clock Cycles    :       17   ( worst case )
;

;*******************************************************************;
;
Num_1   equ     8       ; 加數(shù)寄存器,加法和的高位寄存器。
result  equ     8
;
Num_2   equ     9       ; 加數(shù)寄存器,加法和的低位寄存器。
O_flow  equ     9
; 其它的寄存器自己定義   
;
BCDAdd
movf    Num_1,W
clrf    Num_1           ;clear num_1
addwf   Num_2,1         ; do binary addition
btfsc   STATUS,C        ;< 256 then skip
goto    inc_n1n2        ;else inc all
movlw   66              ;add 66
addwf   Num_2,1         ;/
btfss   STATUS,DC       ;half carry?
goto    sub_06          ;no then subtract
btfss   STATUS,C        ;full carry?
goto    sub_60          ;yes then subtract
inc_n1 
incf    Num_1,1         ;inc it
  retlw   0               ;clr w
sub_06

 btfss   STATUS,C        ;full carry
  goto    sub_66          ;yes subtract 66
  movlw   6               ;else subtract 6
  goto    sub_com         ;do common
sub_66

  movlw   66             
sub_com
subwf   Num_2,1                  
  retlw   0
sub_60
      movlw   60
  goto    sub_com
inc_n1n2
  movlw   66
  addwf   Num_2,1
  goto    inc_n1
;
;********************************************************************
;               測試程序(注意它怎樣使用該子程序)
;*********************************************************************

main  
movlw   99
movwf   Num_1      ; Set Num_1 = 99 ( max BCD digit )
movlw   99
movwf   Num_2      ; Set Num_2 = 99
;
call    BCDAdd     ; After addition, Num_2 = 98
;                          ;  and Num_1 = 01 ( 99+99 = 198 -> max number )
;
self    goto    self     ;如不是測試程序,這句無用
;
;
org     1FF
goto    main
;
END

绥化市| 永胜县| 北辰区| 汽车| 越西县| 桐柏县| 大洼县| 施甸县| 潼关县| 山东省| 玛纳斯县| 阳原县| 遂昌县| 忻州市| 余庆县| 通榆县| 梧州市| 玛曲县| 中卫市| 鹤山市| 三都| 前郭尔| 塘沽区| 荥经县| 中宁县| 固始县| 高要市| 普宁市| 垦利县| 沈阳市| 蒙自县| 资兴市| 石家庄市| 吉木萨尔县| 尼木县| 社会| 唐河县| 五指山市| 常熟市| 霍山县| 南漳县|