Hi,
I'm currently disasm a rom and I'm stuck on a strange problem.
0x2F 0x38 0xB0 0x3A must be read as
move.l (0xFFB03A).w, -(SP)
but ida write
move.l (0xFFFFB03A).w, -(SP)
and so I miss all features since 0xFFFFB03A isn't on a valid memory range..
does someone know how to setup IDA so RAM addressing is valid ?
thanks
move under IDA
Moderator: BigEvilCorporation
Right address will be 0xFFFFB03A because of sign-extension. Job of disassembler is to show you the right address (0xFFFFB03A), it doesn't know about 24-bits address wire. And job of emulator is to implement address correctly, knowing about 24 bits, so emulator will get 0x00FFB03A.
As to IDA I thnk there are some ways:
- define range of adresses
- write script cutting all adresses to 24-bit mode.
As to IDA I thnk there are some ways:
- define range of adresses
- write script cutting all adresses to 24-bit mode.
-
- Very interested
- Posts: 745
- Joined: Sat Dec 15, 2007 7:49 am
- Location: Kazakhstan, Pavlodar
I use my own IDA Loader. I simply create two segments: $00FFxxxx and $FFFFxxxx. I dont know, is it possible to create one segment and alias to it.
-
- Very interested
- Posts: 2984
- Joined: Fri Aug 17, 2007 9:33 pm
You probably want two segments: 0x00FF0000 to 0x00FF7FFF, and 0xFFFF8000 to 0xFFFFFFFF. The second segment can use short absolute addressing; the first can't.KanedaFr wrote:I was about to create a RAM from FFFF0000 and not 00FF0000 since IDA doesn't like it...
it seems it's the only valuable solution....unless RAM values are hardcoded
no way to create mirroring address on IDA ? it would be cool to say FFFF0001 is the same thing as 00FF0001