Практикум для изучения дисциплины «Основы программирования»



Pdf көрінісі
бет69/81
Дата08.07.2020
өлшемі1,55 Mb.
#74978
түріПрактикум
1   ...   65   66   67   68   69   70   71   72   ...   81
Байланысты:
А.А. Тюгашев
А.А. Тюгашев, А.А. Тюгашев, А.А. Тюгашев
ЗАМЕЧАНИЕ 
Определяя  набор  макросов,  вы,  по  сути,  создаете  некий  новый  язык.  Если 
макросов много и они достаточно мощные, иногда можно не узнать исходный 
язык. 
Рассмотрим некоторые примеры макросов (всю мощь данного механизма 
настоящая  глава  не  передает,  она  представляет  собой,  как  и  другие 
разделы 
книги, 
лишь 
введение 
в 
предметную 
область. 
Заинтересовавшегося читателя отсылаем к литературе, например [13].). 
; определение макроса с параметрами X и Y для суммирования 
SUM 
MACRO X,Y; X=X+Y 
 
MOV 
AX,Y 
 
ADD 
X,AX 
 
ENDM 
 
; пример использования макроподстановки в программе 
 
SUM  
A,B ; A и B — фактические параметры 
Макросы могут содержать не только команды, но и директивы ассемблера, 
например: 
MAS 
MACRO X,N ; описание массива X из N байт 
X  DB N DUP (?) 
 
ENDM 
На  основе    вышеприведенного  макроса  мы  можем  определить  макрос 
MAS2
 
для описания сразу двух массивов этого же размера: 
MAS2  MACRO X1,X2,K 
 
MAS 
 X1, 
 
MAS 
 X2, 
ENDM 
 

обращение к макросу 
 
MAS2   A,B,20 


141 
 
Во  втором  макросе  угловые  скобки  для  параметра  используются  для 
однократного  использования  при  макрорасширении.  Интересно,  что  в 
современных  макроассемблерах  разрешены  определение  макросов  через 
уже существующие макросы и даже рекурсивные макроопределения. 
В  завершение  данного  раздела  отметим,  что  помимо  ассемблера, 
выполняющего  функции  трансляции  исходного  текста  программы  в 
машинный  код,  при  создании  и  эксплуатации  низкоуровневых  программ 
широко  применяются  и  другие  системные  программы.  Среди  них 
дизассемблер —  программа,  позволяющая  по  машинному  коду  строить 
текст  на  ассемблере,  что  становится  возможным  из-за  наличия  прямого 
соответствия  между  мнемоникой  ассемблера  и  машинной  командой 
(изоморфизма).  Важнейшим  инструментом  является  отладчик — 
программа, позволяющая «на лету» переводить строку ассемблера в код и 
наоборот,  иными  словами —  просматривать  и  менять  содержимое 
программной  памяти,  используя  не  двоичные  коды,  а  мнемоники 
ассемблера.  Вдобавок  к  этому  она  выполняет  множество  полезных 
функций  по  запуску,  останову,  дампу  памяти  и  пр.  Кросс-ассемблер — 
ассемблер,  применяемый  на  инструментальной  ЭВМ, —  обычно 
универсального назначения, но строящий машинный код не для нее, а для 
другого  процессора,  часто  встраиваемого.  Эмуляторы —  программы, 
позволяющие запускать программы низкого уровня на языках ассемблера 
и  в  машинных  кодах  одного  процессора  на  другой  ЭВМ.  Часто 
применяются вместе с кроссассемблерами. 
Контрольные вопросы 
1. 
Каковы возможные варианты примения макросов в ваших программах? 
2. 
Что такое кросс-система? Эмулятор? Зачем они используются? 
3. 
В чем сходства и различия дизассемблера и отладчика? 
4. 
Допускается ли вложение одних макроопределений в другие? 
5. 
Можно ли использовать директивы ассемблера в макроопределениях? 
6. 
Зачем  нужны  параметры  в  макросах?  В  каких  случаях  параметры 
макросов записываются в угловых скобках? 
7. 
В чем разница между макрорасширением и макроопределением? 


142 
 
Введение в объектно-ориентированное 
программирование на примере С++ 
В  настоящее  время  объектно-ориентированный  подход  занимает  в 
программировании  особое  место.  Наиболее  современные  и  активно 
используемые  в  индустрии  информационных  технологий  языки —  С++, 
C#, Java — 
являются  объектно-ориентированными.  В  мире  ежегодно 
проводятся  сотни  специализированных  конференций,  посвященных 
объектно-ориентированному  программированию  (ООП).  Средства  ООП 
добавляются не только в императивные языки (так из Си получились С++ 
и  Objective  C),  но  и,  например,  в  функциональные  (Лисп —  CLOS, 
Common  Lisp  Object  System).  Провозглашается,  что  объектно-
ориентированный 
подход 
позволяет 
создавать 
более 
легко 
сопровождаемые  и  модифицируемые  сложные  программные  системы. 
Некоторые  аналитики  даже  относят  объектно-ориентированные  языки  к 
выделенному поколению языков программирования — поколению «3,5». 
Данная  глава  посвящена  введению  в  объектно-ориентированное 
программирование на примере языка С++. 
Прежде  всего  заметим,  что  объектно-ориентированный  подход  может 
применяться  не  только  в  программировании —  да  и  пришел  он  в 
программирование, так сказать, со стороны. Если смотреть на мир сквозь 
призму объектно-ориентированного подхода, все в нем мы воспринимаем 
как  объекты.  Объектами  будут  стул,  стол,  кран  и т. п.  К  различным 
объектам применимы различные действия. 


Достарыңызбен бөлісу:
1   ...   65   66   67   68   69   70   71   72   ...   81




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет