Ассемблер в Linux для программистов C: различия между версиями

Содержимое удалено Содержимое добавлено
→‎Ссылки: материал, к сожалению, не очень хорош
м робот косметические изменения
Строка 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>.
 
[[ИзображениеФайл:Ассемблер_в_Linux_для_программистов_Си._Регистры_общего_назначения.svg|||center]]
 
Не следует бояться такого жёсткого закрепления назначения использования регистров. Большая их часть может использоваться для хранения совершенно произвольных данных. Единственный случай, когда нужно учитывать, в какой регистр помещать данные — использование неявно обращающихся к регистрам команд. Такое поведение всегда чётко документировано.