Мой вопрос связан с сегментацией памяти в 8086 году. Я узнал, что
8086 имеет 20-битную адресную шину. И поэтому он может адресовать 2 ^ 20 разных адресов. Это означает, что он имеет объем памяти 2 ^ 20, то есть 1 МБ.
У меня есть несколько сомнений:
Что я понимаю из того факта, что 8086 имеет 20-битную адресную шину, которая может иметь 2 ^ 20 различных комбинаций 0 и 1, каждая из которых представляет один физический адрес. Что я не понимаю, так это то, как 2 ^ 20 разных адресных адресов означают 1 МБ адресуемой памяти? Как общее количество различных адресов адресов связано с размером памяти (в мегабайтах)?
Кроме того, исправьте меня, если я ошибаюсь, 16-битные регистры сегментов в 8086 содержат начальный адрес из различных сегментов в памяти (код, стек, данные, дополнительные). Мой вопрос, не адреса в памяти 20 бит? Тогда как 16-битный регистр может содержать 20-битные адреса? Если он содержит верхний 16-битный 20-битный адрес, как процессор определяет, на какое точное местоположение адреса он должен указывать?
PS: я новичок это микропроцессоры и полностью зависит от самообучения, поэтому прошу прощения, если мои вопросы кажутся немного глупыми.
Заранее спасибо.