|
c2h equ 0x60
c2l equ 0x61
bxs equ 0x62
chenh equ 0x63
chenl equ 0x64 dianyaxi equ 0x71
dianliuxi equ 0x72
cheng16 macro a,b
movf a,0
movwf c2l
movlw 0x00
movwf c2h
movf b,0
movwf bxs
mul16
clrf chenl
clrf chenh
incf bxs,1
loop3
decf bxs,1
btfsc status,z
goto xy
call add16c
goto loop3
add16c
movf c2l,w
addwf chenl
btfsc status,c
incf chenh
movf c2h,w
addwf chenh,1
retlw 0
xy
nop
endm
只调用该程序一次,运行正常,当再调用时出现错误。
详细情况如下:
第一次调用
movlw 0xf7
movwf dianyaxi
cheng16 0x22,dianyaxi
;调试运行正常。
第二次调用
movlw 0x38
movwf dianliuxi
cheng16 0x23,dianliuxi
结果出现以下错误!
Error[116] D:\PROGRA~1\MPLAB\н¨ÎÄ~1\XV01.ASM 89 : Address label duplicated or different in second pass (MUL16)
Error[116] D:\PROGRA~1\MPLAB\н¨ÎÄ~1\XV01.ASM 93 : Address label duplicated or different in second pass (LOOP3)
Error[116] D:\PROGRA~1\MPLAB\н¨ÎÄ~1\XV01.ASM 99 : Address label duplicated or different in second pass (ADD16C)
Error[116] D:\PROGRA~1\MPLAB\н¨ÎÄ~1\XV01.ASM 107 : Address label duplicated or different in second pass (XY) |
|