3.ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ АССЕМБЛЕРА
В настоящем пособии рассматривается базовый ассемблер MASM версии 5.10 фирмы Microsoft [7], а также режим MASM турбоассемблера TASM версии 3.2 фирмы Borland [8].
Ассемблер является основным языком программирования для МПС, так как обеспечивает максимальную эффективность создаваемых программ с точки зрения их быстродействия и объема.
Ассемблер этомашинно-ориентированный язык, позволяющий использовать все ресурсы системы. Однако, для успешного программирования на нем необходимо четко представлять аппаратные средства используемой микроЭВМ, то есть ту материальную среду, в которой протекает процесс решения задачи. Так как задача решается программными средствами, то в эту среду входят только программно доступные элементы аппаратных средств, тоесть элементы, доступные с помощью системы команд.
Совокупность программно доступных элементов системы называется ее архитектурой. Архитектура микроЭВМ включает в себя архитектуры микропроцессора, памяти и интерфейса.
3.1. Архитектура микропроцессоров K1810ВМ86/K1810ВМ88
Архитектура МП ВМ86/ВМ88 приведена на рис.3.1. Она включает в свой состав 14 программно доступных регистров. Все ониделятся на две группы:
1) регистры общего назначения (РОН);
2) сегментные регистры.
В свою очередь РОН делятся на регистры данных и регистрыуказатели адреса. Отличительной особенностью регистров данных является возможность их использования как в виде полных 16-битных регистров AX, BX, CX, DX, так и в виде частичных 8-битных регистров AH, AL, BH, BL, CH, CL, DH, DL. Это обеспечивает возможность эффективнойобработки как однобайтных, так и двухбайтных данных. Регистры данных предназначены для хранения данных, и они единообразно участвуют во всех арифметических и логических операциях.
Регистрыуказатели адреса SP, BP, SI, DI могут использоваться только как полные 16-битные регистры. Они предназначены в основном для хранения адресной информации. Однако, эти регистры могут участвовать и варифметических и логических операциях, что позволяет отнести их к РОН.
Определение регистров данных и регистровуказателей адреса как регистров общего назначения в МП ВМ86/ВМ88 весьма условно. Многие команды рассматривают различные регистры этой группы как специализированные регистры, что обуславливает их функциональную неравнозначность. Основная специализация регистров этой группы указана на рис.3.1, а полныесведения о ней в табл. 3.1.
Рис. 3.1. Архитектура МП ВМ86/ВМ88
Специализация внутренних регистров МП требует, чтобы программист или компилятор языка высокого уровня внимательно распределял и тщательно следил за использованием конкретных регистров. Однако, это дает возможность их неявного использования соответствующими командами, что позволяет получить более короткий машинный код, чем в случаеидеальных РОН.
Сегментные регистры CS, DS, ES, SS служат для поддержки ранее рассмотренного механизма сегментации памяти (см. подраздел 2.2.3) и каждый из них обеспечивает хранение базового (начального) адреса segment соответствующего сегмента.
Таблица 3.1
Специализация РОН
Регистр Специализированные функции
AX Умножение, деление, вводвывод слов
AH Умножение и деление байт
AL Умножение, деление,вводвывод байт, десятичная арифметика, табличное преобразование байта
BX Базовый регистр адреса данных, табличное преобразование
CX Счетчик циклов в командах управления циклами и обработки цепочек
CL Счетчик циклов в командах сдвигов
DX Умножение и деление слов, косвенный вводвывод
SP Указатель стека
BP Базовый регистр адреса стека
SI Индексный регистр, операции с цепочками (строками)DI Индексный регистр, операции с цепочками (строками)
Указатель команд IP обеспечивает хранение смещения offset очередной команды, подлежащей считыванию из текущего сегмента программного кода.
Регистр флагов служит для хранения признаков состояния МП. Все флаги делятся на две группы:
1) арифметические флаги; 2) управляющие флаги.
Арифметические флаги...
В настоящем пособии рассматривается базовый ассемблер MASM версии 5.10 фирмы Microsoft [7], а также режим MASM турбоассемблера TASM версии 3.2 фирмы Borland [8].
Ассемблер является основным языком программирования для МПС, так как обеспечивает максимальную эффективность создаваемых программ с точки зрения их быстродействия и объема.
Ассемблер этомашинно-ориентированный язык, позволяющий использовать все ресурсы системы. Однако, для успешного программирования на нем необходимо четко представлять аппаратные средства используемой микроЭВМ, то есть ту материальную среду, в которой протекает процесс решения задачи. Так как задача решается программными средствами, то в эту среду входят только программно доступные элементы аппаратных средств, тоесть элементы, доступные с помощью системы команд.
Совокупность программно доступных элементов системы называется ее архитектурой. Архитектура микроЭВМ включает в себя архитектуры микропроцессора, памяти и интерфейса.
3.1. Архитектура микропроцессоров K1810ВМ86/K1810ВМ88
Архитектура МП ВМ86/ВМ88 приведена на рис.3.1. Она включает в свой состав 14 программно доступных регистров. Все ониделятся на две группы:
1) регистры общего назначения (РОН);
2) сегментные регистры.
В свою очередь РОН делятся на регистры данных и регистрыуказатели адреса. Отличительной особенностью регистров данных является возможность их использования как в виде полных 16-битных регистров AX, BX, CX, DX, так и в виде частичных 8-битных регистров AH, AL, BH, BL, CH, CL, DH, DL. Это обеспечивает возможность эффективнойобработки как однобайтных, так и двухбайтных данных. Регистры данных предназначены для хранения данных, и они единообразно участвуют во всех арифметических и логических операциях.
Регистрыуказатели адреса SP, BP, SI, DI могут использоваться только как полные 16-битные регистры. Они предназначены в основном для хранения адресной информации. Однако, эти регистры могут участвовать и варифметических и логических операциях, что позволяет отнести их к РОН.
Определение регистров данных и регистровуказателей адреса как регистров общего назначения в МП ВМ86/ВМ88 весьма условно. Многие команды рассматривают различные регистры этой группы как специализированные регистры, что обуславливает их функциональную неравнозначность. Основная специализация регистров этой группы указана на рис.3.1, а полныесведения о ней в табл. 3.1.
Рис. 3.1. Архитектура МП ВМ86/ВМ88
Специализация внутренних регистров МП требует, чтобы программист или компилятор языка высокого уровня внимательно распределял и тщательно следил за использованием конкретных регистров. Однако, это дает возможность их неявного использования соответствующими командами, что позволяет получить более короткий машинный код, чем в случаеидеальных РОН.
Сегментные регистры CS, DS, ES, SS служат для поддержки ранее рассмотренного механизма сегментации памяти (см. подраздел 2.2.3) и каждый из них обеспечивает хранение базового (начального) адреса segment соответствующего сегмента.
Таблица 3.1
Специализация РОН
Регистр Специализированные функции
AX Умножение, деление, вводвывод слов
AH Умножение и деление байт
AL Умножение, деление,вводвывод байт, десятичная арифметика, табличное преобразование байта
BX Базовый регистр адреса данных, табличное преобразование
CX Счетчик циклов в командах управления циклами и обработки цепочек
CL Счетчик циклов в командах сдвигов
DX Умножение и деление слов, косвенный вводвывод
SP Указатель стека
BP Базовый регистр адреса стека
SI Индексный регистр, операции с цепочками (строками)DI Индексный регистр, операции с цепочками (строками)
Указатель команд IP обеспечивает хранение смещения offset очередной команды, подлежащей считыванию из текущего сегмента программного кода.
Регистр флагов служит для хранения признаков состояния МП. Все флаги делятся на две группы:
1) арифметические флаги; 2) управляющие флаги.
Арифметические флаги...
Поделиться рефератом
Расскажи своим однокурсникам об этом материале и вообще о СкачатьРеферат