Ассемблер - физический адрес адрес сегмента = x16 + адрес смещения точки 2.2 Обнаружение

Во-первых, почему физический адрес адрес сегмента = x16 + адрес смещения?

 

  PS: В первые часы, я не понимаю, почему это глупо N-й степени, мы обратимся к физической, как цифровой, цифровой компьютер рядом 0 или 1 свободный, и каждый из них является либо 0 либо 1, только эти два случая, она может быть составлена ​​из числа N-битного N-й степени 2-адреса в

  8086CPU шина адреса 20 (биты) , и , следовательно , может быть от 104 до 8576 (1M) блок памяти адрес, а регистры и шины данных 16-бит , 16-бит , соответствующий 6 5536 (64K), так что отходы все виды пространства памяти, ах, предполагается? Таким образом , умные люди имели целый адрес сумматор, адрес сумматор делать ручной труд является 16-битным адресом сегмента на 16, почему это должно было быть 16? Я позволю вам сделать вещи: вы поставите число 68 осталось один, сколько вы говорите мне 680, да, вы поднимете 68 нулей за фактически умноженные на 10, я позволю тебе поставить шестигранные 38H левый один раз , как вы все еще можете сделать это позже , составляют 0 является 380H, но он все еще умножается на 10Н и 10Н здесь соответствуют 16,1 десятичный шестнадцатеричный соответствует четырем двоичным, адрес сегмента умножается на десятичное 16, что эквивалентно задней части 16-битного двоичного числа дополняют 4 0, ничего себе это не для того чтобы составить 20, что позволяет избежать отходов памяти, умноженное на 16 , чтобы получить полный первый адрес (начальный адрес / основание адрес), первый адрес в качестве начального адреса плюс двоичный 16-битный адрес смещения, адрес смещения компенсируется 0H ~ FFFFh (так как максимум 16-битный двоичный номер FFFFH), так что максимальный размер сегмента составляет 64K ( FFFFH), мы можем позже получить доступ к области памяти на память требует логической сегментации , основанной на.

Во-вторых, адрес сегмента является кратным 16 x16

Взгляд на название это не фуфло вас. , , Ван Шуан, пока не появится учитель «язык ассемблера» пункт 2.2 обнаружения, углубил понимание этого предложения

Мы делаем минимальное количество, в соответствии с формулой это легко думать, когда максимальное смещение адреса времени FFFFH адрес SA, безусловно, самый маленький ах

①SAx16 + FFFFH = 20000h

②SAx16 = 20000h-FFFFH = 10001H

③SA = 10001H / 16 (10H) = 1000H

Это слишком просто, правда, взгляните на Baidu правильный ответ, ответ уе Нани 1001H, а где ах? Я ошибаюсь? ? ? Забудьте хорошие времена 1000H, ах, редактора?

  Отметим SAx16 = FFFFH = 20000H- 10001H , мы смотрим на кратное Разделом II, 10001H = 65537 явно не 16, а, то мы будем заменить перед использованием FFFF FFFF-1, FFFF-2, FFFF-3. .. пока тест не был FFFF-F = 16 раз , а когда правильный ответ FFF0h подходит. Однако, делая так устал ах, один на один тест, так быстро подход наоборот: я хочу , чтобы убедиться , что первый адрес кратен 16, с точки зрения шестиугольника является обеспечить, чтобы конец был 0,

Поэтому 20000h -? = 0 представляет собой число конца, со спинкой, по-видимому ФФФ может быть получен с 0, соответствующим 0 в конце конца вычитания 20000h является число 0.

  Краткое описание: Память в некоторых ячейках памяти не может как сегмент первого адреса (адрес сегмент x16), как кратное некоторые из физического адреса не 16 (10H), но адрес сегмента может быть любым адрес , поскольку она умножается на 16, независимо от того , что адрес , сколько может быть я здесь отметить , что адрес сегмента не является адрес в памяти, так как адрес сегмента представляет собой 16-битный физический адрес памяти 20, сказал ранее первый адрес (по смещению 0 в) можно рассматривать в качестве средней памяти начальный физический адрес, это не означает , что блок памяти не может быть сделано меньше , чем первый адрес доступа, так как физический адрес ячейки памяти могут иметь разнообразные композиции в соответствии с адресом и сегмента смещения адреса для доступа к нему.

Если не так, пожалуйста, поправьте меня комментарий, спасибо!

рекомендация

отwww.cnblogs.com/yxddj/p/11802249.html