рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ - раздел Философия, Министерство Связи И Информатизации Республики Беларусь Учр...

МИНИСТЕРСТВО СВЯЗИ И ИНФОРМАТИЗАЦИИ

РЕСПУБЛИКИ БЕЛАРУСЬ

Учреждение образования

«ВЫСШИЙ ГОСУДАРСТВЕННЫЙ КОЛЛЕДЖ СВЯЗИ»

ВИТЕБСКИЙ ФИЛИАЛ

Кафедра программного обеспечения сетей телекоммуникаций

 

 

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

Конспект лекций для учащихся специальности 2–45 01 33 – Сети телекоммуникаций

ВВЕДЕНИЕ

Рассмотрены возмож­ности использования в 16-разрядных приложениях реального режима средств современных 32-разрядных процессоров.

Пособие предназначено для учащихся специальности
2–45 01 33 – Сети телекоммуникаций дневной формы обучения, изучающих дисциплину «Основы алгоритмизации и программирования».

 


ЭТАПЫ РАЗВИТИЯ ЭВМ

Одним из первых устройств (VI—V вв. до н. э.), облегчающих вычисления, можно считать специальную доску для вычислений, названную «абак». В 1641-42 году Блез Паскаль сконструировал механический вычислитель, который… Еще одним известным человеком в истории вычислительной техники стал английский математик Чарльз Бэббидж. В 1834 году…

Поколения ЭВМ

Машины этого поколения работали на ламповой элементной базе, из-за чего потребляли огромное количество энергии и были очень ненадежны. С их помощью… 2-е поколение (1955-1964 гг.) - смену поколений определило появление новой… 3-е поколение (1965-1970 гг.) - появились интегральные микросхемы. Повысилась производительность, снизились размеры и…

МАШИННО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

В настоящее время разработаны сотни языков программирования. Обычно их разделяют на машинно-независимые и машинно-ориентированные языки. Машинно-независимый язык — язык программирования, структура и средства… Высокоуровневые языки разработаны для быстроты и удобства использования программистамии (например С++, Java, Pascal,…

АРХИТЕКТУРА ЭВМ

- структурную схему ЭВМ; - средства и способы доступа к элементам структурной схемы ПЭВМ; - организацию и разрядность интерфейсов ПЭВМ;

МИКРОПРОЦЕССОРЫ INTEL

Первые персональные компьютеры корпорации IBM, появившиеся в 1981 г. и получившие название IBM PC, использовали в качестве центрального… В 1983 г. корпорацией Intel был предложен микропроцессор 80286, в котором был… В дальнейшем на смену процессору 80286 пришли модели 80386, i486 и, наконец, различные варианты процессора Pentium.…

НАБОР РЕГИСТРОВ

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

Первые модели микропроцессоров i8086/8088 имели 14 16-разрядных регистров. Далее, начиная с i386, регистры были расширены до 32-разрядных. А последние модели (Pentium и др.) содержит гораздо большее число регистров, большинство из них 64-разрядные. Но в современных микропроцессорах можно выделить часть, предназначенную для использования в реальном режиме и практически соответствующую процессору i8086. Именно эту часть мы и будем рассматривать далее.

Регистры делятся на регистры общего назначения, сегментные регистры и регистры состояния и управления.

Регистры общего назначения

· регистры данных, их можно использовать для временного хранения данных и выполнения над ними требуемых операций. Они допускают независимое…   AX AH AL   … Рисунок 2. Регистры общего назначения

Сегментные регистры

  СS       DS       … Рисунок 3. Сегментные регистры CS – регистр сегмента кода (Code Segment). Содержит начальный адрес сегмента кода программы. Этот адрес плюс величина…

Регистры состояния и управления

IP – регистр указателя команды (Instruction Pointer). Он содержит смещение команды в сегменте кода, которая должна быть выполнена. Этот регистр…   ip     … Рисунок 4. Регистр указателя команды

ОРГАНИЗАЦИЯ ПАМЯТИ

Физическая память, к которой микропроцессор имеет доступ по шине адреса, называется оперативной памятью (ОЗУ). Оперативную память физически выполнена в виде микросхем и предназначена для временного хранения программ и данных. Оперативная память организована как последовательность ячеек – байтов. Каждому байту соответствует свой уникальный адрес (его номер), называемый физическим.

Сегментная организация памяти

Под сегментом понимается блок смежных ячеек памяти, максимальным размером 64 Кбайт и начальным или базовым адресом, находящимся на 16-байтной… Для обращения к памяти необходимо определить базу сегмента (адрес его начала)… Рисунок 6. Логические адреса

ТИПЫ ДАННЫХ

С точки зрения размерности микропроцессор аппаратно поддерживает следующие основные типы данных:   Рисунок 8. Типы данных с точки зрения размерности

Символы

Символы в компьютере храняться в виде числового кода. Наиболее распространённым является американский стандартный код для обмена информацией (ASCII). Символы могут быть управляющими (коды 0..31, 127) и видимыми (коды 32..127), остальные коды (128..255) были выделены для национальных символов и символов псевдографики.

Целые числа

Целые числа со знаком – двоичное значение, занимающие 8, 16 или 32 бита памяти Знак в этом двоичном числе содержится в 7, 15 или 31 бите соответственно. Ноль в этих битах операндов соответствует положительному числу, а единица - отрицательному. Отрицательные числа представляется в дополнительном коде. Числовые диапазоны для этого типа данных следующие:

8-разрядное целое – от –128 до +127;

16-разрядное целое – от –32768 до +32767;

32-разрядное целое – от –231 до +231 –1.

Целый тип без знака – двоичное значение без знака размером 8, 16 или 32 бита. Числовой диапазон для этого типа следующий:

8-разрядное целое – от 0 до 255;

16-разрядное целое – от 0 до 65535;

32-разрядное целое – от 0 до 232 – 1.

Указатель на память

Указатели на память бывают двух типов:

ближний тип – 32-разрядный логический адрес, представляющий собой относительное смещение в байтах от начала сегмента;

дальний тип – 48-разрядный логический адрес, состоящий из двух частей: 16-разрядной сегментной части и 32-разрядного смещения.

Цепочки

Цепочка – это некоторый непрерывный набор байтов, слов или двойных слов максимальной длиной до 4 Гбайт.

Вещественые числа

Внутреннее представление вещественных чисел достаточно сложное:   S Характеристика Нормализованная мантисса …  

ФОРМАТ КОМАНД

  0, 1, 2, 3 или 4 байта 1, 2 или 3 байта 0 или 1 байта 0 или 1 байт 0, 1, 2 или 4 байта 0, 1, 2… Рисунок 9. Общий формат машинной команды Назначения полей машинной команды:

ОБРАБОТКА ПРЕРЫВАНИЙ

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

INT тип_прерывания

- тип 0 – возникает при делении на 0 или если частное от деления превышает разрядную сетку; - тип 1 – действует в режиме “трассировки” (после выполнения каждой команды… - тип 2 – немаскируемые технические прерывания;

СИНТАКСИС АССЕМБЛЕРА

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

Алфавит ассемблера

1) все латинские буквы А - Z, а - z, причем прописные и строчные буквы считаются эквивалентными; 2) цифры от 0 до 9; 3) специальные знаки _, ?, @, $, &;

ДИРЕКТИВЫ СЕГМЕНТАЦИИ

Сегментом называется часть программы, содержащая совокупность логически однородной информации. Типичный набор сегментов программы содержит сегмент… Сегменты могут описываться в любой последовательности, и количество сегментов… Вне сегментов указываются директивы транслятора, определяющие общие особенности трансляции программы.

Упрощённые директивы сегментации

Обязательным параметром директивы MODEL является модель памяти.   Таблица 2. – Модели памяти

ДИРЕКТИВЫ РЕЗЕРВИРОВАНИЯ И ИНИЦИАЛИЗАЦИИ ДАННЫХ

В таблице 4 представлены поддерживаемые TASM директивы резервирования и инициализации данных.   Таблица 5 – Директивы инициализации и резервирования данных

Операнды

Машинные команды могут либо совсем не иметь операндов, либо иметь один или два операнда. Большинство команд требует двух операндов, один из которых… В двухоперандной машинной команде возможны следующие сочетания операндов: а) регистр — регистр;

СПОСОБЫ ЗАДАНИЯ ОПЕРАНДОВ

Прямая адресация

Прямая адресация может быть двух типов. · Относительная прямая адресация используется в командах условных переходов… jc ml ;переход на метку ml, если флаг cf = 1

Косвенная адресация

Остальные виды адресации относятся к косвенным. Слово «косвенный» в названии этих видов адресации означает, что в самой команде может находиться лишь часть эффективного адреса, а остальные его компоненты находятся в регистрах, на которые указывают своим содержимым байт mod r/m и, возможно, байт sib.

Косвенная адресация имеет следующие разновидности:

· косвенная базовая, или регистровая, адресация;

· косвенная базовая адресация со смещением;

· косвенная индексная адресация со смещением;

· косвенная базовая индексная адресация;

· косвенная базовая индексная адресация со смещением.

Косвенная базовая адресация

При косвенной базовой (регистровой) адресации эффективный адрес операнда может находиться в любом из регистров общего назначения, кроме SP и ВР (это специальные регистры для работы с сегментом стека).

Синтаксически в команде этот режим адресации выражается заключением имени регистра в квадратные скобки. К примеру, команда mov ax,[cx] помещает в регистр АХ содержимое слова по адресу сегмента данных со смещением, хранящимся в регистре СХ. Так как содержимое регистра легко изменить в ходе работы программы, данный способ адресации позволяет динамически назначить адрес операнда для некоторой машинной команды. Это очень полезно, например, для организации циклических вычислений и для работы с различными структурами данных типа таблиц или массивов.

Косвенная базовая адресация со смещением

К примеру, команда mov ax,[dx+3h] пересылает в регистр АХ слово из области памяти по адресу, определяемому содержимым DX + 3h. Команда mov…

Косвенная индексная адресация со смещением

Косвенная базовая индексная адресация

При косвенной базовой индексной адресации эффективный адрес формируется как сумма содержимого двух регистров общего назначения: базового и индексного. В качестве этих регистров могут применяться любые регистры общего назначения, при этом часто содержимое индексного регистра масштабируется. Например: mov ах,[si][dx ] В данном примере эффективный адрес второго операнда формируется из двух компонентов, (SI) + (DX).

Косвенная базовая индексная адресация со смещением

Косвенная базовая индексная адресация со смещением является дополнением косвенной индексной адресации. Эффективный адрес формируется как сумма трех составляющих: содержимого базового регистра, содержимого индексного регистра и значения поля смещения в команде. К примеру, команда mov ax,[si+5][dx] пересылает в регистр АХ двойное слово по адресу: (SI) + 5 + (DX). Команда add ax,array[si][bx] складывает содержимое регистра АХ с содержимым слова по адресу, образованному значением идентификатора array + (SI) + (ВХ).

 

ОПЕРАТОРЫ

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

 

Таблица 6. - Операторы и их приоритет

 

Оператор Приоритет
LENGTH, SIZE, WIDTH, MASK, ( , ), [ ,], <, >
.
:
PTR, OFFSET, SEG, TYPE, THIS
HIGH, LOW
+, – (унарные)
*, / , MOD, SHL, SHR
+, – (бинарные)
EQ, NE, LT, LE, GT, GE
NOT
AND
OR, XOR
SHORT, TYPE

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

§ Арифметические операторы. К ним относятся унарные операторы “+” и “–”, бинарные “+” и “–”, операторы умножения “*”, целочисленного деления “/”, получения остатка от деления “mod”.Например:

tab_size equ 50 ; размер массива в байтах

size_el equ 2 ; размер элементов

mov cx,tab_size/size_el ; вычисляется число элементов массива и заносится в регистр сх

§ Операторы сдвига выполняют сдвиг выражения на указанное количество разрядов вправо (SHR) и влево (SHL). Например:

mask_b equ 10111011

...

mov a,.mask_b shr 3 ; al=00010111

§ Операторы сравнения (возвращают значения «истина» или «ложь») предназначены для формирования логических выражений. Логическое значение «истина» соответствует логической единице, а «ложь» – логическому нулю. Логическая единица – это значение, все биты которого равны 1. Например:

tab size equ 30 ; размер таблицы

mov al, tab size ge 50 ; загрузка "ложь" в al

cmp al, 0 ; если tab size < 50, mo

je ml ; переход на ml

ml:...

В этом примере, если значение tab_size больше или равно 50, то результат в al равен 0ffh, а если tab_size меньше 50, то al равно 00h. Команда cmp сравнивает значение al с нулем и устанавливает соответствующие флаги в flаgs/eflags. Команда je на основе анализа этих флагов передает или не передает управление на метку ml.

 

Таблица 7. – Операторы сравнения

 

Оператор Значение
EQ ИСТИНА, если выражение 1 равно выражению 2
NE ИСТИНА, если выражение 1 не равно выражению 2
LT ИСТИНА, если выражение 1 меньше выражению 2
LE ИСТИНА, если выражение1 меньше или равно выражению2
GT ИСТИНА, если выражение 1 больше выражения 2
GE ИСТИНА, если выражение 1 больше или равно выражению 2

 

§ Логические операторы (and, or, xor) выполняют побитовые операции над выражениями. Выражения должны быть абсолютными, то есть такими, численное значение которых может быть вычислено транслятором. Например:

flags equ 10010011

mov al, flags xor 01h; пересылка в al поля flags с инвертированным младшим битом

§ Индексный оператор [ ]. Транслятор воспринимает скобки как указание сложить значение выражения перед этими скобками со значением выражения, заключенным в скобки. Например:

mov ax,mas[si]; пересылка слова по адресу mas+[si] в регистр ах.

§ Оператор переопределения типаPTR применяется для переопределения или уточнения типа метки или переменной. Тип может принимать одно из следующих значений: byte, word, dword, qword, tbyte, near, far. Например:

d_wrd dd 0

mov al,byte ptr d_wrd+1; пересылка второго байта из двойного слова

Переменная d_wrd имеет тип двойного слова. Если есть необходимость обращения не ко всему значению переменной, а только к одному из входящих в нее байтов, то нельзя это сделать командой, например, mov al,d_wrd+l, так как транслятор выдаст сообщение о несовпадении типов операндов. Оператор PTR позволяет непосредственно в команде переопределить тип и выполнить команду.

§ Оператор переопределения сегмента : (двоеточие) вычисляет физический адрес относительно конкретно задаваемой сегментной составляющей: "имя сегментного регистра", "имя сегмента" из соответствующей директивы SEGMENT или "имя группы".

§ Оператор именования типа структуры . (точка) также заставляет транслятор производить определенные вычисления, если он встречается в выражении.

§ Оператор получения сегментной составляющей адреса выраженияSEGвозвращает физический адрес сегмента для выражения, в качестве которого могут выступать метка, переменная, имя сегмента, имя группы или некоторое символическое имя.

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

.data

pole dw 5

.code

mov ax,seg pole

mov es,ax

mov dx,offset pole ; теперь в паре es:dx полный адрес переменной pole

 

ФУНКЦИОНАЛЬНАЯ КЛАССИФИКАЦИЯ МАШИННЫХ КОМАНД

 

Рисунок 10. Функциональная классификация целочисленных команд процессора

КОМАНДЫ ПЕРЕСЫЛКИ ДАННЫХ

Команды общего назначения

mov <операнд назначения>,<операнд-источник> MOV – это основная команда пересылки данных. Она реализует самые разнообразные… · Командой MOV нельзя осуществить пересылку из одной области памяти в другую. Если такая необходимость возникает, то…

Работа с адресами и указателями

lea <приемник>,<источник> — загрузка эффективного адреса; Команда LEA похожа на команду MOV тем, что она также производит пересылку,… lds <приемник>,<источник> — загрузка указателя в регистр сегмента данных ds;

Преобразование данных

xlat [адрес_таблицы_перекодировки] Действие этой команды заключается в том, что она замещает значение в регистре… Хотя в команде указывается адрес строки байтов, из которой должно быть извлечено новое значение, этот адрес должен…

Ввод из порта и вывод в порт

Порт ввода-вывода может быть операндам машинной команды. Физически порт ввода-вывода представляет собой регистр разрядностью 8, 16 или 32 бита. Доступ к устройствам ввода-вывода, системным устройствам компьютера осуществляется посредством их регистров, причем каждый из этих регистров должен иметь возможность уникальной идентификации. С этой целью архитектурно процессор поддерживает так называемое адресное пространство ввода-вывода.

Комаанды для работы с портами ввода-вывода:

in <аккумулятор>,<номер_порта> — ввод в аккумулятор из порта с номером <номер_порта>;

out <номер_порта>,<аккумулятор> — вывод содержимого аккумулятора в порт с номером <номер_порта>.

 

Работа со стеком

Для работы со стеком предназначены три регистра: SS — регистр сегмента стека; SP— регистр указателя стека;

АРИФМЕТИЧЕСКИЕ КОМАНДЫ

Форматы арифметических данных

Описание двоичных чисел с фиксированной точкой в сегменте данных выполняется с помощью директив описания данных DB, DW и DD. Например: . data per 1 db 23

Арифметические операции над целыми двоичными числами

Сложение двоичных чисел без знака

Микропроцессор выполняет сложение операндов по правилам сложения двоичных чисел. Для фиксирования выхода за разрядную сетку предназначен флаг переноса cf в бите 0 регистра флагов flags. Самый простой способ анализа флага cf – использовать команду jc(илиjnc).

Имеется три команды двоичного сложения:

– INC операнд – операция инкремента, то есть увеличение значения операнда на 1;

ADD операнд1,операнд2 – команда сложения с принципом действия: операнд1 = операнд1 + операнд2;

ADCоперанд1,операнд2 – команда сложения с учетом флага переноса cf с принципом действия: операнд1 = операнд1 + операнд2 + cf.

Рассмотрим фрагмент программы вычисления суммы чисел 254 и 17.

.data

a db 254

. code

xor ax, ax ;обнуление ax

add al,17 ;помещение в al одного из слагаемых

add al,a ;сложение переменной а с al

jnc m1 ;если нет переноса, то переход на m1

adc ah, 0 ;в ax(ah) – сумма с учетом переноса

m1:

Сложение двоичных чисел со знаком

Ситуация переполнения (установка флага оf в 1) происходит при переносе: – из 14 разряда (для положительных чисел со знаком); – из 15-го разряда (для отрицательных чисел).

Вычитание двоичных чисел без знака

· если уменьшаемое больше вычитаемого, то разность положительная, результат верен. · если уменьшаемое меньше вычитаемого, результат меньше 0, а это уже число со… К командам вычитания относятся следующие:

Вычитание двоичных чисел со знаком

Для вычитания способом сложения чисел со знаком необходимо представить числа в дополнительном коде (и уменьшаемое, и вычитаемое). Результат тоже будет в дополнительном коде. Сложность здесь в том, что старший бит рассматривается как знаковый. Отследить эту ситуацию можно по флагу переполнения оf. Его установка в 1 говорит о том, что результат вышел за диапазон представления знаковых чисел (то есть изменился старший бит) для операнда данного размера, и программист должен предусмотреть действия по корректировке результата.

Умножение двоичных чисел без знака

MULсомножитель1 Второй операнд – сомножитель2 задан неявно. Его местоположение фиксировано и…  

Умножение двоичных чисел со знаком

Для умножения чисел со знаком предназначена команда

IMULоперанд_1[,операнд_2,операнд_3].

Эта команда выполняется так же, как и команда mul.Отличие только в формировании знака. Если результат мал и умещается в одном регистре (cf=of=0), то содержимое другого регистра (старшей части) является расширением знака – все его биты равны старшему биту (знаковому разряду) младшей части результата. В противном случае (cf=of=1) знаком результата является знаковый бит старшей части результата, а знаковый бит младшей части является значащим битом двоичного кода результата.

Деление двоичных чисел без знака

DIV делитель. Делитель может находиться в памяти или в регистре и иметь размер 8, 16 или 32…  

Деление двоичных чисел со знаком

Для деления чисел со знаком предназначена команда

IDIVделитель.

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

Команды преобразования типов

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

CBW (Convert Byte to Word) – команда преобразования байта (в регистре AL) в слово (в регистре AX) путем распространения значения старшего бита AL на все биты регистра AH.

CWD (Convert Word to Double) – команда преобразования слова (в регистре AX) в двойное слово (в регистрах DX:AX) путем распространения значения старшего бита AX на все биты регистра DX.

 

ЛОГИЧЕСКИЕ КОМАНДЫ

Под логическим понимается такое преобразование данных, в основе которого лежат правила формальной логики. Формальная логика работает на уровне утверждений истинно (1) или ложно (0).

Логические команды

Команды процессора, поддерживающие работу с логическими данными: · AND операнд_1,операнд_2 – операция логического умножения. Команда выполняет… · OR операнд_1,операнд_2 – операция логического сложения. Команда выполняет поразрядно логическую операцию ИЛИ…

Линейный сдвиг

1. Очередной выдвигаемый бит устанавливает флаг CF. 2. Бит, появляющийся с другого конца операнда, имеет значение 0. 3. При сдвиге очередного бита он переходит во флаг CF, при этом значение предыдущего сдвинутого бита теряется.

Циклический сдвиг

Команды простого циклического сдвига: • ROL операнд,счетчик_сдвигов — циклический сдвиг влево (Rotate Left).… • RОR операнд,счетчик_сдвитов — циклический сдвиг вправо (Rotate Right). Содержимое операнда сдвигается вправо на…

КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ

· безусловным – когда необходимо передать управление не следующей команде, а другой, находящейся на некотором удалении от текущей; · условным – решение о том, какая команда будет выполняться следующей,… То, какая команда будет выполняться следующей, процессор узнаёт по содержимому регистров CS:IP. Таким образом, команды…

Команда безусловного перехода

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

JMP [модификатор] адрес_перехода

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

Условные переходы

Процессор поддерживает 18 команд условного перехода, позволяющих проверить:

· отношение между операндами со знаком (больше или меньше);

· отношение между операндами без знака (выше или ниже);

· состояниями арифметических флагов ZF, SF, CF, OF, PF (но не AF).

Команды условного перехода имеют одинаковый синтаксис:

JCC метка_перехода

  Таблица 10. – Значение аббревиатур в названии команды JCC   Мнемоническое обозначение Термин Перевод Тип операндов E …

Команда сравнения

Команда сравнения СМР (СоМРаге) имеет интересный принцип работы. Команда СМР так же, как и команда SUB, выполняет вычитание операндов и по результатам сравнения устанавливает флаги. Единственное, чего она не делает, — не записывает результат вычитания на место первого операнда.

Синтаксис команды СМР:

Сmр операнд_1,операнд_2

  Таблица 11. – Перечень команд условного перехода для команды CMP   Типы операндов Команда условного перехода Критерий условного перехода Значения…

Команды условного перехода и флаги

  Таблица 12. Команды условного перехода и флаги   Название флага Команда условного перехода Значение флага для осуществления перехода …

Команды условного перехода и регистр СХ

Регистр СХ имеет определенное функциональное назначение – он выполняет функции счетчика в командах управления циклами и при работе с цепочками символов.

Синтаксис команд JCXZ (Jump if ex is Zero — переход, если СХ ноль)

Jcxz метка_перехода

В отличие от других команд условной передачи управления, команда JCXZ может адресовать только короткие переходы — на -128 байт или на +127 байт от следующей за ней команды.

ОРГАНИЗАЦИЯ ЦИКЛОВ

Например, подсчитаем количество нулевых байтов в области mas. model small .stack 100h

Loop метка_перехода

Команда реализует описанные далее действия.

1. Декремент регистра СХ.

2. Сравнение регистра СХ с нулем:

ü если (СХ) > 0, то управление передается на метку перехода;

ü если (СХ) = 0, то управление передается на следующую после LOOP команду.

Команды LOOPE и LOOPZ (Loop still сх <> 0 or Zero flag = 0 — повторить цикл пока СХ <> 0 или ZF = 0) — абсолютные синонимы. Синтаксис команд:

Loope/loopz метка_перехода

Команды реализуют описанные далее действия.

1. Декремент регистра СХ.

2. Сравнение регистра СХ с нулем и анализ состояния флага нуля ZF:

ü если (СХ) > 0 и ZF = 1, управление передается на метку перехода;

ü если (СХ) = 0 или ZF=0, управление передается на следующую после LOOP команду.

Команды LOOPNE и LOOPNZ (Loop still ex <> 0 or NonZero flag = 0 — повторить цикл, пока СХ <> 0 или ZF = 1) также абсолютные синонимы. Синтаксис команд:

Loopne/loopnz метка_перехода

1. Декремент регистра СХ. 2. Сравнение регистра СХ с нулем и анализ состояния флага нуля ZF: ü если (СХ) > 0 и ZF = 0, управление передается на метку перехода;

Принципы организации вложенных циклов.

… mov сх,100 ;количество повторений цикла cycl_l cycl_l :

ЛИТЕРАТУРА

Юров, В.И. Assembler. Учебник для вузов / В. И. Юров. – 2-е изд. – СПб. : Питер, 2006. – 637 с.

2. Голубь, Н. Г. Искусство программирования на Ассемблере / Н. Г. Глубь. – СПб. : ООО «ДиаСофтЮП», 2002. – 656 с.

Калашников, О.А. Ассемблер? Это просто! Учимся про­грамми­ровать / О. А. Калашников. – СПб. : БХВ-Петербург, 2005. – 384 с.

Финогенов, К.Г. Основы языка Ассемблера / К.Г.Финогенов. – М.: Радио и связь, 1999. – 28S с.

Абель, П. Язык Ассемблера для IBM PC и приложения / П.Абель. – М. : «Радио и связь», 1991. – 447 с.

Скэплон, Л. Персональные ЭВМ IBM PC и XT. Программирова­ние на языке Ассемблер / Л. Скеплон. – М. : «Радио и связь», 1989. – 336 с.


 

СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ.. 3

ЭТАПЫ РАЗВИТИЯ ЭВМ... 4

МАШИННО-ОРИЕНТИРОВАННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ.. 6

АРХИТЕКТУРА ЭВМ... 8

НАБОР РЕГИСТРОВ.. 9

ОРГАНИЗАЦИЯ ПАМЯТИ.. 14

ТИПЫ ДАННЫХ.. 16

ФОРМАТ КОМАНД.. 19

ОБРАБОТКА ПРЕРЫВАНИЙ.. 21

СИНТАКСИС АССЕМБЛЕРА.. 26

ДИРЕКТИВЫ СЕГМЕНТАЦИИ.. 28

ДИРЕКТИВЫ РЕЗЕРВИРОВАНИЯ И ИНИЦИАЛИЗАЦИИ ДАННЫХ.. 35

СПОСОБЫ ЗАДАНИЯ ОПЕРАНДОВ.. 39

ОПЕРАТОРЫ... 42

ФУНКЦИОНАЛЬНАЯ КЛАССИФИКАЦИЯ МАШИННЫХ КОМАНД.. 46

КОМАНДЫ ПЕРЕСЫЛКИ ДАННЫХ.. 46

АРИФМЕТИЧЕСКИЕ КОМАНДЫ... 57

ЛОГИЧЕСКИЕ КОМАНДЫ... 64

КОМАНДЫ ПЕРЕДАЧИ УПРАВЛЕНИЯ.. 68

ОРГАНИЗАЦИЯ ЦИКЛОВ.. 73

ЛИТЕРАТУРА.. 79


Учебное издание

 

 

ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

Конспект лекций для учащихся уровня среднего специального образования специальности 2–45 01 33 – Сети телекоммуникаций

– Конец работы –

Используемые теги: основы, алгоритмизации, программирования0.044

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Основы алгоритмизации и объектно-ориентированного программирования
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ... Кафедра инженерной кибернетики Т В Куренкова Г И...

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

Основы алгоритмизации и программирования
Условие - выражение булевского типа. Например Var flag boolean a b a b a b Условие может быть составным, т.е. состоять из нескольких логически… Для связи частей между собой применяются логические операции And и ab and b x… If условие then оператор1 Пример X 2 if x 0 then y 1 else y 2 WriteY Внутри оператора if могут содержаться другие…

Основы планирования. Теоретические основы управления проектами. Основы планирования. Планирование проекта в MS Project 7
Использованная литература В В Богданов Управление проектами в Microsoft Project Учебный курс Санкт Петербург Питер г...

Основы алгоритмизации и Программирование
Московский государственный университет экономики... Статистики и информатики...

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

Основы алгоритмизации и программирования
Основы алгоритмизации и программирования... Литература В И Юров Ассемблер Учебник для вузов Н И Голубь Искусство программирования на Ассемблере Лекции и упражнения...

Лабораторная работа №2 по "Основам теории систем" (Решение задач линейного программирования симплекс-методом. Варианты разрешимости задач линейного программирования)
Будем увеличивать , т.к. ее увеличение вызовет большее увеличение функции цели.Предположим, что , тогда Запишем новый опорный план . Все оценки… Теперь базисными переменными являются , а свободными . Для анализа этого плана… Будем увеличивать . Пусть , тогда откуда получаем Все оценки опорного плана должны бытьнеотрицательны, а значит должны…

ОСНОВЫ ПРОГРАММИРОВАНИЯ в среде TURBO DELPHI Учебное пособие
РЯЗАНСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ... В В КАРАСЕВ ОСНОВЫ... Редактор М Е Цветкова...

Деление клеток - основа размножения и роста организмов Деление клеток - процесс, лежащий в основе размножения и индивидуального развития всех живых организмов. Основную роль в делении клеток играет ядро. На окрашенных препаратах клетки содержимое ядра в
В процессе деления ядра нуклеопротеины спирализуются, укорачиваются и становятся видны а световой микроскоп в виде компактных палочковидных… Она в десятки раз продолжительнее митоза. В эту фазу происходит синтез молекул… В анафазе центромеры делятся, сестринские хроматиды отделяются друг от друга и за счет сокращения нитей веретена…

0.029
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам