Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8. СИСПРОГ-госы.doc
Скачиваний:
2
Добавлен:
26.08.2019
Размер:
230.91 Кб
Скачать

Форматы команд:

  1. Ассемблер: основные понятия, директивы, команды. Условный и безусловный переходы. Циклы. Массивы. Процедуры. Упакованные данные. Структуры.

Машинный язык – комбинация строго организованных последовательностей 0 и 1. В 50-е гг 20века программисты стали использовать для программирования символический аналог машинного языка, кот. назвали языком ассемблера.

Алфавит языка – все латинские буквы A-Z, a-z (прописные и строчные считаются эквивалентными), цифры 0-9, спец.знаки подчеркивания -,?, @, $, & и разделители , . [ ], {}, <, >, +, /, *, %, !, “”, \, =, #, ^

Идентификатор – послед-сть допустимых символов, использующихся для обозначения имен переменных и меток. Длина может составлять 256 символов, хотя транслятор воспринимает первые 32. Ид-р не может начинаться с цифры и «.» может быть только первым символом ид-ра.

Ключевые слова- служебные символы языка ассемблера, к кот-м относится названия регистров и операторы.

Символы и строки заключаются либо в одинарные, либо в двойные кавычки. В качестве символов можно использовать русские буквы. В строках прописные и строчные буквы неэквивалентны.

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

1) комментарии – любая строка, начинающая с точки с запятой, либо пустая строка. Допустим многострочный комментарий.

COMMENT <маркер><текст>

Маркер (любой символ отличный от пробела) начинает комментарий. Концом комментария считается конец строки, в которой снова встретился этот же маркер.

2) директивы – приказы ассемблеру со след.синтаксисом:

[<имя>]<название директивы>[<операнды>][;<комментарий>]

- директивы определения данных

DB – директива определения данных в байт; DW – в слово; DD – в двойное слово.

- директивы эквивалентности и присваивания

<имя> EQU <операнд>

Операндом может быть имя (имя регистра, переменной, константы), константное выражение, любой текст.

3) команды – символьная форма записи машинных команд.

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

[<метка:>]<мнемокод>[<операнды>][;<комментарий>]

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

  • Команды пересылки

1. Mov op1,op2 - По этой команде на место 1-го операнда пересылается значение 2-го операнда. Флаги команда не меняет

2. Оператор указания типа PTR

<тип> PTR <выражение>

Тип – байт/слово/двойное слово

Оператор исп-ся в 2-х случаях:

- когда типы операторов в командах неизвестны, поэтому необходимо указать тип одного из них.

- когда необходимо изменить тип, приписанный имени при его описании.

3. Команда перестановки 2-х операторов XCHG.

Флаги команда не меняет. Операнды должны быть 1-го размера байт/слово.

  • Арифметические команды

1)

сложение

ADD op1,op2

Вычитание

SUB op1, op2

Операнды должны быть одного размера. Меняются флаги CF, OF, SF, ZF.

2) увеличение на 1: INC op Уменьшение на 1: DEC op

3) изменение знака NEG op

4)

сложение с учетом переноса

ADC op1,op2

Вычитание с учетом переноса

SBB op1,op2

К сумме прибавляется (из разности вычитается) значение флага переноса CF.

5)

умножение целых без знака

MUL op

умножение целых со знаком

IMUL op

Операнд может нах-ся в регистре или в памяти, но не может быть непосредственным операндом. При умножении байтов значение второго сомножителя берется из регистра AL, при умножении слов из регистра AX. Под рез-т отводится в 2 раза больше места, чем под сомножители. При умножении байтов рез-т имеет размер слова и запис-ся в AX, при умножении слов – в DX старшие разряды, в AX – младшие цифры.

6)

деление целых без знака

DIV op

деление целых со знаком

IDIV op

Явно указ-ся только делитель (нах-ся в регистре или ячейке памяти)

При делении слова на байт делимое нах-ся в AX. При делении двойного слова на слово в DX и AX.