call/ret, push/pop и прочие.

Do you have a question? Post it now! No Registration Necessary


   Oleksandr, ты ещё здесь сидишь?


Суббота Февраль 14 2004 00:32, Oleksandr Redchuk wrote to George Shepelev:

 OR>>> Однако недостатки есть. Во-первых, нет особого счастья в том, что
 OR>>> можно использовать _любой_ регистр.
 GS>> А никто не заставляет _любой_ использовать.
 OR>  Hо кодовое пространство это занимает.

 Зато появляется возможность реализовать "быстрый регистровый стек".
В начале процедуры сохранить все (нужные) регистры, а затем в куче
мест использовать (вложенные) CALL'ы с использованием регистров,
соответствующих "правильному" уровню вложенности ,-)


 OR>>> Довольно удобно и то, что команда  ldmea _одна_ может
 OR>>> восстанавливить все необходимые регистры и осуществить возврат из
 OR>>> подпрограммы.
 GS>> Возврат с восстановлением контекста. Кстати, а к регистру
 GS>> указателя стека какой доступ?
 OR> В родном ARM режиме (32-битные команды) все регистры равноправны.
 OR>  r15 aka PC
 OR>  r14 aka LR
 OR>  r13 aka SP

 Красиво.

 OR> В THUMB-режиме (16-битные команды, регистры как были - 32бит) в работе
 OR> R0..R7, а SP, LR, PC -- выделенные регистры и есть некая ассиметрия
 OR> системы команд, но код занимает меньший объём.

 Понятно.



                                                   Георгий


Site Timeline