Что предпочитаете?

суббота, 12 февраля 2011 г.

Сегменты и смещения

У большинства микропроцессоров адрес ячейки памяти представляет собой одно число. А у микропроцессора 8088 адрес каждой ячейки памяти задается двумя числами: номером блока и смещением. Такой странный метод адресации обусловлен тем, что команды программы для микропроцессора 8088 и ее данные должны располагаться в разных частях памяти, другими словами, в разных сегментах. Если, например, Вам требуется адресоваться к ячейке с данными, то микропроцессору 8088 понадобится адрес блока памяти, с которого начинается сегмент данных (из регистра сегмента данных), и позиция желаемой ячейки в этом сегменте (ее смещение). Вспомните, как ищут в городе чей-нибудь дом: сначала находят улицу (считайте ее сегментом), а затем дом с нужным номером (смещением) на этой улице. К счастью Вам достаточно задавать только смещение, а номер блока микропроцессор  выберет сам.

4 комментария:

  1. Ассемблер должен знать каждый уважающий себя программист, а вот на чем писать он должен выбирать исходя из потребностей проекта я считаю.

    ОтветитьУдалить
  2. Согласен, использовать ассемблер рационально во вставках.

    ОтветитьУдалить
  3. Познавательно. Когда-то интересовался языками п-я, буду почитывать.

    ОтветитьУдалить