-HACKING GUIDE2- Asm Example Mark and Recall (TELEPORT!)

Started by Black_Wolf, October 14, 2008, 10:53:59 AM

Previous topic - Next topic

Black_Wolf

#15
ok its again that when a hex is ABOVE 0x8000 its NEGATIVE. Basically it means you have to load the WHOLE address into a register and THEN load the word. We use ori for this, so you're code would really be

li r16, 0x2000
li r17, 0x4000
lis r18, 0x806B
ori r18, r18, 0xA782
lwz r18, 0(r18)
cmpw r18, r16
beq +0x10
cmpw r18, r17
beq +0x2C
b +0x48
lis r19, 0x90B6
lwz r20, 0x14A0(r19)
lwz r21, 0x14A4(r19)
lwz r22, 0x14A8(r19)
lis r23, 0xCD00
stw r20, 0x7FF0(r23)
stw r21, 0x7FF4(r23)
stw r22, 0x7FF8(r23)
b +0x24
lis r19, 0xCD00
stw r20, 0x7FF0(r19)
stw r21, 0x7FF4(r19)
stw r22, 0x7FF8(r19)
lis r23, 0x90B6
lwz r20, 0x14A0(r23)
lwz r21, 0x14A4(r23)
lwz r22, 0x14A8(r23)
nop


I also just fixed up a little typo, you were storing to 7FF4 twice, instead of 7ff8