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