#pragma SRC
#pragma SMALL
unsigned int asmfunc1 (
unsigned int arg)
{
#pragma ASM
INC R8
#pragma ENDASM
return (arg);
}
or
int AddUp (
int n,
int near *pTab)
{
__asm { ; open inline-assembly block
mov r2,pTab ; R2:=start of table
mov r3,n
cmp r3,#0
jmp cc_sle,stop ;
shl r3,#1 ; n * 2
add r3,r2 ; R3 := (n*2)+pTab, end of table + 2
mov r4,#0x00 ; clear result
lM: add r4,[r2+] ; add up next value
cmp r2,r3 ; end of table ?
jmp cc_nz,lM ; loop if not eot
ret ; need result in R4
}
stop:
__asm { nop ; single line assembly }
__asm { nop ; another nop }
return (0);
}