芯海单片机乘法运算

文章正文
发布时间:2024-07-30 04:19
;============================================
; filename: 乘法运算.asm
; chip : CSU1182B
; author :
; date : 2013-02-21
;程序下载:
;============================================
include CSU1182B.inc
;============================================
; program start
;============================================
org 000h
GOTO A1
ORG 15H

A1:
MOVLW 00H ;
MOVWF 0B0H ;高位数据处理寄存器(乘积高8位)
MOVLW 00H ;
MOVWF 0B1H ;低位数据处理寄存器(乘积中高8位)

MOVLW 22H ;
MOVWF 0B2H ;被乘数高位(乘积低高8位)
MOVLW 0B8H ;
MOVWF 0B3H ;被乘数低位(乘积低8位)

MOVLW 27H ;
MOVWF 0B4H ;乘数高8位
MOVLW 0FH ;
MOVWF 0B5H ;乘数低8位

MOVLW 16 ;
MOVWF 0BFH ;乘数位数

A2:
BCF STATUS,C ;
BTFSS 0B3H,0 ;判断被乘数最低位是否为1
GOTO A3 ;
MOVFW 0B5H ;是则用数据处理寄存器加上乘数
ADDWF 0B1H,1 ;
MOVFW 0B4H ;
ADDWFC 0B0H,1 ;
A3:
RRF 0B0H,1 ;带进位右移
RRF 0B1H,1 ;
RRF 0B2H,1 ;
RRF 0B3H,1 ;
DECFSZ 0BFH,1 ;判断是否完成运算
GOTO A2 ;

GOTO $ ;

end
;============================================