У меня есть закулисный вопрос о том, как комментарии в MIPS хранятся в целом. В основном: почему они не влияют на инструкции, которые зависят от местоположения? Это связано с тем, как они хранятся?
Допустим, например, что у меня есть оператор перехода типа
j Label
# I'm a comment. I don't do anything!
Label:
Эта инструкция для перехода может быть 0x08100007
в шестнадцатеричном виде. Инструкция была бы такой же, если бы этот комментарий был там или нет. По крайней мере, согласно MARS 4.5, мой симулятор MIPS.
Но если бы вместо этого я поместил содержательную инструкцию между меткой и оператором jump, шестнадцатеричный код увеличивается.
j Label
addi $t0, $t0, 10
Label:
Согласно MARS, инструкция для прыжка фактически увеличивается до 0x08100008
в шестнадцатеричном формате.
Итак, почему комментарии не смещают адрес туда, куда требуется инструкция перехода, с go на?