Size: a a a

Ассемблер

2020 May 24

t

tfyvgubhinjkwaxdrctf... in Ассемблер
обнуляет ли при завершении работы программы?
источник

楽園松本 in Ассемблер
tfyvgubhinjkwaxdrctfgvyuhbjnmkzsdxfcvghbjnsxdfcgvhbjehhfhn
изначально вопрос так и был сформулирован: инициализирует ли загрузчик регистры процессора перед выполнением программы?
При загрузке загрузчик инициализирует регистры определённым образом. Но это нельзя считать естественным действием. После завершения процесса загрузчик никаких действий с регистрами делать не будет.
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
楽園松本
При загрузке загрузчик инициализирует регистры определённым образом. Но это нельзя считать естественным действием. После завершения процесса загрузчик никаких действий с регистрами делать не будет.
а очищает ли загрузчик память при завершении работы программы? или этим занимается другая программа, условный "выгрузчик", и загрузчик к этому действию уже не относится?
источник

A

Aleksandr in Ассемблер
Не очищает, но освобождает
источник

楽園松本 in Ассемблер
tfyvgubhinjkwaxdrctfgvyuhbjnmkzsdxfcvghbjnsxdfcgvhbjehhfhn
а очищает ли загрузчик память при завершении работы программы? или этим занимается другая программа, условный "выгрузчик", и загрузчик к этому действию уже не относится?
Нет, память не очищается. По завершении работы программы управление передаётся загрузчику. Загрузчик обозначает в своей таблице размещения ресурсов участок памяти, где работала программа, как свободный.
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
Aleksandr
Не очищает, но освобождает
"чистит" и освобождает нельзя использовать как синонимы?
источник

楽園松本 in Ассемблер
tfyvgubhinjkwaxdrctfgvyuhbjnmkzsdxfcvghbjnsxdfcgvhbjehhfhn
"чистит" и освобождает нельзя использовать как синонимы?
Нет.
источник

楽園松本 in Ассемблер
Освобождает означает помечает как свободный. Чистит значит затирает содержимое.
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
楽園松本
Освобождает означает помечает как свободный. Чистит значит затирает содержимое.
понятно, спасибо
ещё один вопрос: что определяет объём виртуальной памяти процесса? насколько я знаю, для 32-разрядных систем он равен 4 гб, а как быть с 64-разрядной системой? запущенные сейчас на моём компьютере условные 64-разрядные программы имеют в своём распоряжении также 4 гб памяти или же нет?
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
楽園松本
При загрузке загрузчик инициализирует регистры определённым образом. Но это нельзя считать естественным действием. После завершения процесса загрузчик никаких действий с регистрами делать не будет.
как понять "нельзя считать естественным действием"?
источник

BA

Bulat Abuzarov in Ассемблер
tfyvgubhinjkwaxdrctfgvyuhbjnmkzsdxfcvghbjnsxdfcgvhbjehhfhn
понятно, спасибо
ещё один вопрос: что определяет объём виртуальной памяти процесса? насколько я знаю, для 32-разрядных систем он равен 4 гб, а как быть с 64-разрядной системой? запущенные сейчас на моём компьютере условные 64-разрядные программы имеют в своём распоряжении также 4 гб памяти или же нет?
Максимальный объем доступного адресной объема памяти 2^64-1, на самом деле немного меньше  т к  часть используется для отображения памяти ядра
источник

BA

Bulat Abuzarov in Ассемблер
tfyvgubhinjkwaxdrctfgvyuhbjnmkzsdxfcvghbjnsxdfcgvhbjehhfhn
понятно, спасибо
ещё один вопрос: что определяет объём виртуальной памяти процесса? насколько я знаю, для 32-разрядных систем он равен 4 гб, а как быть с 64-разрядной системой? запущенные сейчас на моём компьютере условные 64-разрядные программы имеют в своём распоряжении также 4 гб памяти или же нет?
Т.е. вы  можете замапить память по адресу 0x1fffffffffff000 на физическую память в 64 битной системе
источник

BA

Bulat Abuzarov in Ассемблер
В данном случае объем это не то сколько вы можете замапить или использовать
источник

BA

Bulat Abuzarov in Ассемблер
Это то к каким адресам вы можете обращаться
источник

BA

Bulat Abuzarov in Ассемблер
Реальный объем естественно зависит от доступной физической памяти
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
Bulat Abuzarov
Т.е. вы  можете замапить память по адресу 0x1fffffffffff000 на физическую память в 64 битной системе
а размер страничек в такой памяти тоже 4 киб?
источник

BA

Bulat Abuzarov in Ассемблер
tfyvgubhinjkwaxdrctfgvyuhbjnmkzsdxfcvghbjnsxdfcgvhbjehhfhn
а размер страничек в такой памяти тоже 4 киб?
Зависит от архитектуры и настроек
источник

BA

Bulat Abuzarov in Ассемблер
Обычно да
источник

BA

Bulat Abuzarov in Ассемблер
В смысле настроек имеется ввиду что вы можете отображать память например сегментами по 2мб, но да обычно 4кб
источник

t

tfyvgubhinjkwaxdrctf... in Ассемблер
благодарю Вас за ответы
источник