2017-07-06 55 views
2

我需要在8051微控制器中重命名RAM的位寻址位置。 我用IDA Pro来反汇编二进制文件,并输出结果如下:如何在IDA Pro中重命名8051的位寻址RAM?

clr RAM_29.3  
clr RAM_29.7  
clr P1.5  

我可以重新命名端口P1或内存RAM_29,但我怎么可以重命名这些变量的每一位?是否有可能在IDA Pro反汇编做这样的事情:

(clr TXpin) 

,而不是

(clr P1.5)  ------- (P1.5 == TXpin) 

回答

0

使用Metalink公司的ASM51,我这样做:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;          ; 
;  Port pin assignments   ; 
;          ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
             ; 
LCD_RS   equ  acc.5   ; We operate on LCD bits in 
LCD_E   equ  acc.6   ; the accumulator because 
LCD_RW   equ  acc.7   ; P4 is not bit-addressable 
LCD_BF   equ  acc.7   ; 
             ; 
RELAY   equ  P0    ; Relays are on P0.0-P0.3 
             ; 
DRDY   equ  P0.7   ; SPI pacing from keypad IC 
             ; 
PIEZO_PIN  equ  P1.7   ; Beeper output pin 

对于任何端口(或地址)这是位寻址,Px.yAddrx.y将解析为一个数字,所以你可以在它上面使用EQU。与Px一样,所以您可以看到我命名为P0 RELAY - 稍后我可以使用RELAY.0,RELAY.1等等。

您可以将多个名称分配给同一位;见上面的ACC.7

+0

Metalink的ASM51不是IDA Pro。 –