Презентация Лекции по программированию на ассемблере онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Лекции по программированию на ассемблере абсолютно бесплатно. Урок-презентация на эту тему содержит всего 203 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Лекции по программированию на ассемблере
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:203 слайда
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:1.68 MB
- Просмотров:80
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
![Тищенко В.И. Учебное пособие](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img1.jpg)
Содержание слайда: Тищенко В.И. Учебное пособие по курсу «Системное программирование»;
Тищенко В.И. Учебное пособие по курсу «Системное программирование»;
Тищенко В.И. Лабораторный практикум по курсу «Системное программирование»;
Тищенко В.И. Лабораторный практикум «Разработка оверлейных и резидентных программ»;
Юров В. Ассемблер – учебник;
Юров В. Ассемблер – практикум.
№4 слайд
![Машинный язык](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img3.jpg)
Содержание слайда: Машинный язык программирования – это язык, непосредственно воспринимаемый компьютером.
Машинный язык программирования – это язык, непосредственно воспринимаемый компьютером.
Каждая его команда интерпретируется аппаратурой ЭВМ.
Машинная команда имеет структуру вида:
код операции, операнд1, операнд2
Операнды - это данные или адреса, над которыми будет выполняться действие, определенное кодом операции.
Структура данных в оперативной памяти называется форматим данных.
№7 слайд
![с развитием аппаратных](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img6.jpg)
Содержание слайда: с развитием аппаратных средств появились:
функции ввода-вывода,
поддержка файловой системы,
взаимодействие с операционной системой;
с развитием аппаратных средств появились:
функции ввода-вывода,
поддержка файловой системы,
взаимодействие с операционной системой;
с усложнением задач:
поддержка подпрограмм,
механизм передачи параметров (основа для методологии структурного программирования);
№8 слайд
![возможность создания больших](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img7.jpg)
Содержание слайда: возможность создания больших программ на основе подпрограмм изменили архитектуру языков и подход к компоновке программ (механизм раздельной трансляции программ и понятие модульности);
возможность создания больших программ на основе подпрограмм изменили архитектуру языков и подход к компоновке программ (механизм раздельной трансляции программ и понятие модульности);
абстракция данных, типизация и модульность – основа технологии объектно-ориентированного программирования;
появление среды Windows породило технологию визуального программирования.
№13 слайд
![Электронное устройство,](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img12.jpg)
Содержание слайда: Электронное устройство, предназначенное для временного хранения информации, называется регистром.
Электронное устройство, предназначенное для временного хранения информации, называется регистром.
Расположены на кристалле МП. Характеризуются размером:
8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные.
№18 слайд
![системных системных](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img17.jpg)
Содержание слайда: 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.
№23 слайд
![Младший байт записывается в](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img22.jpg)
Содержание слайда: Младший байт записывается в ячейку с меньшим адресом, старший – в ячейку с адресом на 1 больше.
Младший байт записывается в ячейку с меньшим адресом, старший – в ячейку с адресом на 1 больше.
Пример:
пусть число 1234h размещено с адреса 1927:0000, т.е. занимает ф.а. 19270h и 19271h.
Тогда цифры 34h – по адресу 19270h,
а 12h – по адресу 19271h.
№26 слайд
![ip указатель команд, ip](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img25.jpg)
Содержание слайда: ip – указатель команд,
ip – указатель команд,
регистр флагов.
Указатель команд - содержит смещение следующей команды.
Методы изменения порядка выполнения команд:
последовательный порядок команд,
переход внутри сегмента (near – переход),
переход в другой сегмент (far – переход).
№34 слайд
![регистров данных длиной бит.](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img33.jpg)
Содержание слайда: 8 регистров данных длиной 80 бит.
8 регистров данных длиной 80 бит.
Оперирует 7 типами данных:
3 типа целых (слово 16 бит, короткое целое 32 бита, длинное целое 64 бита);
3 типа вещественных (короткое 32 бита, длинное 64 бита, временное 80 бит):
знак, характеристика, мантисса
1 бит 8, 11 или 15 бит 23, 52 или 64 бита;
Упакованные двоично-десятичные числа.
№42 слайд
![Смещение, которое вычисляется](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img41.jpg)
Содержание слайда: Смещение, которое вычисляется аппаратно для доступа к операнду в памяти, называется исполнительным (эффективным) адресом (EA)
Смещение, которое вычисляется аппаратно для доступа к операнду в памяти, называется исполнительным (эффективным) адресом (EA)
.data
ABC dw 1234h
.code
……….
mov bx, offset ABC
mov ax,[bx]
Для вычисления адреса операнда по умолчанию используется сегментный регистр - ds
№45 слайд
![Эффективный адрес ЕА](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img44.jpg)
Содержание слайда: Эффективный адрес ЕА вычисляется:
Эффективный адрес ЕА вычисляется:
Пример: задан массив записей, каждая запись состоит из 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 слайд
![Для адресации по базе с](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img45.jpg)
Содержание слайда: Для адресации по базе с индексированием возможны следующие комбинации регистров:
Для адресации по базе с индексированием возможны следующие комбинации регистров:
[bx][si] +сдвиг совместно с регистром ds
[bx][di] +сдвиг совместно с регистром ds
[bp][si] +сдвиг совместно с регистром ss
[bp][di] +сдвиг совместно с регистром ss
Используеются разные формы записи операнда:
[bx][di] +4, [bx+di] +4, [bx+di+4 ]
№50 слайд
![Принцип хранимой программы](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img49.jpg)
Содержание слайда: Принцип хранимой программы
(Джона фон Неймана) – код программы и данные хранятся в оперативной памяти (ОП).
Принцип хранимой программы
(Джона фон Неймана) – код программы и данные хранятся в оперативной памяти (ОП).
Принцип микропрограммирования – для каждой команды есть набор действий- сигналов, генерируемых для ее выполнения.
Принцип адресности – пространство ОП линейно, т.е. совокупность последовательно пронумерованных ячеек памяти. Номер ячейки – ее адрес (0,1,2,…).
Принцип программного управления – последовательное выполнение команд программы. Для изменения порядка выполнения используются специальные команды.
№51 слайд
![. Принцип однородности памяти](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img50.jpg)
Содержание слайда: 5. Принцип однородности памяти – для процессора нет принципиальной разницы между данными и командами. Над командами можно выполнять такие же действия как и над данными.
5. Принцип однородности памяти – для процессора нет принципиальной разницы между данными и командами. Над командами можно выполнять такие же действия как и над данными.
6. Принцип двоичного кодирования – необходимо четко разделять пространство данных и команд, т.к. процессор трактует двоичную информацию в зависимости от назначения адресного пространства .
7. Принцип безразличие к целевому назначению данных – процессору не важна логическая назрузка обрабатываемых данных.
№54 слайд
![Располагается между основной](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img53.jpg)
Содержание слайда: Располагается между основной памятью и процессором.
Располагается между основной памятью и процессором.
Основное назначение - улучшение эффективной скорости взаимодействия с памятью и увеличение быстродействия процессора.
Подразделяется на кеш I уровня (на кристалле) и кеш II уровня (на кристалле или вне его).
№55 слайд
![Предвосхищение наиболее](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img54.jpg)
Содержание слайда: Предвосхищение наиболее вероятного использования процессором данных из ОП путем их копирования в кеш-память.
Предвосхищение наиболее вероятного использования процессором данных из ОП путем их копирования в кеш-память.
Данные передаются блоками, состоящими из нескольких слов.
Среднее время доспупа к кеш – памяти:
в 3 раза быстрее, чем к ОЗУ,
в 10 раз быстрее, чем к ПЗУ.
№56 слайд
![Физическая память, к которой](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img55.jpg)
Содержание слайда: Физическая память, к которой МП имеет доступ по шине адреса, называется ОП.
Физическая память, к которой МП имеет доступ по шине адреса, называется ОП.
Выполнена ОП на дешевых и медленно действующих полупроводниковых устройствах.
Реально реализована как последовательность ячеек – байтов. Каждому байту соответствует уникальный адрес, называемый физическим.
№59 слайд
![Сегментация механизм](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img58.jpg)
Содержание слайда: Сегментация – механизм адресации, обеспечивающий существование нескольких независимых адресных пространств (как в пределах одной задачи, так и в системе в целом) для защиты от взаимного влияния.
Сегментация – механизм адресации, обеспечивающий существование нескольких независимых адресных пространств (как в пределах одной задачи, так и в системе в целом) для защиты от взаимного влияния.
Сегмент – независимый, поддерживаемый на аппаратном уровне блок памяти.
Программно возможен непосредственный доступ только к 4(6) сегментам. Каждый сегмент имеет специальное назначение.
№60 слайд
![Первоначально начальные](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img59.jpg)
Содержание слайда: Первоначально начальные физические адреса сегментов программы неизвестны.
Первоначально начальные физические адреса сегментов программы неизвестны.
ОС распределяет память и помещает адреса:
в реальном режиме - в сегментные регистры;
в защищенном – в специальную дескрипторную таблицу.
Под физическим (линейным) адресом понимается адрес, выдаваемый на шину адреса.
№64 слайд
![Постоянные или](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img63.jpg)
Содержание слайда: Постоянные или непосредственные (число, строка): 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,](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img64.jpg)
Содержание слайда: Операторы сравнения: 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
№70 слайд
![mod reg коп r m mod reg коп r](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img69.jpg)
Содержание слайда: | mod | reg/коп | r/m |
| mod | reg/коп | r/m |
Поле mod – 2 бита, кодировка:
00 – индексное смещение отсутствует;
01 – смещение занимает 1 байт;
10 - смещение занимает 2 байта;
11 – поле r/m определяет регистр.
Поля reg и r/m имеют длину по 3 бита.
Определяют регистр и способ адресации.
№72 слайд
![При регистровой адресации](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img71.jpg)
Содержание слайда: При регистровой адресации поле mod = 11, а в поле r/m - код второго регистра.
При регистровой адресации поле mod = 11, а в поле r/m - код второго регистра.
Для прямой адресации поле mod = 00, r/m=110 и за байтом mod r/m стоят 2 байта, указывающих смещение прямого адреса.
№85 слайд
![Выполняют обмен информации](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img84.jpg)
Содержание слайда: Выполняют обмен информации между регистрами, ячейками памяти и портами ввода-вывода:
Выполняют обмен информации между регистрами, ячейками памяти и портами ввода-вывода:
a) команды пересылки данных (mov, lea, xchg);
пример:
mov bx,offset abc
lea bx,abc
xchg ax,bx
б) стековые операции (push, pop, pushf, popf).
Пример: push ds
pop es
№86 слайд
![Стек это область оперативной](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img85.jpg)
Содержание слайда: Стек – это область оперативной памяти, специально выделенная для временного хранения данных программы.
Стек – это область оперативной памяти, специально выделенная для временного хранения данных программы.
Работает по принципу LIFO в сторону уменьшения адресов.
Используются 3 регистра:
ss - сегментный регистр,
sp – указатель стека,
bp – указатель базы кадра стека.
№88 слайд
![рush запись значения в](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img87.jpg)
Содержание слайда: р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 загрузка содержимого](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img88.jpg)
Содержание слайда: рushf – загрузка содержимого регистра флагов в вершину стека:
рushf – загрузка содержимого регистра флагов в вершину стека:
sp=(sp)-2;
Запись содержимого регистра флагов по адресу ss:sp.
рopf – извлечение информации из вершины стека и загрузка в регистр флагов:
извлечение операнда по адресу ss:sp;
sp=(sp)+2;
загрузка в регистр флагов.
№93 слайд
![Типы адресов short, near, far](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img92.jpg)
Содержание слайда: Типы адресов: short, near, far
Типы адресов: short, near, far
Существует 4 способа передачи управления.
Команды перехода Длина смещения
безусловного перехода: jmp 2, 4 байта
условного перехода: j xxx 1 байт
перехода с вызовом процедур: call 2, 4 байта
управления циклами: loop 1 байт
Пример: jmp short label
№94 слайд
![Если относительный адрес](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img93.jpg)
Содержание слайда: Если относительный адрес перехода превышает 128 б, то меняют команду (а) на две команды (в):
Если относительный адрес перехода превышает 128 б, то меняют команду (а) на две команды (в):
а) в)
cmp dl,’а’ cmp dl,’а’
jz zero jnz continue
continue: jmp zero
………. Continue:
zero: ………
……….. Zero:
№96 слайд
![Использует значение регистра](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img95.jpg)
Содержание слайда: Использует значение регистра CX, уменьшает его при каждом шаге на 1 и проверяет на 0.
Использует значение регистра CX, уменьшает его при каждом шаге на 1 и проверяет на 0.
Если не равно 0, то переход по адресу операнда.
mov cx,10
mov ax,0
abc: inc ax
………
loop abc
ddd: ……..
№98 слайд
![Установить флаг df командами](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img97.jpg)
Содержание слайда: Установить флаг df командами cld (по возрастанию) или std (по убыванию);
Установить флаг df командами cld (по возрастанию) или std (по убыванию);
Загрузить адреса цепочек в ds:si и es:di;
Загрузить в cx количество элементов для обработки;
Выполнить команду (например, movsw)
с префиксом rep:
rep movsw
№101 слайд
![Прерывание это сигнал,](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img100.jpg)
Содержание слайда: Прерывание – это сигнал, заставляющий микропроцессор менять обычный порядок исполнения команд.
Прерывание – это сигнал, заставляющий микропроцессор менять обычный порядок исполнения команд.
Прерывание называется ситуация, приводящая к временному или окончательному прекращению выполнения команд одной программы и переходу к другой программе.
№102 слайд
![Механизм прерываний](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img101.jpg)
Содержание слайда: Механизм прерываний обеспечивает эффективное взаимодействие устройств ввода-вывода с микропроцессором.
Механизм прерываний обеспечивает эффективное взаимодействие устройств ввода-вывода с микропроцессором.
Обработка прерываний – это прерогатива программирования на ассемблере.
Микропроцессор может распознать 256 типов прерываний.
Для каждого типа разработана своя программа обработки, называемая обработчиком прерываний.
№103 слайд
![Адрес программы обработки](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img102.jpg)
Содержание слайда: Адрес программы обработки прерывания конкретного типа называется вектором прерываний. Размер – 4 байта: сегмент:смещение
Адрес программы обработки прерывания конкретного типа называется вектором прерываний. Размер – 4 байта: сегмент:смещение
Все векторы собраны в таблицу векторов прерываний.
Размер таблицы 4*256=1024 байта.
Расположена в младших адресах памяти.
№108 слайд
![Векторы прерываний](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img107.jpg)
Содержание слайда: Векторы прерываний микропроцессора
(деление на 0, переполнение);
Векторы прерываний микропроцессора
(деление на 0, переполнение);
Векторы прерываний микроконтроллера
( системный таймер, клавиатура, гибкий диск);
Входные точки процедур системы BIOS
(обмен данными с клавиатурой, дисплеем, …);
Вызов процедур пользователя;
Указатели системных таблиц (параметры гибкого и жесткого дисков).
№110 слайд
![Номер функции задают в](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img109.jpg)
Содержание слайда: Номер функции задают в регистре ah, дополнительную информацию через другие регистры, например, ds:dx.
Номер функции задают в регистре ah, дополнительную информацию через другие регистры, например, ds:dx.
Выходная информация выдается через регистр al или другие регистры.
№113 слайд
![Входные данные Входные данные](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img112.jpg)
Содержание слайда: Входные данные:
Входные данные:
ah – 3ch,
ds:dx - адрес ASCIIZ-строки с именем файла,
cx - атрибут файла: 0 – обычный.
Выходные данные:
если cf=0, то в ax - логический номер файла
(дескриптор файла),
если cf=1, то в ax - код ошибки:
3 – нет указанного пути,
4 – нет свободного дескриптора, 5 – отказано в доступе.
№119 слайд
![Входные данные Входные данные](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img118.jpg)
Содержание слайда: Входные данные:
Входные данные:
cx - атрибут файла, 0- для обычного файла,
bx – режим доступа, 2 – чтение-запись;
dx – 1 - для существующего файла открыть доступ, 10h – создать и открыть;
ds:si - адрес ASCIIZ-строки с именем файла.
Выходные данные:
ax - логический номер файла.
№122 слайд
![.data .data handle dw](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img121.jpg)
Содержание слайда: .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 ; переход, если существует
№126 слайд
![Область памяти, начинающаяся](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img125.jpg)
Содержание слайда: Область памяти, начинающаяся с минимального адреса загрузки программы пользователя, называется программным сегментом.
Область памяти, начинающаяся с минимального адреса загрузки программы пользователя, называется программным сегментом.
Этот адрес определяется при вызове программы, т.е. при выполнении операции OS - EXEC.
Программный сегмент состоит из:
префикса программного сегмента (PSP),расположенного по смещению 0000;
тела загрузочного модуля
(по смещению 0100h).
№128 слайд
![Прерывания Прерывания h](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img127.jpg)
Содержание слайда: Прерывания :
Прерывания :
22h – завершение процесса;
23h – нажатие клавиш Ctrl+Break;
24h – фатальная ошибка.
Область сохранения вектора имеет вид:
2 байта – смещение, 2 байта –сегмент.
Адрес среды - занимает 2 байта , задается сегментным адресом.
Вызов диспетчера функций DOS (5 байт):
call – 1 б, адрес обработчика - 4 б ( смещение, сегмент).
Номер функции выбирается из регистра ah.
№130 слайд
![DTA Disk Transfer Area](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img129.jpg)
Содержание слайда: DTA (Disk Transfer Area) –рабочий буфер обмена с диском.
DTA (Disk Transfer Area) –рабочий буфер обмена с диском.
Содержит символы командной строки после имени программы, включая все пробелы, разделители и код 0dh.
Пример вызова программы в командной строке: abc.exe bbbbb 5
Содержимое dta: 20424242424220350d
При нажатии клавиши Enter в DTA записывается код 0dh.
Максимальная длина командной строки 140 байт.
№135 слайд
![DS, ES указывают на начало](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img134.jpg)
Содержание слайда: DS, ES указывают на начало PSP;
DS, ES указывают на начало PSP;
IP, SP получают значения, указанные при редактировании программы в заголовке загрузочного модуля;
CS, SS, получают значения из заголовка загрузочного модуля, модифицированные на адрес начала программного сегмента.
№140 слайд
![Команды dos обеспечивают](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img139.jpg)
Содержание слайда: Команды dos обеспечивают пользовательским программам интерфейс высокого уровня.
Включают операции :
Команды dos обеспечивают пользовательским программам интерфейс высокого уровня.
Включают операции :
управления файлами;
распределения оперативной памяти;
блочного обмена с дисками;
управления двигателем нгмд и др.
№141 слайд
![Состоит из трех частей](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img140.jpg)
Содержание слайда: Состоит из трех частей:
Состоит из трех частей:
резидентной;
инициализации;
нерезидентной.
содержит подпрограммы обработки прерваний (22h, 23h, 24h ) и подзагрузки нерезидентной части.
включает обработку файла autoexec.bat и определяет начальный адрес загрузки программы пользователя.
№143 слайд
![таблица векторов прерываний](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img142.jpg)
Содержание слайда: 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
№148 слайд
![Директивы segment и ends](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img147.jpg)
Содержание слайда: Директивы segment и ends – определяют в программе начало и конец сегмента.
Директивы segment и ends – определяют в программе начало и конец сегмента.
Формат директив:
имя segment [тип подгонки,] [тип связи,]‘класс’, длина адреса
Например, АВС segment para public ‘code’,use16
………
АВС ends
№150 слайд
![Формат имя proc атрибут](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img149.jpg)
Содержание слайда: Формат: имя proc [атрибут дальности]
Формат: имя proc [атрибут дальности]
………..
ret
имя endp
Атрибут дальности: near или far
Пример: .code
startАВС proc near
………….
ret
startАВС endp
Механизм вызова – сохранение контекста программы в стеке.
Контекст программы – это информация о состоянии программы в точке вызова процедуры.
№151 слайд
![Пусть АВС - имя процедуры](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img150.jpg)
Содержание слайда: Пусть АВС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 имя делает указанное](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img151.jpg)
Содержание слайда: public имя – делает указанное имя доступным для других программных модулей, которые впоследствии могут загружаться вместе с данным модулем.
public имя – делает указанное имя доступным для других программных модулей, которые впоследствии могут загружаться вместе с данным модулем.
extrn имя: тип - описывает идентификатор, определенный в другом модуле и описанный там в операторе public.
Тип для данных: byte, word, dword
Тип для процедур: near, far
include имяфайла - вставка в текущий файл текста из файла
№159 слайд
![Поименованный набор](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img158.jpg)
Содержание слайда: Поименованный набор операторов ассемблера называется макрокомандой.
Поименованный набор операторов ассемблера называется макрокомандой.
Группа команд, определяющая действие макрокоманды, называется макроопределением.
Процесс включения в исходный текст программы команд из макроопределения называется макрорасширением или макрогенерацией.
№163 слайд
![Вызов макрокоманды](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img162.jpg)
Содержание слайда: Вызов макрокоманды осуществляется по имени макроса с указанием списка фактических параметров.
Вызов макрокоманды осуществляется по имени макроса с указанием списка фактических параметров.
Процесс замены формального параметра соответствующим фактическим значением при макрорасширении называется подстановкой аргументов.
№175 слайд
![IF задает начало условно](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img174.jpg)
Содержание слайда: IF задает начало условно ассемблируемого блока , если <выражение> истинно или имеет ненулевое значение.
IF задает начало условно ассемблируемого блока , если <выражение> истинно или имеет ненулевое значение.
Формат:
IF <выражение>
…………….
ENDIF
В выражении можно использовать операции:
EQ, NE, GT, GE, LT, LE
№188 слайд
![model модификатор модель](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img187.jpg)
Содержание слайда: model [модификатор] модель памяти [имя кодового сегмента]
model [модификатор] модель памяти [имя кодового сегмента]
Модификатор: use16, use32, dos
Tasm создает идентификаторы: @code, @data, @stack, ….
Упрощенные директивы определяют сегменты:
.code - кода
.stack - стека
.data - инициированных данных типа near
.fardata - инициированных данных типа far
.const – постоянных данных
.data? - неинициированных данных типа near
№191 слайд
![tasm имя исх. модуля , имя](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img190.jpg)
Содержание слайда: tasm имя_исх._модуля [, имя_объектного_модуля]
tasm имя_исх._модуля [, имя_объектного_модуля]
[, имя_lst] [, имя_crf] [опции]
tasm имя , , ,
tasm имя /l /c
tlink список объектных модулей [, имя_exe_файла]
[, имя_ map_файла] [, список lib_файлов] [опции]
debug или td
Для td:
tasm /zi имя_исходного модуля
tlink /v имя_объектного модуля
№197 слайд
![Для работы в Turbo Debugger](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img196.jpg)
Содержание слайда: Для работы в Turbo Debugger (td) необходимо создать загрузочный модуль:
Для работы в Turbo Debugger (td) необходимо создать загрузочный модуль:
tasm /zi имя
tlink /v имя
Управление работой в отладчике ведется посредством меню двух типов:
глобальное (вызов по F10);
локальное (вызов по Alt-F10 или правой кнопкой мыши).
№198 слайд
![Используется один из четырех](/documents_6/a00bc3cf72f3df074920d6ba00337a1b/img197.jpg)
Содержание слайда: Используется один из четырех режимов:
Используется один из четырех режимов:
безусловное выполнение (F9);
по шагам:
а) F7: Run|Trace into - c пошаговым выполнением процерур и прерываний;
б) F8: Run|Trace over - процеруры и прерывания выполняются как одна команда;
до текущего положения курсора (F4);
с установкой точек прерывания (breakpoints).
Скачать все slide презентации Лекции по программированию на ассемблере одним архивом:
Похожие презентации
-
Базовые типы данных языков программирования высокого уровня. Лекция 3
-
Основы программирование: Введение в Java. Коллекции
-
Динамическое программирование. Лекция 20
-
Программирование. Лекция 3
-
Программирование. Лекция 4
-
Параллельное программирование с использованием OpenMP. Лекция 2
-
Параллельное программирование с использованием OpenMP. Лекция 1
-
Связи между классами. Объектно-ориентированное программирование. (Лекция 3)
-
Основы объектно-ориентированного программирования. (Лекция 1)
-
Операционная система Windows. Программирование с использованием средств Win32 API. (Лекция 2)