[PATCH] opcodes/i386: use '; ' as comment character for intel style disassembly
H.J. Lu
hjl.tools@gmail.com
Mon Aug 29 18:24:03 GMT 2022
On Sat, Aug 27, 2022 at 8:19 AM Andrew Burgess via Binutils
<binutils@sourceware.org> wrote:
>
> While working on a disassembly related GDB issue I was comparing the
> disassembly output for x86-64 in att mode and intel mode.
>
> I ended up trying to cut & paste some disassembly snippets from the
> disassembler, and feed the instructions back through the assembler.
>
> For the att style disassembly this worked fine, but for the intel
> style disassembly I ran into a problem as the '#' character, which is
> used for comments in i386-dis.c was not recognised by either of the
> intel style assemblers I have to handle (nasm and yasm).
>
> Searching online, every example I could find that has intel style
> assembly syntax, used ';' for the comment character, and indeed, when
> I switch '#' to ';', my same code assembled fine.
But, ';' marks the end of instructions for GNU assembler:
[hjl@gnu-efi-2 tmp]$ cat x.s
.intel_syntax noprefix
mov eax, edx; mov eax, edx;
[hjl@gnu-efi-2 tmp]$ gcc -c x.s
[hjl@gnu-efi-2 tmp]$ objdump -dw -Mintel x.o
x.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <.text>:
0: 89 d0 mov eax,edx
2: 89 d0 mov eax,edx
[hjl@gnu-efi-2 tmp]$
> In i386-dis.c we already have a bunch of characters that are
> customised based on the selected syntax, see open_char, close_char,
> separator_char, and scale_char.
>
> I propose to add comment_char to this list. This will be '#' for att
> syntax, and ';' for intel syntax.
>
> I've updated the gas tests to account for this change.
--
H.J.
More information about the Binutils
mailing list