выполнение меток в MIPS - PullRequest
       0

выполнение меток в MIPS

1 голос
/ 01 сентября 2010

Это действительно простой вопрос, но если у меня есть куча инструкций, написанных для MIPS (хотя я предполагаю, что это, вероятно, переносится на сборку в целом), и в какой-то момент есть метка, выполняет ли инструкция на этой меткевыполнить, даже если он явно не вызывается?Например, скажем, у меня есть:

SUB $6, $4, $3

BNE $6, $2, LABEL1

ADDI $6, $0, -8

LABEL1: SW $6, 0x01000

Если BNE переходит к LABEL1, то ADDI пропускается.Но если BNE не разветвляется на LABEL1, тогда происходит ADDI, но всегда ли происходит и следующая строка?

Ответы [ 2 ]

1 голос
/ 01 сентября 2010

Он называется интервалом задержки . Ветвление выполняется или нет после выполнения следующей инструкции. Вот почему часто встречается nop после инструкций ветвления в коде MIPS. Инструкция перехода в интервале задержки обычно является неопределенным поведением.

Инструкция на метке назначения будет выполняться только в том случае, если условие истинно и выполняется ветвление.

Подробнее здесь

0 голосов
/ 01 сентября 2010

"всегда ли следующая строка тоже происходит?"

да

...