I use IDA Pro 6.1 to disassembly ELF file, which is compiled on 32 bit Linux, gcc 4.6.3
I modified the code and try to make it reassemble, and I find a problem here(this is directly created by IDA Pro):
main proc near
......
mov dword ptr [esp+4], offset msgid
......
......
foo proc near
msgid = dword ptr -18d
......
mov [esp+1Ch+msgid], 1
section .rodata
msgid db 'extra operand %s',0
So if I do some modify work and assembly it use nasm, it will produce this error:
error: label or instruction expected at start of line
targeting on this line:
msgid db 'extra operand %s',0
If I modify it like this:
main proc near
......
mov dword ptr [esp+4], offset msgid111
......
......
foo proc near
msgid = dword ptr -18d
......
mov [esp+1Ch+msgid], 1
section .rodata
msgid111 db 'extra operand %s',0
Then no error in this part.
So my questions are:
- Why IDA Pro will use variable name as the macro name?
- Is there any better way to bypass this error than modify the variable name?
Thank you!