Я прочитал ответы на те же вопросы, что и мои, о переполнении стека, но я все еще не понимаю, что происходит на самом деле «под колпаком» между этими двумя утверждениями, поэтому я могу лучше понять, как данные используются в других функциях.
Предположим, у нас есть теоретические регистры 'a' и 'b':
у нас есть инструкция: "addq a, b ", что переводится как b = a + b или b + = a.
Означает ли это" установить значение регистра b, равное сумме значения регистра b плюс значение регистра a «
В результате чего значение регистра b меняется с 5 на 5 + 7 = 12.
ИЛИ
Означает ли это« установить значение регистра b равным сумме из регистра ADDRESS of b плюс регистр ADDRESS из "
В результате чего значение регистра 'b изменяется с 5 на 0x1 + 0x2 = 0x3.
Я предполагаю, что первый ответ правильно, но тогда в чем разница между первым утверждением и этим государственным деятелем t: «addq (a), b»?
Моя интерпретация этого утверждения «установить значение регистра b равным (разыменованное значение регистра a, равное содержимому a, равное значению регистра) а) плюс значение регистра b.
В результате значение регистра b изменяется с 5 на 5 + 7 = 12. Но B не разыменовывается, поэтому это не должно означать "установить регистр ADDRESS значение b равно (разыменованное значение регистра a, равного содержимому a, равному значению регистра VALUE для a) плюс значение VALUE для регистра b?
Но тогда мне это тоже не соответствует, потому что b не разыменовывается, поэтому не будет ли установка регистра ADDRESS для b равной регистру VALUE для плюс плюс регистра ADDRESS для b?
Возможно, аргумент назначения неявно разыменован; возможно, зависит ли его адрес или значение от типа вызова функции; может быть, sr c (адрес или значение) всегда записывается в значение регистров назначения, поэтому разыменование либо недопустимо, либо подразумевается?
Клири, у меня есть какое-то понятие задом наперед и / или неверно, какова правильная интерпретация?
Или и существуют ли крайние случаи или правила что мне неизвестно, какие аргументы функций могут быть разыменованы или неявно разыменованы, или как это может измениться в зависимости от операции?