我需要在8051微控制器中重命名一个位可寻址的RAM位置。 我使用IDA PRO来反汇编二进制文件,输出如下:
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 :(得分: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.y
或Addrx.y
将解析为一个数字,因此您可以使用EQU。与Px
相同,因此您可以看到我将P0命名为RELAY
- 稍后我可以使用RELAY.0
,RELAY.1
,依此类推。
您可以为同一位分配多个名称;见上面的ACC.7
。