#include "iar_common.h" NAME fmemset //RTMODEL "__SystemLibrary", "CLib" //RTMODEL "__calling_convention", "idata_reentrant" RTMODEL "__code_model", "near" RTMODEL "__core", "plain" //RTMODEL "__data_model", "small" RTMODEL "__dptr_size", "16" RTMODEL "__extended_stack", "disabled" //RTMODEL "__location_for_constants", "data" RTMODEL "__number_of_dptrs", "1" RTMODEL "__rt_version", "1" RSEG DOVERLAY:DATA:NOROOT(0) RSEG IOVERLAY:IDATA:NOROOT(0) RSEG ISTACK:IDATA:NOROOT(0) RSEG PSTACK:XDATA:NOROOT(0) RSEG XSTACK:XDATA:NOROOT(0) PUBLIC fmemset FUNCTION fmemset,0203H ARGFRAME ISTACK, 2, STACK CFI Names cfiNames0 CFI StackFrame CFA_SP SP IDATA CFI StackFrame CFA_PSP16 PSP16 XDATA CFI StackFrame CFA_XSP16 XSP16 XDATA CFI StaticOverlayFrame CFA_IOVERLAY IOVERLAY CFI StaticOverlayFrame CFA_DOVERLAY DOVERLAY CFI Resource `PSW.CY`:1, `B.BR0`:1, `B.BR1`:1, `B.BR2`:1, `B.BR3`:1 CFI Resource `B.BR4`:1, `B.BR5`:1, `B.BR6`:1, `B.BR7`:1, `VB.BR8`:1 CFI Resource `VB.BR9`:1, `VB.BR10`:1, `VB.BR11`:1, `VB.BR12`:1 CFI Resource `VB.BR13`:1, `VB.BR14`:1, `VB.BR15`:1, VB:8, B:8, A:8 CFI Resource PSW:8, DPL0:8, DPH0:8, R0:8, R1:8, R2:8, R3:8, R4:8, R5:8 CFI Resource R6:8, R7:8, V0:8, V1:8, V2:8, V3:8, V4:8, V5:8, V6:8, V7:8 CFI Resource SP:8, PSPH:8, PSPL:8, PSP16:16, XSPH:8, XSPL:8, XSP16:16 CFI VirtualResource ?RET:16, ?RET_HIGH:8, ?RET_LOW:8 CFI ResourceParts PSP16 PSPH, PSPL CFI ResourceParts XSP16 XSPH, XSPL CFI ResourceParts ?RET ?RET_HIGH, ?RET_LOW CFI EndNames cfiNames0 CFI Common cfiCommon0 Using cfiNames0 CFI CodeAlign 1 CFI DataAlign -1 CFI ReturnAddress ?RET CODE CFI CFA_DOVERLAY Used CFI CFA_IOVERLAY Used CFI CFA_SP SP+-2 CFI CFA_PSP16 PSP16+0 CFI CFA_XSP16 XSP16+0 CFI `PSW.CY` SameValue CFI `B.BR0` SameValue CFI `B.BR1` SameValue CFI `B.BR2` SameValue CFI `B.BR3` SameValue CFI `B.BR4` SameValue CFI `B.BR5` SameValue CFI `B.BR6` SameValue CFI `B.BR7` SameValue CFI `VB.BR8` SameValue CFI `VB.BR9` SameValue CFI `VB.BR10` SameValue CFI `VB.BR11` SameValue CFI `VB.BR12` SameValue CFI `VB.BR13` SameValue CFI `VB.BR14` SameValue CFI `VB.BR15` SameValue CFI VB SameValue CFI B Undefined CFI A Undefined CFI PSW SameValue CFI DPL0 Undefined CFI DPH0 Undefined CFI R0 Undefined CFI R1 Undefined CFI R2 Undefined CFI R3 Undefined CFI R4 Undefined CFI R5 Undefined CFI R6 SameValue CFI R7 SameValue CFI V0 SameValue CFI V1 SameValue CFI V2 SameValue CFI V3 SameValue CFI V4 SameValue CFI V5 SameValue CFI V6 SameValue CFI V7 SameValue CFI PSPH Undefined CFI PSPL Undefined CFI XSPH Undefined CFI XSPL Undefined CFI ?RET Concat CFI ?RET_HIGH Frame(CFA_SP, 2) CFI ?RET_LOW Frame(CFA_SP, 1) CFI EndCommon cfiCommon0 RSEG NEAR_CODE:CODE:NOROOT(0) // __reentrantb void fmemset(void __generic *p, char c, uint16_t n) __reentrant fmemset: CFI Block cfiBlock0 Using cfiCommon0 CFI Function fmemset CODE AR0 EQU 0 AR1 EQU 1 AR2 EQU 2 AR3 EQU 3 AR4 EQU 4 AR5 EQU 5 AR6 EQU 6 AR7 EQU 7 MOV R0,SP DEC R0 DEC R0 MOV AR7,@R0 DEC R0 MOV A,@R0 MOV R6,A JNZ nlownz ORL A,R7 JNZ nnz doret: RET nlownz: INC R7 nnz: // decide memory space MOV A,R3 JB ACC.7,doret // >=0x80 code JNB ACC.0,xdataptr // ==0x01 xdata idataptr: MOV A,R4 idataloop: MOV @R1,A INC R1 DJNZ R6,idataloop DJNZ R7,idataloop RET xdataptr: MOV DPL,R1 MOV DPH,R2 MOV A,R4 xdataloop: MOVX @DPTR,A INC DPTR DJNZ R6,xdataloop DJNZ R7,xdataloop RET CFI EndBlock cfiBlock0 END