新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機多字節(jié)的除法

51單片機多字節(jié)的除法

作者: 時間:2012-08-24 來源:網絡 收藏
;(四字節(jié)除四字節(jié),被除數或者除數小于四字節(jié),則前面填0即可)

; 后面還有一個雙字節(jié)除雙字節(jié)的程序,如果除數是單字節(jié),則字高位填為00即可)

;

;R4R5R6R7放被除數 R0R1R2R3放除數
;當除數的長度為4字節(jié)時 R3R4R5R6是余數 R7是商
;當除數的長度為3字節(jié)時 R3R4R5是余數 R6R7是商
;當除數的長度為2字節(jié)時 R3R4是余數 R5R6R7是商
;當除數的長度為1字節(jié)時 R3是余數 R4R5R6R7是商

;被除數是雙字時,將R4R5置為0即可,這個程序包打天下
;用一個單元來放中間值 單元名為danyuan
danyuan equ 3BH
MOV R7,#0ffh
MOV R6,#0ffh
MOV R5,#0ffh
MOV R4,#0ffh
MOV R3,#100
MOV R2,#0H
MOV R1,#0H
MOV R0,#0H


MOV B,#08H
CJNE R0,#00H,DVDL
MOV B,#10H
CLR A
XCH A,R3
XCH A,R2
XCH A,R1
XCH A,R0
CJNE R0,#00H,DVDL
CLR A
XCH A,R2
XCH A,R1
XCH A,R0
MOV B,#18H
CJNE R0,#00H,DVDL
CLR A
XCH A,R1
XCH A,R0
MOV B,#20H
CJNE R0,#00H,DVDL
SETB OV
JMP END_DIV
DVDL: MOV danyuan,#00H
DVDL2: CLR C
MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
XCH A,R5
RLC A
XCH A,R5
XCH A,R4
RLC A
XCH A,R4
XCH A,danyuan
RLC A
XCH A,danyuan
JC DVDL1
DVDL4: SUBB A,R3
MOV A,R5
SUBB A,R2
MOV A,R4
SUBB A,R1
MOV A,danyuan
SUBB A,R0
JC DVDL3
DVDL1: CLR C
MOV A,R6
SUBB A,R3
MOV R6,A
MOV A,R5
SUBB A,R2
MOV R5,A
MOV A,R4
SUBB A,R1
MOV R4,A
MOV A,danyuan
SUBB A,R0
MOV danyuan,A
INC R7
DVDL3: DJNZ B,DVDL2
END_DIV:
MOV R3,danyuan
NOP ;停在這里看結果
END

三極管相關文章:三極管放大電路


51單片機相關文章:51單片機教程



上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉