Разделы презентаций


Системное программирование Лекция №2 Основы разработки программы на ассемблере

Содержание

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

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

Слайд 1Системное программирование
Лекция №2



Основы разработки программы на ассемблере




Системное программированиеЛекция №2Основы разработки программы на ассемблере

Слайд 2Системное программирование
Программа на ассемблере: совокупность блоков памяти, называемых сегментами. Сегменты

программы: кода, данных и стека. Каждый сегмент состоит из совокупности

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

Слайд 3Системное программирование
Предложения, составляющие программу, могут представлять собой синтаксические конструкции четырех

типов:
Команды (инструкции) - символические аналоги машинных команд. В процессе трансляции

инструкции ассемблера преобразуются в соответствующие команды системы команд процессора.
Макрокоманды — это оформляемые определенным образом предложения текста программы, замещаемые во время трансляции другими предложениями.
Директивы являются указанием транслятору ассемблера на выполнение некоторых действий. У директив нет аналогов в машинном представлении.
Комментарии содержат любые символы, в том числе и буквы русского алфавита. Комментарии игнорируются транслятором.
Системное программированиеПредложения, составляющие программу, могут представлять собой синтаксические конструкции четырех типов:Команды (инструкции) - символические аналоги машинных команд.

Слайд 4Программы на ассемблере

Программы на ассемблере

Слайд 5Программы на ассемблере

Программы на ассемблере

Слайд 6Программы на ассемблере

Программы на ассемблере

Слайд 7Программы на ассемблере
Имя метки — символьный идентификатор. Значение -

адрес первого байта этого предложения.
Префикс — символическое обозначение элемента машинной

команды, предназначенного для изменения стандартного действия следующей за ним команды ассемблера.
Имя — идентификатор, отличающий данную директиву от других одноименных директив.
Код операции (КОП) и директива — это мнемонические обозначения соответствующей машинной команды, макрокоманды или директивы транслятора.
Операнды — части команды, макрокоманды или директивы ассемблера, обозначающие объекты, над которыми производятся действия.

Программы на ассемблереИмя метки — символьный идентификатор. Значение -  адрес первого байта этого предложения.Префикс — символическое

Слайд 8 ; Prg_6_l.asm
;Программа преобразования двузначного шестнадцатеричного числа

символьном виде в двоичное представление.
;Вход: исходное шестнадцатеричное число из

двух цифр,
<5> ;вводится с клавиатуры.
<б> ;Выход: результат преобразования помещается в регистр dl.
<9> data segment para public "data" ;сегмент данных
<10> message db "Введите две шестнадцатеричные цифры,$"
<11> data ends
<12> stk segment stack
<13> db 256 dup ("?") ;сегмент стека
<14> stk ends
<15> code segment para public "code" ;начало сегмента кода
<16> main proc ;начало процедуры main
<17> assume cs:code,ds:data,ss:stk
<18> mov ax,data ;адрес сегмента данных в регистр ах
<19> mov ds,ax ;ax в ds
<20> mov ah,9
<21> mov dx,offset message
<22> int 21h
<23> xor ax,ax ;очистить регистр ах
<24> mov ah,1h ;1h в регистр ah
<25> int 21h ;генерация прерывания с номером 21h

; Prg_6_l.asm 	;Программа преобразования двузначного шестнадцатеричного числа 	;в символьном виде в двоичное представление. 	;Вход: исходное шестнадцатеричное

Слайд 9 mov dl,al ;содержимое регистра al в регистр dl
sub dl,30h ;вычитание: (dl)=(dl)-30h
cmp dl,9h ;сравнить

(dl) с 9h
jle M1 ;перейти на метку M1, если dl

dl=9h
<30> sub dl,7h ;вычитание: (dl)=(dl)—7h
<31> M1: ;определение метки M1
<32> mov cl,4h ;пересылка 4h в регистр cl
<33> shl dl,cl ;сдвиг содержимого dl нa 4 разряда влево
<34> int 21h ;вызов прерывания с номером 21h
<35> sub al,30h ;вычитание: (dl)=(dl)—30h
<36> cmp al,9h ;сравнить (al) с 9h
<37> jle M2 ;перейти на метку М2, если al<9h или al=9h
<38> sub al,7h ;вычитание: (al)=(al)-7h
<39> M2: ;определение метки М2
<40> add dl,7h ;сложение: (dl)=(dl)+(al)
<41> mov ax,4c00h ;пересылка 4c00h в регистр ах
<42> int 21h ;вызов прерывания с номером 21h
<43> main endp ;конец процедуры main
<44> code ends ;конец сегмента кода
<45> end main ;конец программы с точкой входа main

mov dl,al				;содержимое регистра al в регистр dl		sub dl,30h				;вычитание: (dl)=(dl)-30h		cmp dl,9h				;сравнить (dl) с 9h		jle M1					;перейти на метку M1,

Слайд 10Программы на ассемблере
Алфавит ассемблера:
АSСII_символ_буква — все латинские буквы А -

Z, а - z, (прописные и строчные буквы считаются эквивалентными);
decdigit

— цифры от 0 до 9;
специальные знаки _ ? @ $ &;
разделители : , . [ ] ( ) < > { } + / * % ! " " ? \ = # ^


Программы на ассемблереАлфавит ассемблера:АSСII_символ_буква — все латинские буквы А - Z, а - z, (прописные и строчные

Слайд 11Программы на ассемблере
Ключевые слова — служебные символы языка ассемблера:
названия регистров

(AL, АН, BL, ВН, CL, СН, DL, ОН, АХ, ЕАХ,

ВХ, ЕВХ, СХ, ЕСХ, DX, EDX, ВР, EBP, SP, ESP, DI, EDI, SI, ESI, CS, DS, ES, FS, GS, SS, CRO, CR2, CR3, DRO, DRl, DR2, DR3, DR6, DR7);
операторы (BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD, FWORD, QWORD, TBYTE, REAL4, REALS, REAL10, NEAR16, NEAR32, FAR16, FAR32, AND, NOT, HIGH, LOW, HIGHWORD, LOWWORD, OFFSET, SEG, LROFFSET, TYPE, THIS, PTR, WIDTH, MASK, SIZE, SIZEOF, LENGTH, LENGTHOF, ST, SHORT, TYPE, OPATTR, MOD, NEAR, FAR, OR, XOR, EQ, NE, LT, LE, GT, GE, SHR, SHL);
названия команд (КОП) ассемблера, префиксов.
Программы на ассемблереКлючевые слова — служебные символы языка ассемблера:названия регистров (AL, АН, BL, ВН, CL, СН, DL,

Слайд 12Программы на ассемблере
Константы ассемблера :
1. Двоичная – последовательность из цифр

0 и 1, заканчивающаяся буквой В; например 10011001В.
2. Десятичная –

последовательность из цифр от 0 до 9, которая может заканчиваться буквой D; например 129D или 129.
3. Десятичная – последовательность из цифр от 0 до 9 и букв от А до F, заканчивающаяся буквой Н. Первым символом должна быть одна из цифр от 0 до 9; например 0Е23Н.
4. Литерал – строка букв, цифр и других символов, заключенная в кавычки или апострофы.

Программы на ассемблереКонстанты ассемблера :1. Двоичная – последовательность из цифр 0 и 1, заканчивающаяся буквой В; например

Слайд 13Программы на ассемблере

Программы на ассемблере

Слайд 14Программы на ассемблере
DB — резервирование памяти для данных размером 1

байт. Директивой DB можно задавать следующие значения:
выражение или константу, принимающую

значение из диапазона -128...+127 (для чисел со знаком) или 0...255 (для чисел без знака);
8-разрядное относительное выражение, использующее операции HIGH и LOW;
символьную строку из одного или более символов, которая заключается в кавычки (в этом случае определяется столько байтов, сколько символов в строке).

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

Слайд 15Программы на ассемблере
DW — резервирование памяти для данных размером два

байта. Директивой DW можно задавать следующие значения:
выражение или константу, принимающую

значение из диапазона -32 768...32 767 (для чисел со знаком) или 0...65 535 (для чисел без знака);
выражение, занимающее 16 или менее битов, в качестве которого может выступать смещение в 16-битовом сегменте или адрес сегмента;
1-или 2-байтовая строка, заключенная в кавычки.

Программы на ассемблереDW — резервирование памяти для данных размером два байта. Директивой DW можно задавать следующие значения:выражение

Слайд 16Программы на ассемблере
DD — резервирование памяти для данных размером четыре

байта. Директивой DD можно задавать следующие значения:
выражение или константу, принимающую

значение из диапазона -32 768...+32 767 (для чисел со знаком и процессора i8086), 0...65 535 (для чисел без знака и процессора i8086), -2 147 483 648...+2 147 483 647 (для чисел со знаком и процессора i386 и выше) или 0...4 294 967 295 (для чисел без знака и процессора i386 и выше);
относительное или адресное выражение, состоящее из 16-разрядного адреса сегмента и 16-разрядного смещения;
строку длиной до 4 символов, заключенную в кавычки.
Программы на ассемблереDD — резервирование памяти для данных размером четыре байта. Директивой DD можно задавать следующие значения:выражение

Слайд 17Программы на ассемблере
DQ — резервирование памяти для данных размером 8

байтов. Директивой DQ можно задавать следующие значения:
выражение или константу, принимающую

значение из диапазона -32 768...+32 767 (для чисел со знаком и процессора 18086), 0...65 535 (для чисел без знака и процессора i8086), -2 147 483 648...+2 147 483 647 (для чисел со знаком и процессора i386 и выше) или 0...4 294 967 295 (для чисел без знака и процессора i386 и выше);
относительное или адресное выражение, состоящее из 32 или менее битов (для i80386) или 16 или менее битов (для первых моделей процессоров Intel);
константу со знаком из диапазона -263...263- 1;
константу без знака из диапазона 0...264- 1;
строку длиной до 8 байтов, заключенную в кавычки.
Программы на ассемблереDQ — резервирование памяти для данных размером 8 байтов. Директивой DQ можно задавать следующие значения:выражение

Слайд 18Программы на ассемблере
DT — резервирование памяти для данных размером 10

байтов. Директивой DТ можно задавать следующие значения:
выражение или константу, принимающую

значение из диапазона -32 768...+32 767 (для чисел со знаком и процессора i8086), 0...65 535 (для чисел без знака и процессора i8086), -2 147 483 648...+2 147 483 647 (для чисел со знаком и процессора i386 и выше) или 0...4 294 967 295 (для чисел без знака и процессора 1386 и выше);
относительное или адресное выражение, состоящее из 32 или менее битов (для i80386) или 16 или менее битов (для первых моделей);
адресное выражение, состоящее из 16-разрядного сегмента и 32-разрядного смещения;
константу со знаком из диапазона -279...279 - 1;
константу без знака из диапазона 0...280 - 1;
строку длиной до 10 байтов, заключенную в кавычки;
упакованную десятичную константу в диапазоне 0...99 999 999 999 999 999 999.
Программы на ассемблереDT — резервирование памяти для данных размером 10 байтов. Директивой DТ можно задавать следующие значения:выражение

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика