Your progress with ASM is great, I hope it'll do fine for others since I posted the tut, btw, I finally found how you increase the HP to a designated amount, here's my code which increases for the first pokemon in the party, of course I can do it for all, but it'll be long and I'm lazy -.-" ...
push {r0, r1, r2, lr} @pushes/saves these registers on stack to retain their values
ldr r0, =0x30043b6 @loads 0x30043b6 to r0
mov r2, #0x10 @copies 0x10 = 16 decimal to r2, so r2 holds 16/0x10/&H10
ldrh r1, [r0] @loads halfword from r0, with means 0x30043b6 is loaded to r1
add r1, r1, r2 @adds the current value at r1 with value at r2 to r1
strh r1, [r0] @stores halfword of the now r1 value to offset/pointer
pop {r0, r1, r2, pc} @pops/returns the previous values for these registers.
xD, I learnt to comment on the routine, - 1) to remind me, and 2)to know what I'm doing, haha, Anyways if theres something wrong, correct me - it worked fine ingame.
Edit: Did you know, all this writing and loading values from memory addresses can be done without ASM and through scripting ;), try writebytotooffset and loadbytefrompointer, I think.