🗊Презентация Лекции по программированию на ассемблере

Нажмите для полного просмотра!
Лекции по программированию на ассемблере, слайд №1Лекции по программированию на ассемблере, слайд №2Лекции по программированию на ассемблере, слайд №3Лекции по программированию на ассемблере, слайд №4Лекции по программированию на ассемблере, слайд №5Лекции по программированию на ассемблере, слайд №6Лекции по программированию на ассемблере, слайд №7Лекции по программированию на ассемблере, слайд №8Лекции по программированию на ассемблере, слайд №9Лекции по программированию на ассемблере, слайд №10Лекции по программированию на ассемблере, слайд №11Лекции по программированию на ассемблере, слайд №12Лекции по программированию на ассемблере, слайд №13Лекции по программированию на ассемблере, слайд №14Лекции по программированию на ассемблере, слайд №15Лекции по программированию на ассемблере, слайд №16Лекции по программированию на ассемблере, слайд №17Лекции по программированию на ассемблере, слайд №18Лекции по программированию на ассемблере, слайд №19Лекции по программированию на ассемблере, слайд №20Лекции по программированию на ассемблере, слайд №21Лекции по программированию на ассемблере, слайд №22Лекции по программированию на ассемблере, слайд №23Лекции по программированию на ассемблере, слайд №24Лекции по программированию на ассемблере, слайд №25Лекции по программированию на ассемблере, слайд №26Лекции по программированию на ассемблере, слайд №27Лекции по программированию на ассемблере, слайд №28Лекции по программированию на ассемблере, слайд №29Лекции по программированию на ассемблере, слайд №30Лекции по программированию на ассемблере, слайд №31Лекции по программированию на ассемблере, слайд №32Лекции по программированию на ассемблере, слайд №33Лекции по программированию на ассемблере, слайд №34Лекции по программированию на ассемблере, слайд №35Лекции по программированию на ассемблере, слайд №36Лекции по программированию на ассемблере, слайд №37Лекции по программированию на ассемблере, слайд №38Лекции по программированию на ассемблере, слайд №39Лекции по программированию на ассемблере, слайд №40Лекции по программированию на ассемблере, слайд №41Лекции по программированию на ассемблере, слайд №42Лекции по программированию на ассемблере, слайд №43Лекции по программированию на ассемблере, слайд №44Лекции по программированию на ассемблере, слайд №45Лекции по программированию на ассемблере, слайд №46Лекции по программированию на ассемблере, слайд №47Лекции по программированию на ассемблере, слайд №48Лекции по программированию на ассемблере, слайд №49Лекции по программированию на ассемблере, слайд №50Лекции по программированию на ассемблере, слайд №51Лекции по программированию на ассемблере, слайд №52Лекции по программированию на ассемблере, слайд №53Лекции по программированию на ассемблере, слайд №54Лекции по программированию на ассемблере, слайд №55Лекции по программированию на ассемблере, слайд №56Лекции по программированию на ассемблере, слайд №57Лекции по программированию на ассемблере, слайд №58Лекции по программированию на ассемблере, слайд №59Лекции по программированию на ассемблере, слайд №60Лекции по программированию на ассемблере, слайд №61Лекции по программированию на ассемблере, слайд №62Лекции по программированию на ассемблере, слайд №63Лекции по программированию на ассемблере, слайд №64Лекции по программированию на ассемблере, слайд №65Лекции по программированию на ассемблере, слайд №66Лекции по программированию на ассемблере, слайд №67Лекции по программированию на ассемблере, слайд №68Лекции по программированию на ассемблере, слайд №69Лекции по программированию на ассемблере, слайд №70Лекции по программированию на ассемблере, слайд №71Лекции по программированию на ассемблере, слайд №72Лекции по программированию на ассемблере, слайд №73Лекции по программированию на ассемблере, слайд №74Лекции по программированию на ассемблере, слайд №75Лекции по программированию на ассемблере, слайд №76Лекции по программированию на ассемблере, слайд №77Лекции по программированию на ассемблере, слайд №78Лекции по программированию на ассемблере, слайд №79Лекции по программированию на ассемблере, слайд №80Лекции по программированию на ассемблере, слайд №81Лекции по программированию на ассемблере, слайд №82Лекции по программированию на ассемблере, слайд №83Лекции по программированию на ассемблере, слайд №84Лекции по программированию на ассемблере, слайд №85Лекции по программированию на ассемблере, слайд №86Лекции по программированию на ассемблере, слайд №87Лекции по программированию на ассемблере, слайд №88Лекции по программированию на ассемблере, слайд №89Лекции по программированию на ассемблере, слайд №90Лекции по программированию на ассемблере, слайд №91Лекции по программированию на ассемблере, слайд №92Лекции по программированию на ассемблере, слайд №93Лекции по программированию на ассемблере, слайд №94Лекции по программированию на ассемблере, слайд №95Лекции по программированию на ассемблере, слайд №96Лекции по программированию на ассемблере, слайд №97Лекции по программированию на ассемблере, слайд №98Лекции по программированию на ассемблере, слайд №99Лекции по программированию на ассемблере, слайд №100Лекции по программированию на ассемблере, слайд №101Лекции по программированию на ассемблере, слайд №102Лекции по программированию на ассемблере, слайд №103Лекции по программированию на ассемблере, слайд №104Лекции по программированию на ассемблере, слайд №105Лекции по программированию на ассемблере, слайд №106Лекции по программированию на ассемблере, слайд №107Лекции по программированию на ассемблере, слайд №108Лекции по программированию на ассемблере, слайд №109Лекции по программированию на ассемблере, слайд №110Лекции по программированию на ассемблере, слайд №111Лекции по программированию на ассемблере, слайд №112Лекции по программированию на ассемблере, слайд №113Лекции по программированию на ассемблере, слайд №114Лекции по программированию на ассемблере, слайд №115Лекции по программированию на ассемблере, слайд №116Лекции по программированию на ассемблере, слайд №117Лекции по программированию на ассемблере, слайд №118Лекции по программированию на ассемблере, слайд №119Лекции по программированию на ассемблере, слайд №120Лекции по программированию на ассемблере, слайд №121Лекции по программированию на ассемблере, слайд №122Лекции по программированию на ассемблере, слайд №123Лекции по программированию на ассемблере, слайд №124Лекции по программированию на ассемблере, слайд №125Лекции по программированию на ассемблере, слайд №126Лекции по программированию на ассемблере, слайд №127Лекции по программированию на ассемблере, слайд №128Лекции по программированию на ассемблере, слайд №129Лекции по программированию на ассемблере, слайд №130Лекции по программированию на ассемблере, слайд №131Лекции по программированию на ассемблере, слайд №132Лекции по программированию на ассемблере, слайд №133Лекции по программированию на ассемблере, слайд №134Лекции по программированию на ассемблере, слайд №135Лекции по программированию на ассемблере, слайд №136Лекции по программированию на ассемблере, слайд №137Лекции по программированию на ассемблере, слайд №138Лекции по программированию на ассемблере, слайд №139Лекции по программированию на ассемблере, слайд №140Лекции по программированию на ассемблере, слайд №141Лекции по программированию на ассемблере, слайд №142Лекции по программированию на ассемблере, слайд №143Лекции по программированию на ассемблере, слайд №144Лекции по программированию на ассемблере, слайд №145Лекции по программированию на ассемблере, слайд №146Лекции по программированию на ассемблере, слайд №147Лекции по программированию на ассемблере, слайд №148Лекции по программированию на ассемблере, слайд №149Лекции по программированию на ассемблере, слайд №150Лекции по программированию на ассемблере, слайд №151Лекции по программированию на ассемблере, слайд №152Лекции по программированию на ассемблере, слайд №153Лекции по программированию на ассемблере, слайд №154Лекции по программированию на ассемблере, слайд №155Лекции по программированию на ассемблере, слайд №156Лекции по программированию на ассемблере, слайд №157Лекции по программированию на ассемблере, слайд №158Лекции по программированию на ассемблере, слайд №159Лекции по программированию на ассемблере, слайд №160Лекции по программированию на ассемблере, слайд №161Лекции по программированию на ассемблере, слайд №162Лекции по программированию на ассемблере, слайд №163Лекции по программированию на ассемблере, слайд №164Лекции по программированию на ассемблере, слайд №165Лекции по программированию на ассемблере, слайд №166Лекции по программированию на ассемблере, слайд №167Лекции по программированию на ассемблере, слайд №168Лекции по программированию на ассемблере, слайд №169Лекции по программированию на ассемблере, слайд №170Лекции по программированию на ассемблере, слайд №171Лекции по программированию на ассемблере, слайд №172Лекции по программированию на ассемблере, слайд №173Лекции по программированию на ассемблере, слайд №174Лекции по программированию на ассемблере, слайд №175Лекции по программированию на ассемблере, слайд №176Лекции по программированию на ассемблере, слайд №177Лекции по программированию на ассемблере, слайд №178Лекции по программированию на ассемблере, слайд №179Лекции по программированию на ассемблере, слайд №180Лекции по программированию на ассемблере, слайд №181Лекции по программированию на ассемблере, слайд №182Лекции по программированию на ассемблере, слайд №183Лекции по программированию на ассемблере, слайд №184Лекции по программированию на ассемблере, слайд №185Лекции по программированию на ассемблере, слайд №186Лекции по программированию на ассемблере, слайд №187Лекции по программированию на ассемблере, слайд №188Лекции по программированию на ассемблере, слайд №189Лекции по программированию на ассемблере, слайд №190Лекции по программированию на ассемблере, слайд №191Лекции по программированию на ассемблере, слайд №192Лекции по программированию на ассемблере, слайд №193Лекции по программированию на ассемблере, слайд №194Лекции по программированию на ассемблере, слайд №195Лекции по программированию на ассемблере, слайд №196Лекции по программированию на ассемблере, слайд №197Лекции по программированию на ассемблере, слайд №198Лекции по программированию на ассемблере, слайд №199Лекции по программированию на ассемблере, слайд №200Лекции по программированию на ассемблере, слайд №201Лекции по программированию на ассемблере, слайд №202Лекции по программированию на ассемблере, слайд №203

Содержание

Вы можете ознакомиться и скачать презентацию на тему Лекции по программированию на ассемблере. Доклад-сообщение содержит 203 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1






Введение.
Классификация языков программирования.
 Машинный язык и язык ассемблера.
Структурная схема компьютера.
Описание слайда:
Введение. Классификация языков программирования. Машинный язык и язык ассемблера. Структурная схема компьютера.

Слайд 2





Тищенко В.И. Учебное пособие по курсу «Системное программирование»;
Тищенко В.И. Учебное пособие по курсу «Системное программирование»;
Тищенко В.И. Лабораторный практикум по курсу «Системное программирование»;
Тищенко В.И. Лабораторный практикум «Разработка оверлейных и резидентных программ»;
Юров В. Ассемблер – учебник;
Юров В. Ассемблер – практикум.
Описание слайда:
Тищенко В.И. Учебное пособие по курсу «Системное программирование»; Тищенко В.И. Учебное пособие по курсу «Системное программирование»; Тищенко В.И. Лабораторный практикум по курсу «Системное программирование»; Тищенко В.И. Лабораторный практикум «Разработка оверлейных и резидентных программ»; Юров В. Ассемблер – учебник; Юров В. Ассемблер – практикум.

Слайд 3





Классификация языков программирования
Описание слайда:
Классификация языков программирования

Слайд 4





Машинный язык программирования – это язык, непосредственно воспринимаемый компьютером.
Машинный язык программирования – это язык, непосредственно воспринимаемый компьютером.
Каждая его команда интерпретируется аппаратурой ЭВМ.
Машинная команда имеет структуру вида:
код операции, операнд1, операнд2
Операнды - это данные или адреса, над которыми будет выполняться действие, определенное кодом операции.
Структура данных в оперативной памяти называется форматим данных.
Описание слайда:
Машинный язык программирования – это язык, непосредственно воспринимаемый компьютером. Машинный язык программирования – это язык, непосредственно воспринимаемый компьютером. Каждая его команда интерпретируется аппаратурой ЭВМ. Машинная команда имеет структуру вида: код операции, операнд1, операнд2 Операнды - это данные или адреса, над которыми будет выполняться действие, определенное кодом операции. Структура данных в оперативной памяти называется форматим данных.

Слайд 5





Языки ассемблерного типа используют мнемоническое обозначение адресов и кодов операций.
Языки ассемблерного типа используют мнемоническое обозначение адресов и кодов операций.
Ассемблер включает в себя:
машинные команды,
символические адреса,
макросы,
комментарии.
Описание слайда:
Языки ассемблерного типа используют мнемоническое обозначение адресов и кодов операций. Языки ассемблерного типа используют мнемоническое обозначение адресов и кодов операций. Ассемблер включает в себя: машинные команды, символические адреса, макросы, комментарии.

Слайд 6





Выделим 5 основных поколений:
Выделим 5 основных поколений:
(конец 50-х г.) – Fortran, Algol;
(середина 60-х г.) - Cobol, Lisp;
(70-е годы) - PL/1, Pascal;
(80-е годы) - Object Pascal, C++, Ada;
(90-е годы) - Visual Basic, Delphi, Builder.
Описание слайда:
Выделим 5 основных поколений: Выделим 5 основных поколений: (конец 50-х г.) – Fortran, Algol; (середина 60-х г.) - Cobol, Lisp; (70-е годы) - PL/1, Pascal; (80-е годы) - Object Pascal, C++, Ada; (90-е годы) - Visual Basic, Delphi, Builder.

Слайд 7





с развитием аппаратных средств появились:
 функции ввода-вывода,
поддержка файловой системы,
 взаимодействие с операционной системой;
с развитием аппаратных средств появились:
 функции ввода-вывода,
поддержка файловой системы,
 взаимодействие с операционной системой;
с усложнением задач:
    поддержка подпрограмм,
 механизм передачи параметров (основа для методологии структурного программирования);
Описание слайда:
с развитием аппаратных средств появились: функции ввода-вывода, поддержка файловой системы, взаимодействие с операционной системой; с развитием аппаратных средств появились: функции ввода-вывода, поддержка файловой системы, взаимодействие с операционной системой; с усложнением задач: поддержка подпрограмм, механизм передачи параметров (основа для методологии структурного программирования);

Слайд 8





возможность создания больших программ на основе подпрограмм изменили архитектуру языков и подход к компоновке программ (механизм раздельной трансляции программ и понятие модульности);
возможность создания больших программ на основе подпрограмм изменили архитектуру языков и подход к компоновке программ (механизм раздельной трансляции программ и понятие модульности);
абстракция данных, типизация и модульность – основа технологии объектно-ориентированного программирования;
появление среды Windows породило технологию визуального программирования.
Описание слайда:
возможность создания больших программ на основе подпрограмм изменили архитектуру языков и подход к компоновке программ (механизм раздельной трансляции программ и понятие модульности); возможность создания больших программ на основе подпрограмм изменили архитектуру языков и подход к компоновке программ (механизм раздельной трансляции программ и понятие модульности); абстракция данных, типизация и модульность – основа технологии объектно-ориентированного программирования; появление среды Windows породило технологию визуального программирования.

Слайд 9





Архитектура ЭВМ – это абстрактное представление ЭВМ, которое отражает ее структурную, схемотехническую и логическую организации.
Архитектура ЭВМ – это абстрактное представление ЭВМ, которое отражает ее структурную, схемотехническую и логическую организации.
Описание слайда:
Архитектура ЭВМ – это абстрактное представление ЭВМ, которое отражает ее структурную, схемотехническую и логическую организации. Архитектура ЭВМ – это абстрактное представление ЭВМ, которое отражает ее структурную, схемотехническую и логическую организации.

Слайд 10


Лекции по программированию на ассемблере, слайд №10
Описание слайда:

Слайд 11


Лекции по программированию на ассемблере, слайд №11
Описание слайда:

Слайд 12






Классификация регистров.
Назначение регистров.
Адресация памяти.
Физическая адресация памяти.
Описание слайда:
Классификация регистров. Назначение регистров. Адресация памяти. Физическая адресация памяти.

Слайд 13





Электронное устройство, предназначенное для временного хранения информации, называется регистром.
Электронное устройство, предназначенное для временного хранения информации, называется регистром.
Расположены на кристалле МП. Характеризуются размером:
8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные.
Описание слайда:
Электронное устройство, предназначенное для временного хранения информации, называется регистром. Электронное устройство, предназначенное для временного хранения информации, называется регистром. Расположены на кристалле МП. Характеризуются размером: 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные.

Слайд 14


Лекции по программированию на ассемблере, слайд №14
Описание слайда:

Слайд 15


Лекции по программированию на ассемблере, слайд №15
Описание слайда:

Слайд 16





sp – указатель стека;
sp – указатель стека;
bp – указатель базы;
si – индекс источника;
di -индекс результата.
Адрес памяти задается двумя значениями – сегмент  и смещение, например :
ds:dx, es:bx, ss:sp, ss:bp. 
Текущая исполняемая команда определяется cs:ip.
Описание слайда:
sp – указатель стека; sp – указатель стека; bp – указатель базы; si – индекс источника; di -индекс результата. Адрес памяти задается двумя значениями – сегмент и смещение, например : ds:dx, es:bx, ss:sp, ss:bp. Текущая исполняемая команда определяется cs:ip.

Слайд 17





ip – указатель команд,
ip – указатель команд,
регистр флагов.
Указатель команд -  содержит смещение следующей команды в кодовом сегменте.
Описание слайда:
ip – указатель команд, ip – указатель команд, регистр флагов. Указатель команд - содержит смещение следующей команды в кодовом сегменте.

Слайд 18





16 – системных;
16 – системных;
 16 – пользовательских:
8 РОН, индексных  и указателей по 32 разряда
eax/ax/ah/al, ebx/bx/bh/bl,
 edx/dx/dh/dl, ecx/cx/ch/cl, …….. 
6 сегментных по 16 разрядов:
 cs, ds, ss, es, fs, gs;
2 регистра состояния и управления по 32 разряда: eip/ip и eflags/ flags.
Описание слайда:
16 – системных; 16 – системных; 16 – пользовательских: 8 РОН, индексных и указателей по 32 разряда eax/ax/ah/al, ebx/bx/bh/bl, edx/dx/dh/dl, ecx/cx/ch/cl, …….. 6 сегментных по 16 разрядов: cs, ds, ss, es, fs, gs; 2 регистра состояния и управления по 32 разряда: eip/ip и eflags/ flags.

Слайд 19


Лекции по программированию на ассемблере, слайд №19
Описание слайда:

Слайд 20





  16                32              20                 24
  16                32              20                 24
2    =64 кб,  2     = 4Гб, 2      = 1Мб, 2      = 16 Мб.
Для МП intel 8088 размер машинного слова –
 16 бит или 2 байта, шина имела 20 линий,
 поэтому адрес 20- разрядный.
Описание слайда:
16 32 20 24 16 32 20 24 2 =64 кб, 2 = 4Гб, 2 = 1Мб, 2 = 16 Мб. Для МП intel 8088 размер машинного слова – 16 бит или 2 байта, шина имела 20 линий, поэтому адрес 20- разрядный.

Слайд 21





Адрес, выдаваемый на шину адреса, называется физическим.
Адрес, выдаваемый на шину адреса, называется физическим.

Физический адрес = (сегментный адрес)*16 + смещение
или
Физический адрес = (сегментный адрес)*10h + смещение.
Описание слайда:
Адрес, выдаваемый на шину адреса, называется физическим. Адрес, выдаваемый на шину адреса, называется физическим. Физический адрес = (сегментный адрес)*16 + смещение или Физический адрес = (сегментный адрес)*10h + смещение.

Слайд 22





Пусть содержимое сегментного регистра равно 2011h, смещение равно 15h,
Пусть содержимое сегментного регистра равно 2011h, смещение равно 15h,
тогда ФА=20110h+15h= 20125h
Описание слайда:
Пусть содержимое сегментного регистра равно 2011h, смещение равно 15h, Пусть содержимое сегментного регистра равно 2011h, смещение равно 15h, тогда ФА=20110h+15h= 20125h

Слайд 23





Младший байт записывается в ячейку с меньшим адресом, старший – в ячейку с адресом на 1 больше.
Младший байт записывается в ячейку с меньшим адресом, старший – в ячейку с адресом на 1 больше.
Пример:
пусть число 1234h размещено с адреса 1927:0000, т.е. занимает ф.а. 19270h и 19271h.
Тогда цифры 34h – по адресу 19270h,
                    а 12h – по адресу 19271h.
Описание слайда:
Младший байт записывается в ячейку с меньшим адресом, старший – в ячейку с адресом на 1 больше. Младший байт записывается в ячейку с меньшим адресом, старший – в ячейку с адресом на 1 больше. Пример: пусть число 1234h размещено с адреса 1927:0000, т.е. занимает ф.а. 19270h и 19271h. Тогда цифры 34h – по адресу 19270h, а 12h – по адресу 19271h.

Слайд 24





АХ – аккумулятор.
АХ – аккумулятор.
ВХ – как вычислительный регистр, но может быть адресным.
CX – счетчик в некоторых командах.
DX – расширитель аккумулятора.
Описание слайда:
АХ – аккумулятор. АХ – аккумулятор. ВХ – как вычислительный регистр, но может быть адресным. CX – счетчик в некоторых командах. DX – расширитель аккумулятора.

Слайд 25





si, di, bp, bx – основное назначение – хранить 16 – разрядное значение при формировании адреса.
si, di, bp, bx – основное назначение – хранить 16 – разрядное значение при формировании адреса.
Описание слайда:
si, di, bp, bx – основное назначение – хранить 16 – разрядное значение при формировании адреса. si, di, bp, bx – основное назначение – хранить 16 – разрядное значение при формировании адреса.

Слайд 26





ip – указатель команд,
ip – указатель команд,
регистр флагов.
Указатель команд -  содержит смещение следующей команды.
Методы изменения порядка выполнения команд:
последовательный порядок команд,
переход внутри сегмента (near – переход),
переход в другой сегмент (far – переход).
Описание слайда:
ip – указатель команд, ip – указатель команд, регистр флагов. Указатель команд - содержит смещение следующей команды. Методы изменения порядка выполнения команд: последовательный порядок команд, переход внутри сегмента (near – переход), переход в другой сегмент (far – переход).

Слайд 27





Определяет смещение текущей вершины стека.
Определяет смещение текущей вершины стека.
Адрес стека определяется как ss:sp или ss:bp.
Пример загрузки сегментных регистров cs в ds:
а) mov ax, cs
    mov ds, ax
в) push cs
    pop ds
Описание слайда:
Определяет смещение текущей вершины стека. Определяет смещение текущей вершины стека. Адрес стека определяется как ss:sp или ss:bp. Пример загрузки сегментных регистров cs в ds: а) mov ax, cs mov ds, ax в) push cs pop ds

Слайд 28






Регистр флагов.
Механизм формирования физического адреса.
Форматы данных. 
Директивы определения данных.
Описание слайда:
Регистр флагов. Механизм формирования физического адреса. Форматы данных. Директивы определения данных.

Слайд 29


Лекции по программированию на ассемблере, слайд №29
Описание слайда:

Слайд 30


Лекции по программированию на ассемблере, слайд №30
Описание слайда:

Слайд 31


Лекции по программированию на ассемблере, слайд №31
Описание слайда:

Слайд 32





Классификация данных по разрядности
Классификация данных по разрядности
Описание слайда:
Классификация данных по разрядности Классификация данных по разрядности

Слайд 33


Лекции по программированию на ассемблере, слайд №33
Описание слайда:

Слайд 34





8 регистров  данных длиной 80 бит.
8 регистров  данных длиной 80 бит.
Оперирует 7 типами данных:
3 типа целых (слово 16 бит, короткое целое 32 бита, длинное целое 64 бита);
3 типа вещественных (короткое 32 бита, длинное 64 бита, временное 80 бит): 
знак,   характеристика,    мантисса
    1 бит   8, 11 или 15 бит     23, 52 или 64 бита;
Упакованные двоично-десятичные числа.
Описание слайда:
8 регистров данных длиной 80 бит. 8 регистров данных длиной 80 бит. Оперирует 7 типами данных: 3 типа целых (слово 16 бит, короткое целое 32 бита, длинное целое 64 бита); 3 типа вещественных (короткое 32 бита, длинное 64 бита, временное 80 бит): знак, характеристика, мантисса 1 бит 8, 11 или 15 бит 23, 52 или 64 бита; Упакованные двоично-десятичные числа.

Слайд 35





Общий вид оператора ассемблера: 
Общий вид оператора ассемблера: 

метка   КОП  операнд_1,операнд_2

Оператором может быть:
машинная команда;
директива транслятора;
макрокоманда;
комментарий.
Описание слайда:
Общий вид оператора ассемблера: Общий вид оператора ассемблера: метка КОП операнд_1,операнд_2 Оператором может быть: машинная команда; директива транслятора; макрокоманда; комментарий.

Слайд 36





			формат директивы:
			формат директивы:
             
	имя    d             выражение
a  dw  10     ; в десятичной системе счисления
b  dw  10h   ; использование шестнадцатеричной 
                     системы счисления
Описание слайда:
формат директивы: формат директивы: имя d выражение a dw 10 ; в десятичной системе счисления b dw 10h ; использование шестнадцатеричной системы счисления

Слайд 37





константой:
 ABC1 dw 1234h
константой:
 ABC1 dw 1234h
списком:
 ABC2 db 1,2,3
строкой:
  ABC3 db ‘stroka’
с операцией дублирования:
 ABC4 db 4 dup (0)
Описание слайда:
константой: ABC1 dw 1234h константой: ABC1 dw 1234h списком: ABC2 db 1,2,3 строкой: ABC3 db ‘stroka’ с операцией дублирования: ABC4 db 4 dup (0)

Слайд 38






Режимы адресации в ассемблере.
Описание слайда:
Режимы адресации в ассемблере.

Слайд 39


Лекции по программированию на ассемблере, слайд №39
Описание слайда:

Слайд 40





1. Регистровая адресация
1. Регистровая адресация
mov ax,bx
mov al,dl
2. Непосредственная адресация
 mov ax,1234h
mov cl,‘a’
mov ah,5
Описание слайда:
1. Регистровая адресация 1. Регистровая адресация mov ax,bx mov al,dl 2. Непосредственная адресация mov ax,1234h mov cl,‘a’ mov ah,5

Слайд 41





.data 
.data 
ABC dw 1234h
.code
mov dx,ABC
Пусть адрес АВС  = ds:0000,
тогда команда под отладчиком выглядит  так:
 mov dx, word ptr [0000] или mov dx, [0000]
Для вычисления адреса операнда по умолчанию используется сегментный регистр ds.
Описание слайда:
.data .data ABC dw 1234h .code mov dx,ABC Пусть адрес АВС = ds:0000, тогда команда под отладчиком выглядит так: mov dx, word ptr [0000] или mov dx, [0000] Для вычисления адреса операнда по умолчанию используется сегментный регистр ds.

Слайд 42





Смещение, которое вычисляется аппаратно для доступа к операнду в памяти, называется исполнительным (эффективным) адресом (EA)
Смещение, которое вычисляется аппаратно для доступа к операнду в памяти, называется исполнительным (эффективным) адресом (EA)
.data 
ABC dw 1234h
.code
……….
mov bx, offset ABC 
mov ax,[bx]
Для вычисления адреса операнда по умолчанию используется сегментный регистр - ds
Описание слайда:
Смещение, которое вычисляется аппаратно для доступа к операнду в памяти, называется исполнительным (эффективным) адресом (EA) Смещение, которое вычисляется аппаратно для доступа к операнду в памяти, называется исполнительным (эффективным) адресом (EA) .data ABC dw 1234h .code ………. mov bx, offset ABC mov ax,[bx] Для вычисления адреса операнда по умолчанию используется сегментный регистр - ds

Слайд 43





Эффективный адрес ЕА вычисляется:
Эффективный адрес ЕА вычисляется:
Размер индексное смещение (сдвига) - 0, 1 или 2 байта.
Пример: обращение к  2-му элементу массива слов
.data
 	ARRAY dw 1,2,3,4,5
 .code
	mov bx,offset ARRAY
	mov ax,[bx]+2
Описание слайда:
Эффективный адрес ЕА вычисляется: Эффективный адрес ЕА вычисляется: Размер индексное смещение (сдвига) - 0, 1 или 2 байта. Пример: обращение к 2-му элементу массива слов .data ARRAY dw 1,2,3,4,5 .code mov bx,offset ARRAY mov ax,[bx]+2

Слайд 44





Эффективный адрес ЕА вычисляется:
Эффективный адрес ЕА вычисляется:



Пример: загрузить 5-й элемент массива байтов в регистр al.
.data
	table db 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
.code
	mov di,0002   или  mov di,2 
	mov al, table[di+2]
Описание слайда:
Эффективный адрес ЕА вычисляется: Эффективный адрес ЕА вычисляется: Пример: загрузить 5-й элемент массива байтов в регистр al. .data table db 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh .code mov di,0002 или mov di,2 mov al, table[di+2]

Слайд 45





Эффективный адрес ЕА вычисляется:
Эффективный адрес ЕА вычисляется:

Пример: задан массив записей, каждая запись состоит из 6 слов. 
Переслать 3-е слово 2-ой записи в регистр ax.
.data
	table dw 1,2,3,4,5,6,7,8,9,10,11,12,……..
.code
	mov si,12    или mov si,2*6
	mov bx,offset table 
	mov ax, [bx+si+4 ]
Описание слайда:
Эффективный адрес ЕА вычисляется: Эффективный адрес ЕА вычисляется: Пример: задан массив записей, каждая запись состоит из 6 слов. Переслать 3-е слово 2-ой записи в регистр ax. .data table dw 1,2,3,4,5,6,7,8,9,10,11,12,…….. .code mov si,12 или mov si,2*6 mov bx,offset table mov ax, [bx+si+4 ]

Слайд 46





Для адресации по базе с индексированием возможны следующие комбинации регистров:
Для адресации по базе с индексированием возможны следующие комбинации регистров:
[bx][si] +сдвиг       совместно с регистром ds
[bx][di] +сдвиг       совместно с регистром ds
[bp][si] +сдвиг       совместно с регистром ss
[bp][di] +сдвиг       совместно с регистром ss 
Используеются разные формы записи операнда:
[bx][di] +4, [bx+di] +4, [bx+di+4 ]
Описание слайда:
Для адресации по базе с индексированием возможны следующие комбинации регистров: Для адресации по базе с индексированием возможны следующие комбинации регистров: [bx][si] +сдвиг совместно с регистром ds [bx][di] +сдвиг совместно с регистром ds [bp][si] +сдвиг совместно с регистром ss [bp][di] +сдвиг совместно с регистром ss Используеются разные формы записи операнда: [bx][di] +4, [bx+di] +4, [bx+di+4 ]

Слайд 47


Лекции по программированию на ассемблере, слайд №47
Описание слайда:

Слайд 48





сдвиг отсутствует, длина поля равна 0;
сдвиг отсутствует, длина поля равна 0;
 занимает 1 байт, значение в диапазоне 
-128 до +127; 
занимает 2 байта, значение в диапазоне 
-32768 до +32767.
Описание слайда:
сдвиг отсутствует, длина поля равна 0; сдвиг отсутствует, длина поля равна 0; занимает 1 байт, значение в диапазоне -128 до +127; занимает 2 байта, значение в диапазоне -32768 до +32767.

Слайд 49






- Принципы и свойства архитектуры ЭВМ.
Иерархия памяти.
Описание слайда:
- Принципы и свойства архитектуры ЭВМ. Иерархия памяти.

Слайд 50





Принцип хранимой программы
 (Джона фон Неймана) – код программы и данные хранятся в оперативной памяти (ОП).
Принцип хранимой программы
 (Джона фон Неймана) – код программы и данные хранятся в оперативной памяти (ОП).
Принцип микропрограммирования – для каждой команды есть набор действий- сигналов, генерируемых  для ее выполнения.  
Принцип адресности – пространство ОП линейно, т.е. совокупность последовательно пронумерованных ячеек памяти. Номер ячейки – ее адрес (0,1,2,…). 
Принцип программного управления – последовательное выполнение команд программы. Для изменения  порядка выполнения  используются специальные команды.
Описание слайда:
Принцип хранимой программы (Джона фон Неймана) – код программы и данные хранятся в оперативной памяти (ОП). Принцип хранимой программы (Джона фон Неймана) – код программы и данные хранятся в оперативной памяти (ОП). Принцип микропрограммирования – для каждой команды есть набор действий- сигналов, генерируемых для ее выполнения. Принцип адресности – пространство ОП линейно, т.е. совокупность последовательно пронумерованных ячеек памяти. Номер ячейки – ее адрес (0,1,2,…). Принцип программного управления – последовательное выполнение команд программы. Для изменения порядка выполнения используются специальные команды.

Слайд 51





5.  Принцип однородности памяти – для процессора нет принципиальной разницы между данными и командами. Над командами можно выполнять такие  же действия как и над данными. 
5.  Принцип однородности памяти – для процессора нет принципиальной разницы между данными и командами. Над командами можно выполнять такие  же действия как и над данными. 
6.  Принцип двоичного кодирования – необходимо четко разделять пространство данных и команд, т.к. процессор трактует двоичную информацию в зависимости от назначения адресного пространства .
7.  Принцип безразличие к целевому назначению данных – процессору не важна логическая назрузка обрабатываемых данных.
Описание слайда:
5. Принцип однородности памяти – для процессора нет принципиальной разницы между данными и командами. Над командами можно выполнять такие же действия как и над данными. 5. Принцип однородности памяти – для процессора нет принципиальной разницы между данными и командами. Над командами можно выполнять такие же действия как и над данными. 6. Принцип двоичного кодирования – необходимо четко разделять пространство данных и команд, т.к. процессор трактует двоичную информацию в зависимости от назначения адресного пространства . 7. Принцип безразличие к целевому назначению данных – процессору не важна логическая назрузка обрабатываемых данных.

Слайд 52





Способы кеширования кода и данных:
Способы кеширования кода и данных:
в i486 – один блок встроенного кеша размером 8 кб для кодов и данных;
в Pentium - два блока по 8 кб, один для  кода, другой для данных. Возможен одновременный доступ к коду и данным.
Описание слайда:
Способы кеширования кода и данных: Способы кеширования кода и данных: в i486 – один блок встроенного кеша размером 8 кб для кодов и данных; в Pentium - два блока по 8 кб, один для кода, другой для данных. Возможен одновременный доступ к коду и данным.

Слайд 53


Лекции по программированию на ассемблере, слайд №53
Описание слайда:

Слайд 54





Располагается между основной памятью и процессором.
Располагается между основной памятью и процессором.
Основное назначение -  улучшение эффективной скорости взаимодействия с  памятью и увеличение быстродействия процессора.
Подразделяется на кеш I уровня (на кристалле) и кеш  II уровня (на кристалле или вне его).
Описание слайда:
Располагается между основной памятью и процессором. Располагается между основной памятью и процессором. Основное назначение - улучшение эффективной скорости взаимодействия с памятью и увеличение быстродействия процессора. Подразделяется на кеш I уровня (на кристалле) и кеш II уровня (на кристалле или вне его).

Слайд 55





Предвосхищение наиболее вероятного использования процессором данных из ОП путем их копирования в кеш-память. 
Предвосхищение наиболее вероятного использования процессором данных из ОП путем их копирования в кеш-память. 
Данные передаются блоками, состоящими из нескольких слов.
Среднее время доспупа к кеш – памяти:
 в 3 раза быстрее, чем к ОЗУ,
 в 10 раз быстрее, чем к ПЗУ.
Описание слайда:
Предвосхищение наиболее вероятного использования процессором данных из ОП путем их копирования в кеш-память. Предвосхищение наиболее вероятного использования процессором данных из ОП путем их копирования в кеш-память. Данные передаются блоками, состоящими из нескольких слов. Среднее время доспупа к кеш – памяти: в 3 раза быстрее, чем к ОЗУ, в 10 раз быстрее, чем к ПЗУ.

Слайд 56





Физическая память, к которой МП имеет доступ по шине адреса, называется ОП.
Физическая память, к которой МП имеет доступ по шине адреса, называется ОП.
Выполнена ОП на дешевых и медленно действующих полупроводниковых устройствах.
Реально реализована как последовательность ячеек – байтов. Каждому байту соответствует уникальный адрес, называемый физическим.
Описание слайда:
Физическая память, к которой МП имеет доступ по шине адреса, называется ОП. Физическая память, к которой МП имеет доступ по шине адреса, называется ОП. Выполнена ОП на дешевых и медленно действующих полупроводниковых устройствах. Реально реализована как последовательность ячеек – байтов. Каждому байту соответствует уникальный адрес, называемый физическим.

Слайд 57





Он обеспечивает:
Он обеспечивает:
 компактность хранения адреса в команде;
гибкость механизма адресации;
защиту адресного пространства задачи;
поддержку виртуальной памяти.
Описание слайда:
Он обеспечивает: Он обеспечивает: компактность хранения адреса в команде; гибкость механизма адресации; защиту адресного пространства задачи; поддержку виртуальной памяти.

Слайд 58





МП аппаратно поддерживает модели:
МП аппаратно поддерживает модели:
сегментированную;
страничную.
Режимы работы МП:
режим реальных адресов;
защищенный;
виртуального процессора.
Описание слайда:
МП аппаратно поддерживает модели: МП аппаратно поддерживает модели: сегментированную; страничную. Режимы работы МП: режим реальных адресов; защищенный; виртуального процессора.

Слайд 59





Сегментация – механизм адресации, обеспечивающий существование нескольких независимых адресных пространств (как в пределах одной задачи, так и в системе в целом) для защиты от взаимного влияния.
Сегментация – механизм адресации, обеспечивающий существование нескольких независимых адресных пространств (как в пределах одной задачи, так и в системе в целом) для защиты от взаимного влияния.
Сегмент – независимый, поддерживаемый на аппаратном уровне блок памяти.
Программно возможен непосредственный доступ только к 4(6) сегментам. Каждый сегмент имеет специальное назначение.
Описание слайда:
Сегментация – механизм адресации, обеспечивающий существование нескольких независимых адресных пространств (как в пределах одной задачи, так и в системе в целом) для защиты от взаимного влияния. Сегментация – механизм адресации, обеспечивающий существование нескольких независимых адресных пространств (как в пределах одной задачи, так и в системе в целом) для защиты от взаимного влияния. Сегмент – независимый, поддерживаемый на аппаратном уровне блок памяти. Программно возможен непосредственный доступ только к 4(6) сегментам. Каждый сегмент имеет специальное назначение.

Слайд 60





Первоначально начальные физические адреса сегментов программы неизвестны.
Первоначально начальные физические адреса сегментов программы неизвестны.
ОС распределяет память и помещает адреса:
в реальном режиме - в сегментные регистры;
в защищенном – в специальную дескрипторную таблицу.
Под физическим (линейным) адресом понимается адрес, выдаваемый на шину адреса.
Описание слайда:
Первоначально начальные физические адреса сегментов программы неизвестны. Первоначально начальные физические адреса сегментов программы неизвестны. ОС распределяет память и помещает адреса: в реальном режиме - в сегментные регистры; в защищенном – в специальную дескрипторную таблицу. Под физическим (линейным) адресом понимается адрес, выдаваемый на шину адреса.

Слайд 61


Лекции по программированию на ассемблере, слайд №61
Описание слайда:

Слайд 62






Виды операндов, поддерживаемые транслятором.
Структура команды мп intel 80386.
Байт mod r/m.
Формат команды mov (1-2).
Описание слайда:
Виды операндов, поддерживаемые транслятором. Структура команды мп intel 80386. Байт mod r/m. Формат команды mov (1-2).

Слайд 63








метка   КОП  операнд_1,операнд_2

Оператором ассемблера может быть:
машинная команда;
директива транслятора;
макрокоманда;
комментарий.
Описание слайда:
метка КОП операнд_1,операнд_2 Оператором ассемблера может быть: машинная команда; директива транслятора; макрокоманда; комментарий.

Слайд 64





Постоянные или непосредственные (число, строка):  ABC equ 3    или  АВС1=АВС1+120/5;
Постоянные или непосредственные (число, строка):  ABC equ 3    или  АВС1=АВС1+120/5;
Адресные (сегмент:смещение):  ds:0001;
Перемещаемые – адреса, непривязанные к конкретному физическому адресу памяти;
Текущее значение счетчика адреса  ($):  mov ax,$+5;
Регистровые: ax, cx, dx и т.д.;
Базовый и индексный операнды: bx, di, si;
Арифметические операторы в выражении: +, -, *, /;
Описание слайда:
Постоянные или непосредственные (число, строка): ABC equ 3 или АВС1=АВС1+120/5; Постоянные или непосредственные (число, строка): ABC equ 3 или АВС1=АВС1+120/5; Адресные (сегмент:смещение): ds:0001; Перемещаемые – адреса, непривязанные к конкретному физическому адресу памяти; Текущее значение счетчика адреса ($): mov ax,$+5; Регистровые: ax, cx, dx и т.д.; Базовый и индексный операнды: bx, di, si; Арифметические операторы в выражении: +, -, *, /;

Слайд 65





Операторы сравнения: eq, ne, lt, le, gt, ge и т.д.
Операторы сравнения: eq, ne, lt, le, gt, ge и т.д.
Логические операторы: and, or, xor.
Индексный оператор [ ]: mov ax, ABC [si]
Оператор определения типа (приписывает операнду указанный тип): 
 формат:        тип ptr выражение
	пример:       abc dw 12h
	                               mov al, byte ptr abc
Получение сегментной части адреса или смещения:
	mov ax, seg ABC
	mov dx, offset ABC
Описание слайда:
Операторы сравнения: eq, ne, lt, le, gt, ge и т.д. Операторы сравнения: eq, ne, lt, le, gt, ge и т.д. Логические операторы: and, or, xor. Индексный оператор [ ]: mov ax, ABC [si] Оператор определения типа (приписывает операнду указанный тип): формат: тип ptr выражение пример: abc dw 12h mov al, byte ptr abc Получение сегментной части адреса или смещения: mov ax, seg ABC mov dx, offset ABC

Слайд 66


Лекции по программированию на ассемблере, слайд №66
Описание слайда:

Слайд 67






Префикс КОП байт_mod_r/m сдвиг  данное
0,1             1              0,1              0,1,2    0,1,2
Длина команды: min - 1 байт,
                            max - 7 байт.
Описание слайда:
Префикс КОП байт_mod_r/m сдвиг данное 0,1 1 0,1 0,1,2 0,1,2 Длина команды: min - 1 байт, max - 7 байт.

Слайд 68


Лекции по программированию на ассемблере, слайд №68
Описание слайда:

Слайд 69





Каждый префикс может занимать 1 байт.
Каждый префикс может занимать 1 байт.
Есть 5 типов префиксов:
повторения (в цепочечных командах);
размера адреса;
размера операнда;
замены сегмента;
блокировки шины.
Описание слайда:
Каждый префикс может занимать 1 байт. Каждый префикс может занимать 1 байт. Есть 5 типов префиксов: повторения (в цепочечных командах); размера адреса; размера операнда; замены сегмента; блокировки шины.

Слайд 70





    | mod | reg/коп | r/m | 
    | mod | reg/коп | r/m | 
    Поле mod – 2 бита, кодировка:
00 – индексное смещение отсутствует;
01 – смещение занимает 1 байт;
10 - смещение занимает 2 байта;
11 – поле r/m определяет регистр.
Поля reg и r/m имеют длину по 3 бита.
Определяют регистр и способ адресации.
Описание слайда:
| mod | reg/коп | r/m | | mod | reg/коп | r/m | Поле mod – 2 бита, кодировка: 00 – индексное смещение отсутствует; 01 – смещение занимает 1 байт; 10 - смещение занимает 2 байта; 11 – поле r/m определяет регистр. Поля reg и r/m имеют длину по 3 бита. Определяют регистр и способ адресации.

Слайд 71


Лекции по программированию на ассемблере, слайд №71
Описание слайда:

Слайд 72





При регистровой адресации поле mod = 11, а в  поле r/m -  код второго регистра.
При регистровой адресации поле mod = 11, а в  поле r/m -  код второго регистра.
Для прямой адресации поле mod = 00, r/m=110 и за байтом  mod r/m стоят 2 байта, указывающих смещение прямого адреса.
Описание слайда:
При регистровой адресации поле mod = 11, а в поле r/m - код второго регистра. При регистровой адресации поле mod = 11, а в поле r/m - код второго регистра. Для прямой адресации поле mod = 00, r/m=110 и за байтом mod r/m стоят 2 байта, указывающих смещение прямого адреса.

Слайд 73






mov ax, @data
mov ds, ax
Описание слайда:
mov ax, @data mov ds, ax

Слайд 74





Пересылка регистра/памяти  в/из регистра:
Пересылка регистра/памяти  в/из регистра:
	mov ax,bx
Описание слайда:
Пересылка регистра/памяти в/из регистра: Пересылка регистра/памяти в/из регистра: mov ax,bx

Слайд 75





d определяет направление перемещения:
d определяет направление перемещения:
w определяет размер операнда:
Описание слайда:
d определяет направление перемещения: d определяет направление перемещения: w определяет размер операнда:

Слайд 76






Форматы команды MOV
Префикс замены сегмента.
Система машинных команд МП intel 8086 (п.1-2).
Описание слайда:
Форматы команды MOV Префикс замены сегмента. Система машинных команд МП intel 8086 (п.1-2).

Слайд 77





2. Непосредственный операнд в регистр/память
2. Непосредственный операнд в регистр/память
	mov ABC,46
Пусть смещение АВС равно 0005
Описание слайда:
2. Непосредственный операнд в регистр/память 2. Непосредственный операнд в регистр/память mov ABC,46 Пусть смещение АВС равно 0005

Слайд 78





3. Непосредственный операнд в регистр
3. Непосредственный операнд в регистр
	mov si,1000                       (1000=03E8h)
Описание слайда:
3. Непосредственный операнд в регистр 3. Непосредственный операнд в регистр mov si,1000 (1000=03E8h)

Слайд 79





4. Память в аккумулятор
4. Память в аккумулятор
	mov ax,exword  ; если адрес exword = ds:0002, то
           
               А            1              02           00
Описание слайда:
4. Память в аккумулятор 4. Память в аккумулятор mov ax,exword ; если адрес exword = ds:0002, то А 1 02 00

Слайд 80





5. Аккумулятор в память
5. Аккумулятор в память
	mov  exbyte,al ; если адрес exbyte = ds:0004, то
          А        2                 04       00
Описание слайда:
5. Аккумулятор в память 5. Аккумулятор в память mov exbyte,al ; если адрес exbyte = ds:0004, то А 2 04 00

Слайд 81





6. Регистр/память в сегментный регистр
6. Регистр/память в сегментный регистр
	mov  ds,ax
Описание слайда:
6. Регистр/память в сегментный регистр 6. Регистр/память в сегментный регистр mov ds,ax

Слайд 82





7. Сегментный регистр в регистр/память:
7. Сегментный регистр в регистр/память:
 	mov ax,еs
Описание слайда:
7. Сегментный регистр в регистр/память: 7. Сегментный регистр в регистр/память: mov ax,еs

Слайд 83





Префикс занимает 1 байт и имеет вид:
Префикс занимает 1 байт и имеет вид:
           001 regs 110
 Кодировка сегментных регистров:
Пример: переменная var определена в сегменте cs, тогда
в исходном модуле -    inc cs:var,
под отладчиком -          cs:   inc var
Описание слайда:
Префикс занимает 1 байт и имеет вид: Префикс занимает 1 байт и имеет вид: 001 regs 110 Кодировка сегментных регистров: Пример: переменная var определена в сегменте cs, тогда в исходном модуле - inc cs:var, под отладчиком - cs: inc var

Слайд 84


Лекции по программированию на ассемблере, слайд №84
Описание слайда:

Слайд 85





Выполняют обмен информации между регистрами, ячейками памяти и портами ввода-вывода:
Выполняют обмен информации между регистрами, ячейками памяти и портами ввода-вывода:
a) команды пересылки данных (mov, lea, xchg);
пример:
mov bx,offset abc
lea bx,abc
xchg    ax,bx 
б) стековые операции (push, pop, pushf, popf).
	   Пример:  push    ds    
	               pop     es        
Описание слайда:
Выполняют обмен информации между регистрами, ячейками памяти и портами ввода-вывода: Выполняют обмен информации между регистрами, ячейками памяти и портами ввода-вывода: a) команды пересылки данных (mov, lea, xchg); пример: mov bx,offset abc lea bx,abc xchg    ax,bx б) стековые операции (push, pop, pushf, popf). Пример: push    ds     pop     es        

Слайд 86





Стек – это область оперативной памяти, специально выделенная для временного хранения данных программы.
Стек – это область оперативной памяти, специально выделенная для временного хранения данных программы.
Работает по принципу LIFO в сторону уменьшения адресов.
Используются 3 регистра:
ss - сегментный регистр,
sp – указатель стека,
bp – указатель базы кадра стека.
Описание слайда:
Стек – это область оперативной памяти, специально выделенная для временного хранения данных программы. Стек – это область оперативной памяти, специально выделенная для временного хранения данных программы. Работает по принципу LIFO в сторону уменьшения адресов. Используются 3 регистра: ss - сегментный регистр, sp – указатель стека, bp – указатель базы кадра стека.

Слайд 87





 -----------------------------  0000:0000
 -----------------------------  0000:0000
 ……………….               
------------------------------ Сегмент стека   SS:0000
                                       
Вершина стека            SS:SP
Дно стека                     SS:FFFF
-------------------------------
…………………..
Описание слайда:
----------------------------- 0000:0000 ----------------------------- 0000:0000 ………………. ------------------------------ Сегмент стека SS:0000 Вершина стека SS:SP Дно стека SS:FFFF ------------------------------- …………………..

Слайд 88





рush – запись значения в вершину стека:
рush – запись значения в вершину стека:
sp=(sp)-2;
Запись операнда по адресу  ss:sp.
рop – извлечение из вершины стека:
Извлечение операнда по адресу ss:sp
sp=(sp)+2;
Запись операнда.
рusha – групповая запись в стек регистров
аx, cx, dx, bx, sp, bp, si, di
рopa – групповое извлечение из стека в регистры
Описание слайда:
рush – запись значения в вершину стека: рush – запись значения в вершину стека: sp=(sp)-2; Запись операнда по адресу ss:sp. рop – извлечение из вершины стека: Извлечение операнда по адресу ss:sp sp=(sp)+2; Запись операнда. рusha – групповая запись в стек регистров аx, cx, dx, bx, sp, bp, si, di рopa – групповое извлечение из стека в регистры

Слайд 89





рushf – загрузка содержимого регистра флагов в вершину стека:
рushf – загрузка содержимого регистра флагов в вершину стека:
sp=(sp)-2;
Запись содержимого регистра флагов по адресу  ss:sp.
рopf – извлечение информации из вершины стека и загрузка в регистр флагов:
извлечение операнда по адресу ss:sp;
sp=(sp)+2;
загрузка в регистр флагов.
Описание слайда:
рushf – загрузка содержимого регистра флагов в вершину стека: рushf – загрузка содержимого регистра флагов в вершину стека: sp=(sp)-2; Запись содержимого регистра флагов по адресу ss:sp. рopf – извлечение информации из вершины стека и загрузка в регистр флагов: извлечение операнда по адресу ss:sp; sp=(sp)+2; загрузка в регистр флагов.

Слайд 90


Лекции по программированию на ассемблере, слайд №90
Описание слайда:

Слайд 91






Система команд процессора (п.3-7).
Прерывания.
 Классификация прерываний.
Описание слайда:
Система команд процессора (п.3-7). Прерывания. Классификация прерываний.

Слайд 92


Лекции по программированию на ассемблере, слайд №92
Описание слайда:

Слайд 93





Типы адресов: short, near, far
Типы адресов: short, near, far
Существует 4 способа передачи управления.
Команды перехода                             Длина смещения
безусловного перехода: jmp               2, 4 байта
условного перехода: j xxx                      1 байт
перехода с вызовом процедур: call      2, 4 байта
управления циклами: loop                      1 байт
Пример: jmp short label
Описание слайда:
Типы адресов: short, near, far Типы адресов: short, near, far Существует 4 способа передачи управления. Команды перехода Длина смещения безусловного перехода: jmp 2, 4 байта условного перехода: j xxx 1 байт перехода с вызовом процедур: call 2, 4 байта управления циклами: loop 1 байт Пример: jmp short label

Слайд 94





Если  относительный адрес перехода превышает 128 б, то меняют  команду (а) на две команды (в):
Если  относительный адрес перехода превышает 128 б, то меняют  команду (а) на две команды (в):
а)                                              в)
               cmp dl,’а’                     cmp dl,’а’
               jz zero                           jnz continue
continue:                                       jmp zero
              ……….                         Continue:
    zero:                                          ………
              ………..                        Zero:
Описание слайда:
Если относительный адрес перехода превышает 128 б, то меняют команду (а) на две команды (в): Если относительный адрес перехода превышает 128 б, то меняют команду (а) на две команды (в): а) в) cmp dl,’а’ cmp dl,’а’ jz zero jnz continue continue: jmp zero ………. Continue: zero: ……… ……….. Zero:

Слайд 95





Замену команд для условного перехода можно сделать с помощью директивы транслятора jumps.
Замену команд для условного перехода можно сделать с помощью директивы транслятора jumps.
 Тогда транслятор автоматически заменит  условный переход на пару переходов.
Описание слайда:
Замену команд для условного перехода можно сделать с помощью директивы транслятора jumps. Замену команд для условного перехода можно сделать с помощью директивы транслятора jumps. Тогда транслятор автоматически заменит условный переход на пару переходов.

Слайд 96





Использует значение регистра CX, уменьшает его при каждом шаге на 1 и проверяет на 0. 
Использует значение регистра CX, уменьшает его при каждом шаге на 1 и проверяет на 0. 
Если не равно 0, то переход по адресу операнда.
      mov cx,10
      mov ax,0
abc:   inc ax
          ………
        loop abc
ddd:  ……..
Описание слайда:
Использует значение регистра CX, уменьшает его при каждом шаге на 1 и проверяет на 0. Использует значение регистра CX, уменьшает его при каждом шаге на 1 и проверяет на 0. Если не равно 0, то переход по адресу операнда. mov cx,10 mov ax,0 abc: inc ax ……… loop abc ddd: ……..

Слайд 97





Перемещают, сравнивают,  сканируют строки данных.
Перемещают, сравнивают,  сканируют строки данных.
 Работают с последовательностями элементов размером в байт, слово, двойное слово.
Используются с префиксом повторения (rep).
Например, команда movs: 
movsb
movsw
movsd
Описание слайда:
Перемещают, сравнивают, сканируют строки данных. Перемещают, сравнивают, сканируют строки данных. Работают с последовательностями элементов размером в байт, слово, двойное слово. Используются с префиксом повторения (rep). Например, команда movs: movsb movsw movsd

Слайд 98





Установить флаг df командами cld (по возрастанию) или std (по убыванию);
Установить флаг df командами cld (по возрастанию) или std (по убыванию);
Загрузить адреса цепочек в ds:si и es:di;
Загрузить в cx количество элементов для обработки;
Выполнить команду (например, movsw)
 с префиксом rep:
      rep movsw
Описание слайда:
Установить флаг df командами cld (по возрастанию) или std (по убыванию); Установить флаг df командами cld (по возрастанию) или std (по убыванию); Загрузить адреса цепочек в ds:si и es:di; Загрузить в cx количество элементов для обработки; Выполнить команду (например, movsw) с префиксом rep: rep movsw

Слайд 99





Для обработки специфический ситуаций существует 3 команды: 
Для обработки специфический ситуаций существует 3 команды: 
int, iret, intо
Описание слайда:
Для обработки специфический ситуаций существует 3 команды: Для обработки специфический ситуаций существует 3 команды: int, iret, intо

Слайд 100





Назначение: установка и сброс флагов, изменение режима функционирования процессора.
Назначение: установка и сброс флагов, изменение режима функционирования процессора.
Например,
 cld – сбросить флаг направления (флаг=0),
std – установить флаг направления (флаг=1).
Описание слайда:
Назначение: установка и сброс флагов, изменение режима функционирования процессора. Назначение: установка и сброс флагов, изменение режима функционирования процессора. Например, cld – сбросить флаг направления (флаг=0), std – установить флаг направления (флаг=1).

Слайд 101





Прерывание – это сигнал, заставляющий микропроцессор менять обычный порядок исполнения команд.
Прерывание – это сигнал, заставляющий микропроцессор менять обычный порядок исполнения команд.
Прерывание называется ситуация, приводящая к временному или окончательному прекращению выполнения команд одной программы и переходу к другой программе.
Описание слайда:
Прерывание – это сигнал, заставляющий микропроцессор менять обычный порядок исполнения команд. Прерывание – это сигнал, заставляющий микропроцессор менять обычный порядок исполнения команд. Прерывание называется ситуация, приводящая к временному или окончательному прекращению выполнения команд одной программы и переходу к другой программе.

Слайд 102





Механизм прерываний обеспечивает эффективное взаимодействие устройств ввода-вывода с микропроцессором.
Механизм прерываний обеспечивает эффективное взаимодействие устройств ввода-вывода с микропроцессором.
Обработка прерываний – это прерогатива программирования на ассемблере.
Микропроцессор может распознать 256  типов прерываний.
Для каждого типа разработана своя программа обработки, называемая обработчиком прерываний.
Описание слайда:
Механизм прерываний обеспечивает эффективное взаимодействие устройств ввода-вывода с микропроцессором. Механизм прерываний обеспечивает эффективное взаимодействие устройств ввода-вывода с микропроцессором. Обработка прерываний – это прерогатива программирования на ассемблере. Микропроцессор может распознать 256 типов прерываний. Для каждого типа разработана своя программа обработки, называемая обработчиком прерываний.

Слайд 103





Адрес программы  обработки прерывания конкретного типа называется вектором прерываний. Размер – 4 байта: сегмент:смещение
Адрес программы  обработки прерывания конкретного типа называется вектором прерываний. Размер – 4 байта: сегмент:смещение
Все векторы собраны в таблицу векторов прерываний.
Размер таблицы 4*256=1024 байта.
Расположена в младших адресах памяти.
Описание слайда:
Адрес программы обработки прерывания конкретного типа называется вектором прерываний. Размер – 4 байта: сегмент:смещение Адрес программы обработки прерывания конкретного типа называется вектором прерываний. Размер – 4 байта: сегмент:смещение Все векторы собраны в таблицу векторов прерываний. Размер таблицы 4*256=1024 байта. Расположена в младших адресах памяти.

Слайд 104





2 команды вызова пррываний:
2 команды вызова пррываний:
int тип_прерывания
into (прерывание по переполнению).
1 команда возврата - iret
Описание слайда:
2 команды вызова пррываний: 2 команды вызова пррываний: int тип_прерывания into (прерывание по переполнению). 1 команда возврата - iret

Слайд 105






Схема обработки прерываний.
Функции int 21h для работы с файлами.
Примеры использования команды int 21h для работы с файлами.
Описание слайда:
Схема обработки прерываний. Функции int 21h для работы с файлами. Примеры использования команды int 21h для работы с файлами.

Слайд 106


Лекции по программированию на ассемблере, слайд №106
Описание слайда:

Слайд 107





По месту возникновения:
По месту возникновения:
внешние (аппаратные),
внутренние (программные).
По типу системных ресурсов:
BIOS,
DOS.
Описание слайда:
По месту возникновения: По месту возникновения: внешние (аппаратные), внутренние (программные). По типу системных ресурсов: BIOS, DOS.

Слайд 108





Векторы прерываний микропроцессора 
(деление на 0, переполнение);
Векторы прерываний микропроцессора 
(деление на 0, переполнение);
Векторы прерываний микроконтроллера
( системный таймер, клавиатура, гибкий диск);
Входные точки процедур системы BIOS
(обмен данными с клавиатурой, дисплеем, …);
Вызов процедур пользователя;
Указатели системных таблиц (параметры гибкого и жесткого дисков).
Описание слайда:
Векторы прерываний микропроцессора (деление на 0, переполнение); Векторы прерываний микропроцессора (деление на 0, переполнение); Векторы прерываний микроконтроллера ( системный таймер, клавиатура, гибкий диск); Входные точки процедур системы BIOS (обмен данными с клавиатурой, дисплеем, …); Вызов процедур пользователя; Указатели системных таблиц (параметры гибкого и жесткого дисков).

Слайд 109





20h – завершение программ;
20h – завершение программ;
21h- вызов функций DOS;
23h- обработка клавиш Ctrl+ Break;
25h- абсолютное чтение с диска;
26h- абсолютная запись на диск.
Описание слайда:
20h – завершение программ; 20h – завершение программ; 21h- вызов функций DOS; 23h- обработка клавиш Ctrl+ Break; 25h- абсолютное чтение с диска; 26h- абсолютная запись на диск.

Слайд 110





Номер функции задают в регистре ah, дополнительную информацию через другие регистры, например, ds:dx.
Номер функции задают в регистре ah, дополнительную информацию через другие регистры, например, ds:dx.
Выходная информация выдается  через регистр al или другие регистры.
Описание слайда:
Номер функции задают в регистре ah, дополнительную информацию через другие регистры, например, ds:dx. Номер функции задают в регистре ah, дополнительную информацию через другие регистры, например, ds:dx. Выходная информация выдается через регистр al или другие регистры.

Слайд 111


Лекции по программированию на ассемблере, слайд №111
Описание слайда:

Слайд 112





3ch -	Создание файла;
3ch -	Создание файла;
6ch - 	Создание и открытие существующего;
3dh -	открытие;
3eh - 	закрытие;
3fh – чтение файла;
40h - запись в файл;
42h – позиционирование указателя записи.
Описание слайда:
3ch - Создание файла; 3ch - Создание файла; 6ch - Создание и открытие существующего; 3dh - открытие; 3eh - закрытие; 3fh – чтение файла; 40h - запись в файл; 42h – позиционирование указателя записи.

Слайд 113





Входные данные:
Входные данные:
ah – 3ch,
 ds:dx - адрес ASCIIZ-строки с именем файла,
cx - атрибут файла: 0 – обычный. 
Выходные данные:
если cf=0, то в ax - логический номер файла
 (дескриптор файла),
если cf=1, то  в ax - код ошибки: 
3 – нет указанного пути, 
4 – нет свободного дескриптора, 5 – отказано в доступе.
Описание слайда:
Входные данные: Входные данные: ah – 3ch, ds:dx - адрес ASCIIZ-строки с именем файла, cx - атрибут файла: 0 – обычный. Выходные данные: если cf=0, то в ax - логический номер файла (дескриптор файла), если cf=1, то в ax - код ошибки: 3 – нет указанного пути, 4 – нет свободного дескриптора, 5 – отказано в доступе.

Слайд 114





Функция 3сh на выходе передает код ошибки при cf=1.
Функция 3сh на выходе передает код ошибки при cf=1.
Для обработки этой ситуации используются команды:
jc – переход при cf=1;
jnc - переход при cf=0.
Описание слайда:
Функция 3сh на выходе передает код ошибки при cf=1. Функция 3сh на выходе передает код ошибки при cf=1. Для обработки этой ситуации используются команды: jc – переход при cf=1; jnc - переход при cf=0.

Слайд 115





Задается в регистре побитно:
Задается в регистре побитно:
0 бит = 1 –только для чтения,
0 бит = 0 – обычный;
1 бит = 1 – скрытый файл;
2 бит = 1 – системный файл; 
и т.д.
Описание слайда:
Задается в регистре побитно: Задается в регистре побитно: 0 бит = 1 –только для чтения, 0 бит = 0 – обычный; 1 бит = 1 – скрытый файл; 2 бит = 1 – системный файл; и т.д.

Слайд 116






Примеры работы с прерываниями.
Структура программного сегмента.
Префикс программного сегмента ( PSP).
Буфер обмена DTA.
Описание слайда:
Примеры работы с прерываниями. Структура программного сегмента. Префикс программного сегмента ( PSP). Буфер обмена DTA.

Слайд 117





	.data
	.data
		handle dw 0
		filename db ‘myfile.txt’,0
		point_fname dd filename
	.code     ………..
		xor cx,cx                       ; обнуляем сх
		lds dx,point_fname      ; формируем указатель на файл
		mov ah,3ch
		int 21h
		jc exit                           ; переход по ошибке
		mov handle,ax
                 …………….
exit:
Описание слайда:
.data .data handle dw 0 filename db ‘myfile.txt’,0 point_fname dd filename .code ……….. xor cx,cx ; обнуляем сх lds dx,point_fname ; формируем указатель на файл mov ah,3ch int 21h jc exit ; переход по ошибке mov handle,ax ……………. exit:

Слайд 118





 Входные данные:
 Входные данные:
ds:dx -  адрес ASCIIZ-строки с именем файла, 
al =0 для чтения,
al =1 для записи,
al=2 для чтения и записи.
Выходные данные:
ax -  логический номер файла.
Описание слайда:
Входные данные: Входные данные: ds:dx - адрес ASCIIZ-строки с именем файла, al =0 для чтения, al =1 для записи, al=2 для чтения и записи. Выходные данные: ax - логический номер файла.

Слайд 119





 Входные данные:
 Входные данные:
 cx - атрибут файла, 0- для обычного файла,
bx – режим доступа, 2 – чтение-запись;
dx – 1 - для существующего файла открыть доступ, 10h – создать и открыть;
 ds:si -  адрес ASCIIZ-строки с именем файла.
Выходные данные:
ax -  логический номер файла.
Описание слайда:
Входные данные: Входные данные: cx - атрибут файла, 0- для обычного файла, bx – режим доступа, 2 – чтение-запись; dx – 1 - для существующего файла открыть доступ, 10h – создать и открыть; ds:si - адрес ASCIIZ-строки с именем файла. Выходные данные: ax - логический номер файла.

Слайд 120





Входные данные:
Входные данные:
AH -3Еh,
BX - логический номер файла.
Описание слайда:
Входные данные: Входные данные: AH -3Еh, BX - логический номер файла.

Слайд 121





Входные данные:
Входные данные:
ah=3Fh - для чтения, 40h - для записи в файл,
 bx - логический номер файла,
cx -  число считываемых байтов,
ds:dx - адрес буфера ввода-вывода.
Выходные данные:
ax - число фактически считанных (или записанных) байтов.
Описание слайда:
Входные данные: Входные данные: ah=3Fh - для чтения, 40h - для записи в файл, bx - логический номер файла, cx - число считываемых байтов, ds:dx - адрес буфера ввода-вывода. Выходные данные: ax - число фактически считанных (или записанных) байтов.

Слайд 122





	.data
	.data
		handle dw 0
		filename db ‘myfile.txt’, 0
		point_fname dd filename
	.code 
    ………..
		xor cx,cx                       ; атрибут файла
                mov bx,2                       ; режим доступа: чт-запись
                mov dx,1                       ;если сущ-ет, то открыть
		lds si,point_fname      ; формируем указатель на файл
		mov ah, 6ch
		int 21h
		jnc ABC                           ; переход, если существует
Описание слайда:
.data .data handle dw 0 filename db ‘myfile.txt’, 0 point_fname dd filename .code ……….. xor cx,cx ; атрибут файла mov bx,2 ; режим доступа: чт-запись mov dx,1 ;если сущ-ет, то открыть lds si,point_fname ; формируем указатель на файл mov ah, 6ch int 21h jnc ABC ; переход, если существует

Слайд 123





	
	
		mov dx,10h           ; создать и открыть
           mov ah,6ch
		int 21h
		jc exit                           ; переход по ошибке
ABC: mov handle, ax
                 …………….
exit:                                      ; обработка ошибки
Описание слайда:
mov dx,10h ; создать и открыть mov ah,6ch int 21h jc exit ; переход по ошибке ABC: mov handle, ax ……………. exit: ; обработка ошибки

Слайд 124





.data
.data
filename db ‘вывод строки’,13,10,$
………..		
.code 
		 mov ax,@data
             mov ds,ax
             mov dx, offset filename
		mov ah, 9h
		int 21h
Описание слайда:
.data .data filename db ‘вывод строки’,13,10,$ ……….. .code mov ax,@data mov ds,ax mov dx, offset filename mov ah, 9h int 21h

Слайд 125





Функция 2ah засылается в ah.
Функция 2ah засылается в ah.
Выходные данные:
cx – год в формате  типа 2013,
dh – месяц, 
dl – день.
Описание слайда:
Функция 2ah засылается в ah. Функция 2ah засылается в ah. Выходные данные: cx – год в формате типа 2013, dh – месяц, dl – день.

Слайд 126





Область памяти, начинающаяся с минимального адреса загрузки программы пользователя, называется программным сегментом.
Область памяти, начинающаяся с минимального адреса загрузки программы пользователя, называется программным сегментом.
Этот адрес определяется при вызове программы, т.е. при выполнении операции OS -  EXEC.
Программный сегмент состоит из:
 префикса программного сегмента (PSP),расположенного по смещению 0000;
 тела загрузочного модуля
 (по смещению 0100h).
Описание слайда:
Область памяти, начинающаяся с минимального адреса загрузки программы пользователя, называется программным сегментом. Область памяти, начинающаяся с минимального адреса загрузки программы пользователя, называется программным сегментом. Этот адрес определяется при вызове программы, т.е. при выполнении операции OS - EXEC. Программный сегмент состоит из: префикса программного сегмента (PSP),расположенного по смещению 0000; тела загрузочного модуля (по смещению 0100h).

Слайд 127


Лекции по программированию на ассемблере, слайд №127
Описание слайда:

Слайд 128





Прерывания :
Прерывания :
22h – завершение процесса;
 23h – нажатие клавиш Ctrl+Break;
 24h – фатальная ошибка.
Область сохранения  вектора имеет вид:
2 байта – смещение, 2 байта –сегмент.  
Адрес среды  -  занимает 2 байта , задается сегментным адресом.
Вызов диспетчера функций  DOS (5 байт):
call – 1 б, адрес обработчика  - 4 б ( смещение, сегмент).
Номер функции выбирается из регистра ah.
Описание слайда:
Прерывания : Прерывания : 22h – завершение процесса; 23h – нажатие клавиш Ctrl+Break; 24h – фатальная ошибка. Область сохранения вектора имеет вид: 2 байта – смещение, 2 байта –сегмент. Адрес среды - занимает 2 байта , задается сегментным адресом. Вызов диспетчера функций DOS (5 байт): call – 1 б, адрес обработчика - 4 б ( смещение, сегмент). Номер функции выбирается из регистра ah.

Слайд 129






Буфер обмена DTA.
Системное окружение.
Структура dos и карта памяти.
Описание слайда:
Буфер обмена DTA. Системное окружение. Структура dos и карта памяти.

Слайд 130





DTA (Disk Transfer Area) –рабочий буфер обмена с диском.
DTA (Disk Transfer Area) –рабочий буфер обмена с диском.
Содержит символы командной строки после имени программы, включая все пробелы, разделители и код 0dh.
Пример вызова программы в командной строке: abc.exe bbbbb 5
Содержимое dta: 20424242424220350d
При нажатии клавиши Enter в DTA записывается код 0dh.
Максимальная длина командной строки 140 байт.
Описание слайда:
DTA (Disk Transfer Area) –рабочий буфер обмена с диском. DTA (Disk Transfer Area) –рабочий буфер обмена с диском. Содержит символы командной строки после имени программы, включая все пробелы, разделители и код 0dh. Пример вызова программы в командной строке: abc.exe bbbbb 5 Содержимое dta: 20424242424220350d При нажатии клавиши Enter в DTA записывается код 0dh. Максимальная длина командной строки 140 байт.

Слайд 131





Передаваемая среда является копией родительского процесса.
Передаваемая среда является копией родительского процесса.
Представляет собой последовательность строк ASCIIZ  в виде:
параметр=значение0
Общая длина строк – до 32 кб, по умолчанию -512 б.
Описание слайда:
Передаваемая среда является копией родительского процесса. Передаваемая среда является копией родительского процесса. Представляет собой последовательность строк ASCIIZ в виде: параметр=значение0 Общая длина строк – до 32 кб, по умолчанию -512 б.

Слайд 132





Строки среды                   I
Строки среды                   I
------------------------------------
Имя_1=значение_1<00> I
Имя_2=значение_2<00> I
………………………..       I
Имя_n=значение_n<00> I         
<00>                                  I
<0100>                              I
_имя_программы<00>     I
<00>                                  I
Описание слайда:
Строки среды I Строки среды I ------------------------------------ Имя_1=значение_1<00> I Имя_2=значение_2<00> I ……………………….. I Имя_n=значение_n<00> I <00> I <0100> I _имя_программы<00> I <00> I

Слайд 133





2ch – адрес среды;
2ch – адрес среды;
80h – длина рабочего буфера;
81h – начальное смещения для содержимого командной строки.
Описание слайда:
2ch – адрес среды; 2ch – адрес среды; 80h – длина рабочего буфера; 81h – начальное смещения для содержимого командной строки.

Слайд 134





int 20h;
int 20h;
переход по адресу 0000 в программном сегменте;
int 21h с ah=4ch;
Косвенный переход по адресу 0050 в PSP.
Описание слайда:
int 20h; int 20h; переход по адресу 0000 в программном сегменте; int 21h с ah=4ch; Косвенный переход по адресу 0050 в PSP.

Слайд 135





DS, ES  указывают на начало PSP;
DS, ES  указывают на начало PSP;
IP, SP получают значения, указанные при редактировании программы в заголовке загрузочного модуля;
CS, SS, получают значения из заголовка загрузочного модуля, модифицированные  на адрес начала программного сегмента.
Описание слайда:
DS, ES указывают на начало PSP; DS, ES указывают на начало PSP; IP, SP получают значения, указанные при редактировании программы в заголовке загрузочного модуля; CS, SS, получают значения из заголовка загрузочного модуля, модифицированные на адрес начала программного сегмента.

Слайд 136





DS, ES, CS, SS указывают на начало PSP;
DS, ES, CS, SS указывают на начало PSP;
IP равен 0100h;
 SP  указывает на конец программного сегмента, длина сегмента в ячейке 6 PSP уменьшается, чтобы освободить пространство для стека;
в вершину стека записывается нулевое слово.
Описание слайда:
DS, ES, CS, SS указывают на начало PSP; DS, ES, CS, SS указывают на начало PSP; IP равен 0100h; SP указывает на конец программного сегмента, длина сегмента в ячейке 6 PSP уменьшается, чтобы освободить пространство для стека; в вершину стека записывается нулевое слово.

Слайд 137





Блок начальной загрузки (boot record);
Блок начальной загрузки (boot record);
Интерфейс с BIOS;
Встроенные команды dos;
Командный процессор (command.com).
Описание слайда:
Блок начальной загрузки (boot record); Блок начальной загрузки (boot record); Интерфейс с BIOS; Встроенные команды dos; Командный процессор (command.com).

Слайд 138





Блок начальной загрузки  занимает 1 сектор.
Блок начальной загрузки  занимает 1 сектор.
Размещается:
на дискете  - на нулевом треке;
на диске – в первом секторе раздела dos.
Описание слайда:
Блок начальной загрузки занимает 1 сектор. Блок начальной загрузки занимает 1 сектор. Размещается: на дискете - на нулевом треке; на диске – в первом секторе раздела dos.

Слайд 139





Содержит команды взаимодействия с bios. Обеспечивает интерфейс низкого уровня с подпрограммами работы с устройствами через bios. 
Содержит команды взаимодействия с bios. Обеспечивает интерфейс низкого уровня с подпрограммами работы с устройствами через bios.
Описание слайда:
Содержит команды взаимодействия с bios. Обеспечивает интерфейс низкого уровня с подпрограммами работы с устройствами через bios. Содержит команды взаимодействия с bios. Обеспечивает интерфейс низкого уровня с подпрограммами работы с устройствами через bios.

Слайд 140





Команды dos обеспечивают пользовательским программам интерфейс высокого уровня. 
Включают операции :
Команды dos обеспечивают пользовательским программам интерфейс высокого уровня. 
Включают операции :
управления файлами;
распределения оперативной памяти;
блочного обмена с дисками;
управления двигателем нгмд и др.
Описание слайда:
Команды dos обеспечивают пользовательским программам интерфейс высокого уровня. Включают операции : Команды dos обеспечивают пользовательским программам интерфейс высокого уровня. Включают операции : управления файлами; распределения оперативной памяти; блочного обмена с дисками; управления двигателем нгмд и др.

Слайд 141





Состоит из трех частей:
Состоит из трех частей:
резидентной;
инициализации;
нерезидентной.
содержит подпрограммы обработки прерваний (22h, 23h, 24h ) и подзагрузки нерезидентной части.
включает обработку файла autoexec.bat и определяет начальный адрес загрузки программы пользователя.
Описание слайда:
Состоит из трех частей: Состоит из трех частей: резидентной; инициализации; нерезидентной. содержит подпрограммы обработки прерваний (22h, 23h, 24h ) и подзагрузки нерезидентной части. включает обработку файла autoexec.bat и определяет начальный адрес загрузки программы пользователя.

Слайд 142





Состоит из:
Состоит из:
интерпретатора команд;
системного загрузчика нерезидентных команд и программ.
Загрузчик вызывается операцией OS exec -вызов и загрузка программ.
Описание слайда:
Состоит из: Состоит из: интерпретатора команд; системного загрузчика нерезидентных команд и программ. Загрузчик вызывается операцией OS exec -вызов и загрузка программ.

Слайд 143





0000:0000 таблица векторов прерываний;
0000:0000 таблица векторов прерываний;
0040:0000 глобальные переменные BIOS;
0050:0000 глобальные переменные DOS;
хххх:0000 BIO.COM;
хххх:0000 DOS.COM;
хххх:0000 2 части command.com;
хххх:0000 резидентные программы;
хххх:0000 нерезидентные программы и команды;
хххх:0000 нерезидентная  часть command.com
Описание слайда:
0000:0000 таблица векторов прерываний; 0000:0000 таблица векторов прерываний; 0040:0000 глобальные переменные BIOS; 0050:0000 глобальные переменные DOS; хххх:0000 BIO.COM; хххх:0000 DOS.COM; хххх:0000 2 части command.com; хххх:0000 резидентные программы; хххх:0000 нерезидентные программы и команды; хххх:0000 нерезидентная часть command.com

Слайд 144






Операторы ассемблера;
директивы данных;
варианты вызова процедур.
директивы управления листингом.
Описание слайда:
Операторы ассемблера; директивы данных; варианты вызова процедур. директивы управления листингом.

Слайд 145





		[метка]     мнемоника     [операнды]
		[метка]     мнемоника     [операнды]
			    (код операции)
Оператор ассемблера  может быть: 
машинной командой;
псевдооператором или директивой транслятора;
макрокомандой;
комментарием.
Описание слайда:
[метка] мнемоника [операнды] [метка] мнемоника [операнды] (код операции) Оператор ассемблера может быть: машинной командой; псевдооператором или директивой транслятора; макрокомандой; комментарием.

Слайд 146





		[метка]     мнемоника     [операнды]
		[метка]     мнемоника     [операнды]
			    (код операции)
Псевдооператоры (директивы ассемблера) подразделяются на 2 класса:
директивы данных;
директивы управления листингом.
Описание слайда:
[метка] мнемоника [операнды] [метка] мнемоника [операнды] (код операции) Псевдооператоры (директивы ассемблера) подразделяются на 2 класса: директивы данных; директивы управления листингом.

Слайд 147





1. Определение идентификаторов:
 имя  equ выражение 
1. Определение идентификаторов:
 имя  equ выражение 
	Пример: count equ cx
	                     N equ 1024
2. Определение данных:
 резервируют память - db (1 байт), dw (2 байта), dd (4 байта),  df, dp (6 байтов), 
 dq (8 байтов),  dt (10 байтов)
Описание слайда:
1. Определение идентификаторов: имя equ выражение 1. Определение идентификаторов: имя equ выражение Пример: count equ cx N equ 1024 2. Определение данных: резервируют память - db (1 байт), dw (2 байта), dd (4 байта), df, dp (6 байтов), dq (8 байтов), dt (10 байтов)

Слайд 148





Директивы	 segment и ends – определяют в программе начало и конец сегмента.
Директивы	 segment и ends – определяют в программе начало и конец сегмента.
Формат директив:
имя segment [тип подгонки,] [тип связи,]‘класс’, длина адреса
 
Например, АВС segment para public ‘code’,use16
                     ………
                  АВС ends
Описание слайда:
Директивы segment и ends – определяют в программе начало и конец сегмента. Директивы segment и ends – определяют в программе начало и конец сегмента. Формат директив: имя segment [тип подгонки,] [тип связи,]‘класс’, длина адреса Например, АВС segment para public ‘code’,use16 ……… АВС ends

Слайд 149





 Регистр адресации задается директивой assume.
 Регистр адресации задается директивой assume.
 Формат:
 assume сегментный_регистр:имя_сегмента [,  ]
Пример:  mycode segment para public  ‘code’
                              assume cs:mycode,ds:mydata
                         begin: mov ax,seg mydata
                                    mov ds,ax
                                ………………..
                             mycode ends
Описание слайда:
Регистр адресации задается директивой assume. Регистр адресации задается директивой assume. Формат: assume сегментный_регистр:имя_сегмента [, ] Пример: mycode segment para public ‘code’ assume cs:mycode,ds:mydata begin: mov ax,seg mydata mov ds,ax ……………….. mycode ends

Слайд 150





Формат:   имя proc [атрибут дальности]
Формат:   имя proc [атрибут дальности]
                 ………..
                  ret
                 имя endp
Атрибут дальности: near или far

	Пример:    .code
		startАВС proc near
              ………….		
                ret
		startАВС endp
Механизм вызова – сохранение контекста программы в стеке.
Контекст программы – это информация о состоянии программы в точке вызова процедуры.
Описание слайда:
Формат: имя proc [атрибут дальности] Формат: имя proc [атрибут дальности] ……….. ret имя endp Атрибут дальности: near или far Пример: .code startАВС proc near …………. ret startАВС endp Механизм вызова – сохранение контекста программы в стеке. Контекст программы – это информация о состоянии программы в точке вызова процедуры.

Слайд 151





Пусть АВС1 - имя процедуры типа near,
Пусть АВС1 - имя процедуры типа near,
 АВС2 – имя процедуры типа far, adr1, adr1 – ссылки:
adr1 dw offset ABC1
adr2 dw offset ABC2,seg ABC2
Варианты вызова процедур:
Прямая адресация в сегменте (ближний вызов): 		call near ptr ABC1
Прямая адресация между сегментами (дальний вызов):
	call far ptr ABC2
Косвенная адресация в сегменте:
	call word ptr adr1
Косвенная адресация между сегментами:
	call dword ptr adr2
Описание слайда:
Пусть АВС1 - имя процедуры типа near, Пусть АВС1 - имя процедуры типа near, АВС2 – имя процедуры типа far, adr1, adr1 – ссылки: adr1 dw offset ABC1 adr2 dw offset ABC2,seg ABC2 Варианты вызова процедур: Прямая адресация в сегменте (ближний вызов): call near ptr ABC1 Прямая адресация между сегментами (дальний вызов): call far ptr ABC2 Косвенная адресация в сегменте: call word ptr adr1 Косвенная адресация между сегментами: call dword ptr adr2

Слайд 152





		public имя – делает указанное имя доступным для других программных модулей, которые впоследствии  могут загружаться вместе с данным модулем.
		public имя – делает указанное имя доступным для других программных модулей, которые впоследствии  могут загружаться вместе с данным модулем.
		 extrn имя: тип - описывает идентификатор, определенный в другом модуле и описанный там в операторе public.
Тип для данных: byte, word, dword
Тип для процедур: near, far
include имяфайла  - вставка в текущий файл текста из файла
Описание слайда:
public имя – делает указанное имя доступным для других программных модулей, которые впоследствии могут загружаться вместе с данным модулем. public имя – делает указанное имя доступным для других программных модулей, которые впоследствии могут загружаться вместе с данным модулем. extrn имя: тип - описывает идентификатор, определенный в другом модуле и описанный там в операторе public. Тип для данных: byte, word, dword Тип для процедур: near, far include имяфайла - вставка в текущий файл текста из файла

Слайд 153





1 модуль:
1 модуль:
 public ABC
ABC dw 1234h
2 модуль:
extrn ABC:word
………..
mov ax,ABC
Описание слайда:
1 модуль: 1 модуль: public ABC ABC dw 1234h 2 модуль: extrn ABC:word ……….. mov ax,ABC

Слайд 154






		
		
end имя_программы
Описание слайда:
end имя_программы

Слайд 155





	page [число строк]  [число столбцов]
	page [число строк]  [число столбцов]
               10-255, 57       60-132, 80
	title текст1
	subttl текст2
Описание слайда:
page [число строк] [число столбцов] page [число строк] [число столбцов] 10-255, 57 60-132, 80 title текст1 subttl текст2

Слайд 156






Возможности макросов.
Основные понятия.
Классификация директив макросов.
Описание слайда:
Возможности макросов. Основные понятия. Классификация директив макросов.

Слайд 157





           Исходный          Макроопределение    Макрорасширение 
           Исходный          Макроопределение    Макрорасширение 
               модуль                       ABC
               test.asm               в test.asm                  в test.asm
Описание слайда:
Исходный Макроопределение Макрорасширение Исходный Макроопределение Макрорасширение модуль ABC test.asm в test.asm в test.asm

Слайд 158






          Исходный           Макроопределение   Макрорасширение  
          модуль                       Select x
          test.asm                      в test.asm               в test.asm
Описание слайда:
Исходный Макроопределение Макрорасширение модуль Select x test.asm в test.asm в test.asm

Слайд 159





Поименованный набор операторов ассемблера называется макрокомандой.
Поименованный набор операторов ассемблера называется макрокомандой.
Группа команд, определяющая действие макрокоманды, называется макроопределением.
Процесс включения в исходный текст программы команд из макроопределения называется макрорасширением или макрогенерацией.
Описание слайда:
Поименованный набор операторов ассемблера называется макрокомандой. Поименованный набор операторов ассемблера называется макрокомандой. Группа команд, определяющая действие макрокоманды, называется макроопределением. Процесс включения в исходный текст программы команд из макроопределения называется макрорасширением или макрогенерацией.

Слайд 160





Определение макрокоманды.

Определение макрокоманды.

Вызов макрокоманды.
Описание слайда:
Определение макрокоманды. Определение макрокоманды. Вызов макрокоманды.

Слайд 161





Формат:
Формат:
имя  MACRO список_формальных_параметров 
тело  макроопределения
ENDM
Список_формальных_параметров 
состоит из элементов вида:
имя_формального_аргумента [тип] 
    где тип:
:REQ – для параметров, задаваемых явно;
=<строка>  для стандартного значения параметра.
Описание слайда:
Формат: Формат: имя MACRO список_формальных_параметров тело макроопределения ENDM Список_формальных_параметров состоит из элементов вида: имя_формального_аргумента [тип] где тип: :REQ – для параметров, задаваемых явно; =<строка> для стандартного значения параметра.

Слайд 162






1. ADD_Word  MACRO     OP1:REQ,OP2:REQ,SUM
2. ADD_Word   MACRO     OP1,OP2,SUM=dx
Описание слайда:
1. ADD_Word MACRO OP1:REQ,OP2:REQ,SUM 2. ADD_Word MACRO OP1,OP2,SUM=dx

Слайд 163





Вызов макрокоманды осуществляется по имени макроса с указанием списка фактических параметров.
Вызов макрокоманды осуществляется по имени макроса с указанием списка фактических параметров.

Процесс замены формального параметра соответствующим фактическим значением  при макрорасширении называется подстановкой аргументов.
Описание слайда:
Вызов макрокоманды осуществляется по имени макроса с указанием списка фактических параметров. Вызов макрокоманды осуществляется по имени макроса с указанием списка фактических параметров. Процесс замены формального параметра соответствующим фактическим значением при макрорасширении называется подстановкой аргументов.

Слайд 164





Определение:
Определение:
	 ADD_Word MACRO     OP1,OP2,SUM
	                     MOV     AX,OP1
	                     ADD     AX,OP2
	                     MOV     SUM,AX
	                     ENDM
Макрокоманда:
	 ADD_Word BX,CX,DX
Макрорасширение:
	MOV AX,BX
	ADD AX,CX
	MOV DX,AX
Описание слайда:
Определение: Определение: ADD_Word MACRO OP1,OP2,SUM MOV AX,OP1 ADD AX,OP2 MOV SUM,AX ENDM Макрокоманда: ADD_Word BX,CX,DX Макрорасширение: MOV AX,BX ADD AX,CX MOV DX,AX

Слайд 165





Второй вариант макрокоманды:
Второй вариант макрокоманды:
	 ADD_Word price, tax, cost
Макрорасширение:
	MOV ax, price
	ADD ax, tax
	MOV cost, ax
Описание слайда:
Второй вариант макрокоманды: Второй вариант макрокоманды: ADD_Word price, tax, cost Макрорасширение: MOV ax, price ADD ax, tax MOV cost, ax

Слайд 166





1) директивы общего назначения:
1) директивы общего назначения:
 MACRO, ENDM, LOCAL
2) директивы повторения: REPT, IRP, IRPC
3) условные: IF, IFDEF, IFDIF, IFIDN, IFB, IFNB
4) выхода: EXITM
5) управления листингом: LALL, SALL, XALL
Описание слайда:
1) директивы общего назначения: 1) директивы общего назначения: MACRO, ENDM, LOCAL 2) директивы повторения: REPT, IRP, IRPC 3) условные: IF, IFDEF, IFDIF, IFIDN, IFB, IFNB 4) выхода: EXITM 5) управления листингом: LALL, SALL, XALL

Слайд 167





аaa   macro bbb
аaa   macro bbb
         local next
         push cx
         mov cx,bbb
…………………..     ; группа команд
 next: loop next
          pop cx
           endm
Описание слайда:
аaa macro bbb аaa macro bbb local next push cx mov cx,bbb ………………….. ; группа команд next: loop next pop cx endm

Слайд 168





Макрокоманда:
Макрокоманда:
aaa 100
Макрорасширение:
push cx
         mov cx,100
…………………..     ; группа команд
 ??0001: loop ??0001
          pop cx
Описание слайда:
Макрокоманда: Макрокоманда: aaa 100 Макрорасширение: push cx mov cx,100 ………………….. ; группа команд ??0001: loop ??0001 pop cx

Слайд 169






Директивы повторения.
Условные директивы.
Макрооперации.
Описание слайда:
Директивы повторения. Условные директивы. Макрооперации.

Слайд 170





REPT  выражение
REPT  выражение
	………
       ENDM
Пример: зарезервировать L байтов и присвоить им знач-я от 1 до L.
 ALLOCATE  MACRO  TLABEL, L
                         TLABEL  EQU  THIS  BYTE
                         VALUE = 0
                         REPT  L
                         VALUE = VALUE+1
                         DB  VALUE
                         ENDM
       ENDM
Описание слайда:
REPT выражение REPT выражение ……… ENDM Пример: зарезервировать L байтов и присвоить им знач-я от 1 до L. ALLOCATE MACRO TLABEL, L TLABEL EQU THIS BYTE VALUE = 0 REPT L VALUE = VALUE+1 DB VALUE ENDM ENDM

Слайд 171





Вызов:
Вызов:
.data
Allocate table,40
Макрорасширение в точке вызова:
                         tablе EQU  THIS  BYTE
                         VALUE = 0
                         VALUE = VALUE+1
                         DB  1
                         VALUE = VALUE+1
                         DB  2
……………………………………………
                         VALUE = VALUE+1
                         DB  40
Описание слайда:
Вызов: Вызов: .data Allocate table,40 Макрорасширение в точке вызова: tablе EQU THIS BYTE VALUE = 0 VALUE = VALUE+1 DB 1 VALUE = VALUE+1 DB 2 …………………………………………… VALUE = VALUE+1 DB 40

Слайд 172





IRP параметр ,<список аргументов>
IRP параметр ,<список аргументов>
	……… 
    ENDM
Пример создания таблицы из четырех слов:
       .data
        IRP  ABC ,<1,2,3,4>
        DW  ABC *ABC
        ENDM
Описание слайда:
IRP параметр ,<список аргументов> IRP параметр ,<список аргументов> ……… ENDM Пример создания таблицы из четырех слов: .data IRP ABC ,<1,2,3,4> DW ABC *ABC ENDM

Слайд 173





.data
.data
DW  1 *1
 DW  2 *2
DW  3 *3
DW  4 *4
Описание слайда:
.data .data DW 1 *1 DW 2 *2 DW 3 *3 DW 4 *4

Слайд 174





IRPC параметр,<строка>
IRPC параметр,<строка>
Пример: IRPC RG, <ABCD>
	                PUSH RG&X
	                ENDM
Макрорасширение  :  PUSH AX
	                                  PUSH BX
	                                  PUSH CX
	                                  PUSH DX
Описание слайда:
IRPC параметр,<строка> IRPC параметр,<строка> Пример: IRPC RG, <ABCD> PUSH RG&X ENDM Макрорасширение : PUSH AX PUSH BX PUSH CX PUSH DX

Слайд 175





IF задает начало условно ассемблируемого блока , если <выражение> истинно или имеет ненулевое значение.
IF задает начало условно ассемблируемого блока , если <выражение> истинно или имеет ненулевое значение.
Формат:
IF  <выражение>
…………….
ENDIF
В выражении можно использовать операции:
EQ, NE, GT, GE, LT, LE
Описание слайда:
IF задает начало условно ассемблируемого блока , если <выражение> истинно или имеет ненулевое значение. IF задает начало условно ассемблируемого блока , если <выражение> истинно или имеет ненулевое значение. Формат: IF <выражение> ……………. ENDIF В выражении можно использовать операции: EQ, NE, GT, GE, LT, LE

Слайд 176





1. Без расширения оператора условия
1. Без расширения оператора условия
.data
BufNum dw 5
DoBuf db 0
.code 
………
if  DoBuf
mov ax, BufNum
call ReadBuf
endif
……..
Описание слайда:
1. Без расширения оператора условия 1. Без расширения оператора условия .data BufNum dw 5 DoBuf db 0 .code ……… if DoBuf mov ax, BufNum call ReadBuf endif ……..

Слайд 177





2. С расширением условного оператора
2. С расширением условного оператора
BufNum dw 5
DoBuf db 1
.code 
………
if  DoBuf                             расширяется в:
mov ax, BufNum                  mov ax, 5
call ReadBuf                         call ReadBuf
endif
……..
Описание слайда:
2. С расширением условного оператора 2. С расширением условного оператора BufNum dw 5 DoBuf db 1 .code ……… if DoBuf расширяется в: mov ax, BufNum mov ax, 5 call ReadBuf call ReadBuf endif ……..

Слайд 178





Операторы альтернативной обработки пустых операторов:
Операторы альтернативной обработки пустых операторов:
IFB <параметр>
IFNB <параметр>

Параметр всегда задается в угловых скобках и определяет имя формального аргумента макроса.
Описание слайда:
Операторы альтернативной обработки пустых операторов: Операторы альтернативной обработки пустых операторов: IFB <параметр> IFNB <параметр> Параметр всегда задается в угловых скобках и определяет имя формального аргумента макроса.

Слайд 179





Пример макроопределения:
Пример макроопределения:
PRINT_T MACRO MSG
	IFB <MSG>
		MOV SI, DEFMSG
	ELSE
		MOV SI, MSG
	ENDIF
		CALL SHOW_T
ENDM
………..
DEFMSG db ‘no’
Описание слайда:
Пример макроопределения: Пример макроопределения: PRINT_T MACRO MSG IFB <MSG> MOV SI, DEFMSG ELSE MOV SI, MSG ENDIF CALL SHOW_T ENDM ……….. DEFMSG db ‘no’

Слайд 180





POPREGS  MACRO REG1, REG2
POPREGS  MACRO REG1, REG2
	IFNB <REG1>
		POP REG1
	ENDIF
	IFNB <REG2>
		POP REG2
	ENDIF
ENDM
Описание слайда:
POPREGS MACRO REG1, REG2 POPREGS MACRO REG1, REG2 IFNB <REG1> POP REG1 ENDIF IFNB <REG2> POP REG2 ENDIF ENDM

Слайд 181





IF1
IF1
IF2
Пример:   IF1 INCLUDE TEXTMACRO.TXT
Ассемблирование, если символическое имя определено:
IFDEF символическое имя
Пример: IFDEF SIZE 
BUF db SIZE DUP(?)
                              endif
Описание слайда:
IF1 IF1 IF2 Пример: IF1 INCLUDE TEXTMACRO.TXT Ассемблирование, если символическое имя определено: IFDEF символическое имя Пример: IFDEF SIZE BUF db SIZE DUP(?) endif

Слайд 182





Ассемблирование, если параметры различны: 
Ассемблирование, если параметры различны: 
IFDIF <параметр1><параметр2>
Ассемблирование, если параметры тождественны:
IFIDN <параметр1><параметр2>
Описание слайда:
Ассемблирование, если параметры различны: Ассемблирование, если параметры различны: IFDIF <параметр1><параметр2> Ассемблирование, если параметры тождественны: IFIDN <параметр1><параметр2>

Слайд 183





& - операция замещения    
& - операция замещения    
 ;; - подавление комментария
% - вычисление выражения      
 ! - операция литерального ввода символа      
 <> - операция литерального ввода строки
Описание слайда:
& - операция замещения & - операция замещения ;; - подавление комментария % - вычисление выражения ! - операция литерального ввода символа <> - операция литерального ввода строки

Слайд 184





1. Операция замещения 
1. Операция замещения 
   Формат: & имя  параметра
	Пример:
makemsg MACRO str, n
      msg&n db ‘&str’
      endm
  	
Вызов макроса:
    	 makemsg  <Введите значение:>,5 
Расширение:
msg5 db ‘Введите значение:’
Описание слайда:
1. Операция замещения 1. Операция замещения Формат: & имя параметра Пример: makemsg MACRO str, n msg&n db ‘&str’ endm Вызов макроса: makemsg <Введите значение:>,5 Расширение: msg5 db ‘Введите значение:’

Слайд 185





 3. Вычисление выражения 
 3. Вычисление выражения 
Формат:     %выражение
	Пример: makemsg <строка>,%3+5 
4. Операция литерального ввода символа  
Формат:    !символ 
 	Пример: makemsg <нельзя вводить число!>100>,3
5. Операция литерального ввода строки 
Формат:     <строка>
Описание слайда:
3. Вычисление выражения 3. Вычисление выражения Формат: %выражение Пример: makemsg <строка>,%3+5 4. Операция литерального ввода символа Формат: !символ Пример: makemsg <нельзя вводить число!>100>,3 5. Операция литерального ввода строки Формат: <строка>

Слайд 186






Директивы управления листингом.
Упрощенные директивы TASM.
Модели памяти.
Этапы разработки программы.
Отладчик Turbo Debugger (td).
Описание слайда:
Директивы управления листингом. Упрощенные директивы TASM. Модели памяти. Этапы разработки программы. Отладчик Turbo Debugger (td).

Слайд 187





lall;
lall;
xall;
sall.
Описание слайда:
lall; lall; xall; sall.

Слайд 188





	model [модификатор] модель памяти [имя кодового сегмента]
	model [модификатор] модель памяти [имя кодового сегмента]
Модификатор: use16, use32, dos
Tasm создает идентификаторы: @code, @data, @stack, ….
Упрощенные директивы определяют сегменты:
.code   - кода
 .stack  - стека 
 .data   - инициированных данных типа near
.fardata - инициированных данных типа far
.const – постоянных данных
.data? - неинициированных данных типа near
Описание слайда:
model [модификатор] модель памяти [имя кодового сегмента] model [модификатор] модель памяти [имя кодового сегмента] Модификатор: use16, use32, dos Tasm создает идентификаторы: @code, @data, @stack, …. Упрощенные директивы определяют сегменты: .code - кода .stack - стека .data - инициированных данных типа near .fardata - инициированных данных типа far .const – постоянных данных .data? - неинициированных данных типа near

Слайд 189





tiny
tiny
small
medium
compact
large
huge
Описание слайда:
tiny tiny small medium compact large huge

Слайд 190


Лекции по программированию на ассемблере, слайд №190
Описание слайда:

Слайд 191





tasm   имя_исх._модуля   [, имя_объектного_модуля]
tasm   имя_исх._модуля   [, имя_объектного_модуля]
	[, имя_lst] [, имя_crf]   [опции]
		tasm имя , , ,
		tasm имя /l /c
tlink список объектных модулей [, имя_exe_файла]
	[, имя_ map_файла]  [, список lib_файлов]  [опции]
debug  или td
 Для td:
tasm /zi имя_исходного модуля
tlink /v имя_объектного модуля
Описание слайда:
tasm имя_исх._модуля [, имя_объектного_модуля] tasm имя_исх._модуля [, имя_объектного_модуля] [, имя_lst] [, имя_crf] [опции] tasm имя , , , tasm имя /l /c tlink список объектных модулей [, имя_exe_файла] [, имя_ map_файла] [, список lib_файлов] [опции] debug или td Для td: tasm /zi имя_исходного модуля tlink /v имя_объектного модуля

Слайд 192





	Назначение и требования к программе;
	Назначение и требования к программе;
	представление исходных данных и результатов;
	структура входных и выходных данных;
	ограничения и допущения на исходные и выходные данные.
Описание слайда:
Назначение и требования к программе; Назначение и требования к программе; представление исходных данных и результатов; структура входных и выходных данных; ограничения и допущения на исходные и выходные данные.

Слайд 193






 	формулировка ассемблерной модели задачи;
выбор метода реализации;
	разработка алгоритма реализации;
	разработка структуры программы в соответствии с моделью памяти.
Описание слайда:
формулировка ассемблерной модели задачи; выбор метода реализации; разработка алгоритма реализации; разработка структуры программы в соответствии с моделью памяти.

Слайд 194






уточнение структуры данных и определение ассемблерного представления формата;
программирование;
комментирование текста программы и составление предварительного описания программы.
Описание слайда:
уточнение структуры данных и определение ассемблерного представления формата; программирование; комментирование текста программы и составление предварительного описания программы.

Слайд 195






составление тестов для проверки правильности работы программы;
обнаружение, локализация и устранение ошибок в программе, выявленных в тестах;
корректировка кода программы и описания.
Описание слайда:
составление тестов для проверки правильности работы программы; обнаружение, локализация и устранение ошибок в программе, выявленных в тестах; корректировка кода программы и описания.

Слайд 196






настройка программы на конкретные условия использования;
обучение пользователей работе с программой;
сбор сведений о сбоях в работе программы;
модификация программы.
Описание слайда:
настройка программы на конкретные условия использования; обучение пользователей работе с программой; сбор сведений о сбоях в работе программы; модификация программы.

Слайд 197





Для работы в Turbo Debugger (td) необходимо создать загрузочный модуль:
Для работы в Turbo Debugger (td) необходимо создать загрузочный модуль:
tasm /zi имя
tlink /v  имя
Управление  работой в отладчике ведется посредством меню двух типов:
глобальное (вызов по F10);
локальное (вызов по Alt-F10 или правой кнопкой мыши).
Описание слайда:
Для работы в Turbo Debugger (td) необходимо создать загрузочный модуль: Для работы в Turbo Debugger (td) необходимо создать загрузочный модуль: tasm /zi имя tlink /v имя Управление работой в отладчике ведется посредством меню двух типов: глобальное (вызов по F10); локальное (вызов по Alt-F10 или правой кнопкой мыши).

Слайд 198





Используется один из четырех режимов:
Используется один из четырех режимов:
безусловное выполнение (F9);
по шагам:
а) F7: Run|Trace into -  c пошаговым выполнением процерур и прерываний;
б) F8: Run|Trace over - процеруры и прерывания выполняются как одна команда;
до текущего положения курсора (F4);
с установкой точек прерывания (breakpoints).
Описание слайда:
Используется один из четырех режимов: Используется один из четырех режимов: безусловное выполнение (F9); по шагам: а) F7: Run|Trace into - c пошаговым выполнением процерур и прерываний; б) F8: Run|Trace over - процеруры и прерывания выполняются как одна команда; до текущего положения курсора (F4); с установкой точек прерывания (breakpoints).

Слайд 199





Сначала устанавливаются точки прерывания курсором и F2, 
Сначала устанавливаются точки прерывания курсором и F2, 
затем – F9.
Прервать выполнение программы – Ctrl+F2
Описание слайда:
Сначала устанавливаются точки прерывания курсором и F2, Сначала устанавливаются точки прерывания курсором и F2, затем – F9. Прервать выполнение программы – Ctrl+F2

Слайд 200


Лекции по программированию на ассемблере, слайд №200
Описание слайда:

Слайд 201


Лекции по программированию на ассемблере, слайд №201
Описание слайда:

Слайд 202


Лекции по программированию на ассемблере, слайд №202
Описание слайда:

Слайд 203






Подсистема ввода/вывода
Описание слайда:
Подсистема ввода/вывода



Похожие презентации
Mypresentation.ru
Загрузить презентацию