Ассемблер в Linux для программистов C: различия между версиями
Содержимое удалено Содержимое добавлено
Gribozavr (обсуждение | вклад) →Ссылки: материал, к сожалению, не очень хорош |
D'ohBot (обсуждение | вклад) м робот косметические изменения |
||
Строка 64:
Эти регистры можно использовать «по частям». Например, к младшим 16 битам регистра <code><code>%eax</code></code> можно обратиться как <code>%ax</code>. <code>%ax</code>, в свою очередь, содержит две однобайтовых половинки, которые могут использоваться как самостоятельные регистры: старший <code>%ah</code> и младший <code>%al</code>. Аналогично можно обращаться к <code>%ebx</code>/<code>%bx</code>/<code>%bh</code>/<code>%bl</code>, <code>%ecx</code>/<code>%cx</code>/<code>%ch</code>/<code>%cl</code>, <code>%edx</code>/<code>%dx</code>/<code>%dh</code>/<code>%dl</code>, <code>%esi</code>/<code>%si</code>, <code>%edi</code>/<code>%di</code>.
[[
Не следует бояться такого жёсткого закрепления назначения использования регистров. Большая их часть может использоваться для хранения совершенно произвольных данных. Единственный случай, когда нужно учитывать, в какой регистр помещать данные — использование неявно обращающихся к регистрам команд. Такое поведение всегда чётко документировано.
|