This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Compiler/MSP430F167: Compiler tool dis430.exe output text format

Part Number: MSP430F167

Tool/software: TI C/C++ Compiler

As part of a MSP430F167 code development process the .out file from CCS was disassembled by dis430.exe.

A "designed to be stand alone code section" was then inspected for any calls/jumps outside the stand alone code's defined address range.

Earlier versions of the MSP430 disassembler (dis430.exe) produced hex addresses in the disassembly, but later versions replaced the hex addresses with their symbolic names.

For example the early disassemblers would produce this format

 009840: B012             CALL    #0xbe48

But the later ones produce this format

009852: B012             CALL    #set_hw_rev

dis430.exe -h shows there is an option

  --noaddr,-a                  Do not print ADDRESS with label names within instructions

Which I read as reverting the output to the old format, but I can't get it to produce the old format.

Is there a way to have the newer versions of dis430.exe to produce the old hex format without the symbols inserted?

Thanks,

John Wright

  • Thank you for reporting this problem.  I can reproduce it.  I agree that using --noaddr should show hex addresses instead of symbol names.  So, I filed CODEGEN-4955 in the SDOWP system to have this investigated.  You are welcome to follow it with the SDOWP link below in my signature.

    As a workaround, I suggest you use an old disassembler on executables created by new tools.  That is not a combination we test.  But so long as the versions are not too far apart, it is likely to work.

    Thanks and regards,

    -George

  • Is there an archive site with the different revisions of the dis430.exe available?

    Before I posted I did try two binary different dis430.exe I found for two compilers in CCSV7, but they both worked the same (incorrectly).

    I'd like to use the latest one that doesn't have the defect, but do not see a way to get different dis430.exe versions short of pulling in different versions of the compiler.

    Thanks,
    John Wright
  • Please ignore my workaround suggestion.  As far as I can tell, the --noaddr option has never worked.  

    Please consider another workaround.  Strip the symbols from the executable, then run the disassembler.

    % strip430 -p final_executable.out
    % dis430 final_executable.out

    The strip430 utility modifies the file in place.  So, it may make sense to copy final_executable.out to a temporary file, then work with the temporary file.

    Thanks and regards,

    -George

  • I'll see if this works.

    Note that older versions of dis430.exe did produce output with hex, not symbolic, addresses in the disassembly.

    The --noaddr option was not used, and may have been unavailable in some earlier dis430.exe versions

    I was invoking the CCE2.0 disassembler this way:

    dis430.exe -c -n file.out > file.txt

    I'll try your stripping of the symbols suggestion, as it would be good to use the latest version of the dis430.exe tool.

    Thanks,

    John Wright

  • John Wright15643 said:
    I'll try your stripping of the symbols suggestion

    Please let me know if that solves the problem.

    Thanks and regards,

    -George

  • The symbol stripping followed by the dis430.exe produced the output I wanted.

    Thanks,

    John Wright