Как вычислить адрес памяти
![](/article/uploadfiles/202210/2022102122482774.jpg)
Адрес памяти компьютера — это шестнадцатеричный или двоичный адрес, который компьютер использует при хранении данных. Всякий раз, когда часть информации сохраняется, компьютер должен вычислить, где хранить данные в памяти, исходя из сегмента и смещения адреса на жестком диске. Вычисление адреса памяти из этих адресов сегментов и смещений может оказаться сложной задачей и требует продвинутых вычислений и математических знаний, но для программиста крайне важно знать, как это сделать.
Шаг 1
Возьмите свой 16-битный сегмент и адрес смещения и разбейте их на пары. Например, если вы имеете дело с двумя адресами «0000:0100», вы можете преобразовать их в 20-битный сегмент и сместить адреса, разбив их пополам двоеточием, чтобы они стали «0000» для 20-битного сегмента. адрес и "0100" для 20-битного адреса смещения.
Шаг 2
Сложите два 20-битных адреса вместе в двоичной форме, чтобы получить шестнадцатеричный адрес памяти. Для адресов «0000» и «0100» результатом сложения будет «00100» в шестнадцатеричном формате. Этот адрес является физическим шестнадцатеричным адресом памяти.
Шаг 3
Преобразуйте шестнадцатеричный 20-битный физический адрес в двоичный формат, разбив каждую шестнадцатеричную цифру на собственную двоичную форму. В примере «00100» вы разбиваете их на «0000», «0000», «0001», «0000» и «0000», чтобы получить строку «0000 0000 0001 0000 0000» в качестве конечного двоичного адреса памяти.