I am reverse-engineering an 8051 architecture program of a specific chip. The disassembly naturally doesn't contain any function names, and the register names are minimal. For example, address 0xb3 is a specific register with the name "RTC2CON". since the register name is specific for the chip the disassembly doesn't show it but rather "0xb3".
My question is how can I set a rule that will replace every occurrence of a certain string in the disassembly (in this case 0xb3) with another string (the register name RTC2CON).
Another Example
| 0x0000393b c2e9 clr 0xe8.1 ;
| 0x0000393d 1239dd lcall TRANSMIT_r7_AND_GET_r7=RF_STATUS
| 0x00003940 e4 clr a
| 0x00003941 ff mov r7, a
| 0x00003942 1239dd lcall TRANSMIT_r7_AND_GET_r7=RF_STATUS
| 0x00003945 8f36 mov 0x36, r7 ;
| 0x00003947 d2e9 setb 0xe8.1 ;
\ 0x00003949 22 ret
To be more clear the chip is the nRF24LE1. In this example there is a manipulation on the special function register on adress 0xe8 (RFCON) Bit 1 is firstly cleared, and after some operation it is set again.
What I want is simply that the dissasembly will display RFCON.1 instead of 0xe8.1
Another problem I have is with a function that is called using ljmp instead of lcall. When I try to rename that function with afn the new name goes instead to the function calling it with ljmp. The function called has 58 XREFS and therefore it is very important to me to see it's name and not it's address when it is called. (functions default name is their fcn.address).