在指令中使用 offset+reg 时sw
,偏移量必须是 16 位有符号的。我如何以可接受的形式表达它?GNUas
抱怨expression is too complex
. 请注意,我不想使用宏指令。
事实上,这两条指令就是宏指令sw $0, foo
扩展的内容。
lui $1, (foo >> 16) ; <---- OK
sw $0, (foo & 0xFFFF)($1) ; <---- error: expr too complex ;)
...
foo:
.word 123