ich habe ein Programm geschrieben, aber das Praoramm läuft nicht richtig, warum?
Code:
;**************************** 
; 	8x8 Software Multiplier	 
;****************************
		LIST 	P = 16f84,
 		#include<P16f84.INC>		 
 
mulcnd 	equ 	0x09 	; 8 bit multiplicand	 
mulplr 	equ 	0x10 	; 8 bit multiplier	 
H_byte 	equ 	0x12 	; High byte of the 16 bit result	 
L_byte 	equ 	0x13 	; Low byte of the 16 bit result	 
count 	equ 	0x14 	; loop counter	 
Same 	equ 	1
;************************************************************************

START  GOTO 	main
				 		 
; ***************************** 	
Begin Multiplier Routine 	 
mpy_S 	clrf 	H_byte 		; H_byte = 0000 0000 
		clrf 	L_byte 		; L_byte = 0000 0000
		movlw 	8 		 
		movwf 	count 	    ; count = 8	 
		movf 	mulcnd,W 	; multiplicand ---> W
		bcf 	STATUS, C 	; Clear the carry bit  
loop    rrf 	mulplr, F   ; multiplier: 1-bit nach rechts verschieben
		btfsc 	STATUS,C 	; C=0 , uebergehen
		addwf 	H_byte,Same 		 
		rrf 	H_byte,Same 		 
		rrf     L_byte,Same
		decfsz  count, F
		goto    loop
		retlw 0
;
 ;********************************************************************
; Test Program
;*********************************************************************
main	movlw   0x1f
		movwf 	mulplr  	; multiplier---> mulplr
		movlw 	0x12         
		movwf 	mulcnd		; Multiplicand ---> mulcnd

		call 	mpy_S 		; 
		END
Code-Tags verwenden ! sieht hübscher aus