У комментариев в MIPS есть адреса? - PullRequest
0 голосов
/ 01 мая 2020

У меня есть закулисный вопрос о том, как комментарии в 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 на?

1 Ответ

1 голос
/ 01 мая 2020

Процессор не знает или не видит:

  • комментарии
  • объявления данных
  • метки

Он только видит инструкции машинного кода - и они рассказывают все, что нужно знать о

  • , какую команду выполнить затем
  • как интерпретировать данные ( переменные / места хранения)

Поскольку комментарии не имеют представления в машинном коде, они удаляются компилятором или ассемблером.

...