Ðề tài: Thuat toan chia
View Single Post
Old 05-11-2006, 10:16 PM   #10
chumeodihia
Đệ tử 1 túi
 
Tham gia ngày: Sep 2006
Bài gửi: 17
:
Đây là phép chia 8 bit cho 8 bit lấy về tham khảo nhe bạn 16 bit cũng tương tự như vậy thôi:

Code:
#include <p18F4431.inc>
org 0x000000
SO_CHIA    EQU 0X81
SO_DU      EQU 0X82
DIV        EQU 0X83
SO_DICH    EQU 0X84
LUU_TAM    EQU 0X85
KQ_CHIA    EQU 0X86
MAIN
MOVLW .15
MOVWF DIV
MOVLW .10
MOVWF SO_CHIA

CLRF KQ_CHIA
CLRF SO_DU
CLRF LUU_TAM
MOVLW .8
MOVWF SO_DICH

MOVF DIV,W
CPFSLT SO_CHIA   ;NHAY NEU SO_CHIA < DIV
  BRA KET_THUC
LOOP
BCF STATUS,C 
RLCF DIV         ;BIT7 OF DIV VAO CO C VA CO C VA BIT0 CUA DIV  
RLCF LUU_TAM     ;BIT7 OF DIV VAO BIT0 CUA LUU_TAM
MOVF LUU_TAM,W
CPFSEQ SO_CHIA
  BRA NO_BANG
  BRA BANG
NO_BANG
MOVF LUU_TAM,W
CPFSLT SO_CHIA   ;NHAY NEU SO_CHIA < LUU_TAM (XEM SO DA DICH >SO CHIA CHUA)
  BRA TTUC       ;NO :THUONG SO=0 VA LUU VAO KQ_CHIA
BANG
MOVF SO_CHIA,W   ;YES:THUONG SO=1 VA LUU VAO KQ_CHIA
SUBWF LUU_TAM,1  ;(LUU_TAM)-(SO_CHIA) LUU VAO LUU_TAM(SO_DU)
MOVLW 0X01 
ADDWF DIV,1      ;DICH 1 VAO BIT0 CUA DIV-CHINH LA KQ_CHIA
TTUC
MOVFF LUU_TAM,SO_DU
MOVFF DIV,KQ_CHIA
DECFSZ SO_DICH,1
BRA LOOP
KET_THUC
END

thay đổi nội dung bởi: falleaf, 13-11-2007 lúc 05:18 PM.
chumeodihia vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn