gas x86-32: allow non-absolute segment values for lcall/ljmp?
TK Chia
u1049321969@caramail.com
Wed Sep 30 13:13:05 GMT 2020
Good day all,
I am trying to use Binutils's GNU assembler for writing 16-bit Intel x86
(IA-16) code. I see that the x86 assembler does not allow me to use an
unresolved or non-absolute symbol as the segment operand of an immediate
far jump (`ljmp SEG, OFF') or far call (`lcall SEG, OFF'):
======================================================================
$ cd .../binutils-gdb
$ cat >test5.s
.code16
lcall $foo_seg, $foo_off
$ git log -1 | head -6
commit c81946efc22dbbe97ef8c934a5367e37bf101c48
Author: Alex Coplan <alex.coplan@arm.com>
Date: Wed Sep 30 12:15:18 2020 +0100
NEWS: Mention recent Arm CPU support
$ gas/as-new --32 test5.s
test5.s: Assembler messages:
test5.s:2: Error: can't handle non absolute segment in `lcall'
======================================================================
I find this a rather strange restriction. If it is fine, I would like
to propose a patch to GNU as to remove this restriction for `lcall' and
`ljmp' commands.
Thank you!
--
https://github.com/tkchia
More information about the Binutils
mailing list