Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по ОСПО.doc
Скачиваний:
27
Добавлен:
02.05.2014
Размер:
909.82 Кб
Скачать

1. Безусловный переход.

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

б) FAR – переход осуществляется по абсолютному адресу заданному сегментом и смещением. Преимущество: перемещается в любой сегмент, недостаток: большая адресная часть пространства. в) NEAR – ближайший тип, переход осуществляется только по смещению в пределах текущего сегмента.

мнемоника

условие

флаги

JB/JNAE

если меньше

CF=1

JBE/JNA

если меньше или равно

CF=1 и ZF=1

JAE/JNB

если больше или равно 0

CF=0

JA/JNBE

если больше

CF=0 и ZF=0

JE/JZ

если ZF=1

ZF=1

JNE/JNZ

если ZF=0

ZF=0

JL/JNGE

если SF=OFF

SF=OF

JLE/JNLE

если ZF=1 и SF=OF

ZF=1 и SF=OF

JP/JPE

если четно

PF=1

JNP/JPO

если нечетно

PF=0

JS

если знак -

SF=1

JNS

если знак +

SF=0

JC

если перенос

CF=1

JNC

если без переноса

СА=0

JO

если переполнение

OF=1

JNO

если без переполнения

OF=0

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

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

Инструкция условного перехода осуществляет переход в случае

выполнения того или иного условия и определяется, как бит в регистре флагов, т.е. к моменту выполнения команды условного перехода необходимо выполнять команды проверки условия. Синтаксическая диаграмма аналогичная команде JMP.

пример:

MOV AH, 1

LB2: INT 21h

CMP AL, 'A' (41h)

JE LB1

JMP LB2

LB2: MOV

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

  1. Логическая организация файла.

Программист имеет дело с логической организацией файла, представляя файл в виде определенным образом организованных логических записей. Логическая запись - это наименьший элемент данных, которым может оперировать программист при обмене с внешним устройством. Даже если физический обмен с устройством осуществляется большими единицами, операционная система обеспечивает программисту доступ к отдельной логической записи. На рисунке 1.3 показаны несколько схем логической организации файла. Записи могут быть фиксированной длины или переменной длины.

Рис. 1.3. Способы логической организации файлов

Записи могут быть расположены в файле последовательно (последовательная организация) или в более сложном порядке, с использованием так называемых индексных таблиц, позволяющих обеспечить быстрый доступ к отдельной логической записи (индексно-последовательная организация). Для идентификации записи может быть использовано специальное поле записи, называемое ключом. В файловых системах ОС UNIX и MS-DOS файл имеет простейшую логическую структуру - последовательность однобайтовых записей.

  1. Логические действия на языке Ассемблер.

Направление С

влево

вправо

через бит переноса С

RCL

RCR

циклически

ROL

ROR

Выполняются над операндами побитно. Логические операции выполняет процессор.

Команды побитовых сдвигов.

Бывают четырех видов:

пример: MOV AX, 11h 0001 0001 0

MOV CH, 5h 0010 0010 0

ROR AX, CH

Команды логических сдвигов.

Выполняют перемещение операнда на один разряд вправо/влево. При этом циклического переноса вытесняемых разрядов в начало/конец не происходит. Сдвиг может происходить только на один разряд.

пример: MOV DX, 5h

SHL DX, 1h

SHR DX, 1h

  • AND

  • OR

  • XOR

  1. Место процессов контроля и диагностики в операционной системе.

  1. Методы, свойства, процедуры класса.

Данные объекта чаще всего называют «свойствами объекта». Методы – это программы, с помощью которых осуществляется связь объекта с внешним миром, обмен информацией с его данными. Процедуры – это подпрограммы, которые могут быть вызваны друг из друга или из методов. Однако возможности их вызова из окружающей среды обычно не существует.

  1. Механизмы вызова функций Windows.

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

Часто для того, чтобы указать функции конкретное действие из множества возможных используются идентификаторы команд. Идентификатор команды – это число, которое указывает, какие действия необходимо выполнить над тем или иным объектом ОС. Например, идентификатор CB_DIR (значение 145H) принудит с помощью функции SendDlgItemMessage (рассмотрена далее) поместить в элемент управления Windows ComboBox список файлов текущего каталога. Арифметические или логические операции над идентификаторами команд смысла не имеют. В этом случае префикс «CB_» определяет тип объекта, над которым выполняется действие (ComboBox). В качестве примера приведем функцию передачи сообщения элементу управления SendDlgItemMessage, запись которой в виде функции имеет вид:

SendDlgItemMessage(hWnd; IDELm; Messg; Wpar; Lpar),

где: HWnd - дескриптор окна (число, по которому ОС однозначно идентифицирует окно, к которому идет обращение); IDELm - идентификатор элемента окна (например, ниспадающего списка, поля ввода и т.п.); Message – код сообщения или команды; Wpar, Lpar – старший и младший параметры (их назначение зависит от выполняемой команды).

  1. Монтирование и дефрагментация в файловых системах.

Монтирование – подсоединение жесткого носителя данных к Операционной Системе (определить его в системе).

Фрагментация – процесс разбиения файла на небольшие фрагменты при записи на диск, в следствии заполнения всей области диска.

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

Монтирование файловых систем.

Монтирование файловой системы происходит поэтапно:

● Проверка типа файловой системы.

● Проверка целостности файловой системы

● Считывание системных структур данных и инициализация соответствующего модуля файлового менеджера.

● Модификация файловой системы по установленному флагу загрязнения.

● Включение файловой системы в пространство имен.

Флаг загрязнения – переменная, принимающая значения 1 либо 0 и хранящая информацию о корректности завершения работы системы. Сразу после запуска система она принимает значение 1 (некорректное завершение работы) и меняется на 0 только в случае успешного окончания работы. Значения флага загрязнения 1 при запуске вызывает запуск программ сервисного обслуживания, например Scandisk, Scanreg и др.

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

  1. Наследование классов и объектов.

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

  1. Обработка событий манипулятора типа "мышь".

  1. перемещение мыши по полю окна

:m WM_MOUSEMOVE

WordSplitразделяет слова

;m

  1. Нажатие левой кнопки мыши.

:m WM_LBUTTONDOWN

BEEP

;m

  1. От нажатия левой кнопки мыши

:m WM_LBUTTONUP

S” кнопка отжата”

SetText: text t1 ;m

  1. Двойное нажатие левой кнопки мыши.

:m WM_LBUTTONDBLCLK

BEEP BEEP ;m

  1. нажатие правой кнопки мыши

:m WM_RBUTTONDOWN

BEEP ;m

6 нажатие средней кнопки мыши

:m WM_MBUTTONDOWN

BEEP ;m

7 нажатие клавишь

:m WM_KEYDOWN

;object

// поле ввода

EditControl

  1. Объекты в оболочке Windows: стили и сообщения.

В среде Windows существуют три основополагающих понятия: стиль, сообщения и функции.

1. Стиль. Стиль это битовая маска, которая определяет тип объекта, его характеристики, внешний вид, возможные действия над объектом. Для удобства программирования и обеспечения кроссплатформенности каждой битовой маске присвоена определённая аббревиатура следующего типа: ТипОбъекта_Стиль, например WS_BORDER. Стили Windows пишутся заглавными буквами, так как они запрограммированы в ОС.

2. Сообщения (Massages). Сообщение это программы, которые выполняются при том или ином событии ОС. Сообщения являются методами объектов Windows. Сообщения также соответствуют логически значимым аббревиатурам, но в этом случае аббревиатура имеет смысл не константы, а указателя ни программу, которую необходимо выполнить. Например WM_CHAR.

  1. Объекты и классы: основные понятия.

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

  1. Операции над файлами. Для того, чтобы получить доступ к файлу в большинстве случаев создаётся канал к файлу(поток), который характеризуется:

  1. дескриптором или идентификатором канала

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

  1. Типом канала

  • Только для чтения

  • Только для записи

  • Для чтения и записи

Следует отличать тип канала от атрибута файла, а также действия над каналом от действий на файлом.

Система возвращает адрес файла, т.е. идентификатор, или ошибку. Константы Windows.

В Windows существуют специальные мнемоники, т.е. буквенные выражения, поставленные в соответствии с определёнными значениями и предназначенные для указания командам Windows тех или иных параметров.

1.w/o –только для записи, 2.r/o - только для чтения, 3. r/w – для чтения и записи

Профайловая система – доступ для любого файла.

Открытие канала(файла).

Два операнда: 1 Имя файла, 2 Тип канала в виде константы Windows.

Возвращает: 1 Код ошибки, 2 Номер канала

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

Создание файла.

Во многом аналогично команде открытия файла: имеет те же операнды и те же возвращаемые значения.

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

Позиционирование файла.

Для открытого файла существует понятие “точка входа в файл” – это 64-разрядный указатель на 1 байт файла, с которого будут производиться операции обмена данных.

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

  1. Смещение выполняет относительное перемещение точки входа относительно текущего положения указателя. Смещение – 32-разрядное число.

Операнды: 1Смещение, 2Номер канала

Возвращается: 1Код ошибки, 2Номер канала

  1. Репозиция

В этом случае положения точки входа в файл задается абсолютно в виде: 64-разрядного числа.

Операнды и возвращаемые значения те же что и в смещении.

Чтение из файла.

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

Операнды:1Адрес области в ОЗУ, 2Предполагаемое количество, считываемых байт, 3Номер канала.

Возвращаемые значения:1Код ошибки, 2Число реально считанных байт

Замечание: точка входа в файл смещается на число считанных байт.

Запись в файл.

Предназначена для переноса информации из буфера в открытый файл, начиная с точки входа в него. Прежняя информация в файле, если она была, теряется. В команде записи операнды аналогичны команде чтения.

Возвращаемые значения: Код ошибки

Закрытие файла.

Позволяет уничтожить канал к файлу. После успешного закрытия номер канала теряет смысл.

Операнды: Номер канала

Возвращаемое значение: Код ошибки

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

  1. Операции с динамической памятью.

Динамическая память – это виртуальная память, которая может располагаться в любом месте ОЗУ и файла подкачки.

Организуется в виде сегментов длиной до 4 Гб, каждый из которых характеризуется дескриптором сегмента памяти. В простейшем случае это первые адрес в общем адресном пространстве.

Операнды: Количество байт

Возвращаемые значения:1Код ошибки, 2Адрес

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

  1. Основные опции транслятора и линковщика.

Процесс трансляции и линковки файлов.

Процесс компиляции.

Для компиляции используются 2-е инструментальные программы.

1) Транслятор ассемблера tasm.exe

Исходной информацией для транслятора служит текстовый файл на языке ассемблер. (name.asm)

Выходной файл созданный транслятором – это файл объективных кодов, который уже содержит машинные коды, однако адреса, в которых ещё не определены.

tasm.exe name.asm

name.obj

2) Редактор связей tlink.exe

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

tlink.exe name.obj

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

name.exe (name.com)

  1. Основные понятия файловой системы.

  1. Основные понятия: классы задач, решаемых программистами; их характеристики.

  1. Технологические задачи . Это задачи, которые ставятся и решаются при организации процесса обработки или передачи данных. Они используются для обеспечения работоспособности компьютера.

  2. Функциональные задачи. Задачи, требующие решения при реализации функций управления, в рамках конкретных прикладных областей.

  1. Основные понятия: программа, программное обеспечение.

Программа – это данные, предназначенные для управления конкретными компонентами систем обработки информации.

ПО – это совокупность программ и программной документации необходимой для их эксплуатации.

  1. Основные функции и стили CheckButton. Флаги

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

Элемент управления COMBOBOX и его стили.

BS_CHECKBOX……………………….. Стандартный, имеет два состояния и управление внутренней переменной осуществляется программой пользователя. При нажатии мышкой на данный элемент управления будет вызываться сообщение WS_COMMAND, но состояние флага изменено не будет.

BS_AUTOCHECKBOX…………………Автоматический, имеет два состояния и отличается от предыдущего только тем, что при нажатии значение флага будет изменено ОС. Сообщение WS_COMMAND будет послано, в нем пользовательская программа может получить значение флага.

BS_3STATE…………………………Трехуровневый, может находиться в трёх состояниях, в остальном аналогичен стандартному флагу.

BS_AUTO3STATE………… Трехуровневый автоматический, имеет три состояния, а в остальном аналогичен автоматическому флагу.

Флаги. Для 3-х стабильных флагов характерны три состояния

  • Истина (отмечен - 1)

  • Ложь (неотмечен - 0)

  • Затемненный (2)

Установка значения флага

Выполняется с помощью функции CheckDlgButton

Операнды

  • Дескриптор окна

  • Идентификатор элемента

  • Значение флага

Возвращает

  • Код ошибки

Чтение состояния флага

Выполняется с помощью функции IsDlgButtonChecked

Операнды

  • Идентификатор элемента

  • Дескриптор окна

Возвращает 32-битное слово состояния флага (.2 – флаг затемнен)

  1. Основные функции и стили EditControl.

С его помощью можно вводить и/или отображать достаточно длинные текстовые строки.

Стиль

Описание

ES_AUTOHSCROLL

Выполняется автоматическая свертка текста по горизонтали. Когда при наборе текста достигается правая граница окна ввода, весь текст сдвигается влево на 10 символов

ES_AUTOVSCROLL

Выполняется автоматическая свертка текста по вертикали. Когда при наборе текста достигается нижняя граница окна ввода, весь текст сдвигается вверх на одну строку

ES_CENTER

Центровка строк по горизонтали в многострочном текстовом редакторе

ES_LEFT

Выравнивание текста по левой границе окна редактирования

ES_MULTILINE

Создается многострочный редактор текста

ES_NOHIDESEL

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

ES_READONLY

Создаваемый орган управления предназначен только для просмотра текста, но не для редактирования

ES_WANTRETURN

Стиль используется в комбинации со стилем ES_MULTILINE. Используется только в диалоговых панелях. При использовании этого стиля клавиша <Enter> действует аналогично кнопке диалоговой панели, выбранной по умолчанию

ES_RIGHT

Выравнивание текста по правой границе окна редактирования

ES_LOWERCASE

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

ES_OEMCONVERT

Выполняется автоматическое преобразование кодировки введенных символов из ANSI в OEM и обратно. Обычно используется для ввода имен файлов

ES_PASSWORD

Этот стиль используется для ввода паролей или аналогичной информации. Вместо введенных символов отображается символ "*" или другой, указанный при помощи сообщения EM_SETPASSWORDCHAR

ES_UPPERCASE

Выполняется автоматическое преобразование введенных символов в заглавные

  1. Основные функции и стили RadioButton.

Радиокнопки – это группа флагов; отмеченным может быть только один элемент. Группы формируются с помощью присвоения стиля WS_GROUP. Тот элемент, которому присвоен этот стиль, является первым в своей группе, группы являются независимыми.

Замечание: порядок следования команды start над объектами радиокнопок в методе On_Init определяет очередность.

"Радио" кнопка может иметь один из двух стилей: стандарт или автоматический, что определяется константами BS_RADIOBUTTON и BS_AUTORADIOBUTTON соответственно.

Стиль BS_LEFTTEXT позволяет разместить текст слева от радио-кнопки. Этого же эффекта можно добиться использовав стиль BS_RIGHTBUTTON. Если объект не имеет ни одного из этих стилей, но имеет стиль BS_RIGHT, то текст будет выровнен по правому краю, находясь справа от кнопки. Аналогичный результат получается при использовании стиля BS_LEFT.

Функции радиокнопок:

  1. Установка активной Радиокнопки CheckRadioButton

Операнды:1) Дескриптор окна группы, 2) Идентификатор первого элемента группы, 3) ID последнего элемента группы, 4)ID Радиокнопки, установленной в активное состояние

В группе радиокнопок обязательно одна из кнопок является активной.

2. Состояние Радиокнопки IsDlgButtonChecked

Операнды: 1) ID окна 2) ID кнопки

  1. Основные функции и стили ScrollBar.

WM_VSCROLL

WM_HSCROLL

За прорисовку ответственна программа пользователя.

Основные функции:

  1. Установка ранга линеек SetScrollRange

Ранг линейки прокрутки – это диапазон изменения значений переменной, связанный с положением движка данных элементов управления.

[Rmin;Rmax] – ранг линейки. Значение R – 32-разрядное число. Rmin<Rmax для правильной работы линейки.

Операнды:

  1. ID окна.

  2. ID типа

  3. Rmin

  4. Rmax

Возвращает

  1. Код ошибки

  2. Установка положения движка линейки SetScrollPos.

Позволяет установить движок в произвольную позицию в пределах ранга линейки.

Операнды:

  1. Дескриптор окна (hWnd)

  2. ID типа

  3. Позиция

  4. Резервный параметр (True)

  1. Получение позиции движка GetScrollPos

  1. Основные функции и стили линеек скроллинга.

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

WSUSCROLL - вертикальный скроллинг.

WSHSCROLL - горизонтальный скроллинг.

Сообщения создаваемые длинными элементами управления называются: WSJJSCROLL WSJJSCROLL

Следует отметить, что при изменении положения движка на линейке изменяется лишь внутренняя переменная линейки прокрутки, но не изображение окна. За скроллинг и прорисовку окна ответственна пользовательская программа получающая сообщение от линейки прокрутки.

Основные функции линейки прокрутки:

1. Установка ранга линеек. Выполняется с помощью функции: SetScrollRange. Ранг линейки прокрутки - это диапазон изменения значений переменной связанной с положением движка данных элементов управлении.

Ранг линейки - [Rmin, Rmax], при этом значение R задаётся 32-х разрядным числом. Значение Rmin может принимать любые значения, однако для правильной работы линейки: Rmin< Rmax. В качестве операндов функции установки рангов указывается:

1. 1. Идентификатор окна: hWnd Call SetScrollRange.

1. 2. Идентификатор типа элемента: SBVERT.

1. 3. Значение Rmin : 0.

1. 4. Значение Rmax : 100.

1. 5. Функция возрастает: код ошибки.

2. Функция установки положения движка линеек SetScrollPos.

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

линейки.

Операнды:

Идентификатор окна.

Идентификатор типа.

Позиция: 20.

Резервный параметр TRUE (-1).

Пример: TRUE 20 SBVERT hWnd CallScollPos.

Перемещение движка линейки прокрутки выполняется с помощью данной функции.

Команды получения движка линейки 00 SBVERT hWnd CallScrollPos. Функция возвращает позицию линейки прокрутки.

Сообщения от линейки скроллинга.

Данные сообщения сопровождаются 4-мя параметрами:

Дескриптор окна.

Сообщения от линейки прокрутки, ( const Windows) предназначенная для идентификации

одного из нескольких событий возникающих на линейке.

Старший параметр, который содержит в младшем полуслове тип сообщения (назначение

аналогичное предыдущему параметру), а в старшем дополнительный параметр.

Младший параметр: резерв.

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

Типы событий вертикальной линейки прокрутки.

SBBOTTOM - достижение крайнего нижнего положения линейки прокрутки.

SBTOP - достижение движком крайнего верхнего положения

SBLINEDOWN - событие одинокого нажатия на клавишу "вниз".

В данной секции необходимо инкрементировать значение связанное с позицией движка.

SBLINEUP - выполняется декремент значения (аналогично верхнему, но при нажатии

"вверх").

SBPAGEDOWN - страница. События возникают при нажатии мышкой на поле может

управлять движком и клавишей "вниз".

Событие аналогично событию LINEDOWN, но для увеличения переменной линейки,

назначение больше 1.

SBPEGEUP - событие нажатия мышкой на поле может управлять движком и кнопкой

"вверх".

SBTHUMBPOSITION - события позиционирования движка ( Движок отпускается мышью).

В этом случае в старшем полуслове, старшего параметра передаётся новое положение

движка. Если это положение не будет установлено с помощью функции Windows, движок

вернётся на прежнее место.

SBTHUMBTRACK - данное событие вытекает при перемещении движка без его

отпускания манипулятора мыши. Событие вызывается аналогично событию

WHMOUSEMOVE. При этом каждый раз в старшем полуслове старшего параметра

передаётся позиция движка, однако в этом случае изменять позицию движка с помощью

функции, как правило не требуется.

События горизонтальной линейки.

Во многом повторяют события вертикальной линейки, кроме 4-х событий:

SBLINELIFT - (аналог LINEUP).

SBLINERIGHT - (аналог LINEDOWN).

SBPAGELEFT - (аналог PEGEUP).

SBPAGERIGHT - (анлог PAGEDOWN).

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

  1. Команды инкремента и декремента

Предназначены для быстрого увелечения/уменьшения на единицу регистровых операндов.

  • Inc BX = add BX,1

  • Dec BX = sub BX,1

Разрядность операции определяется типом операнда, который может быть 8,16,32-разрядный.

  1. Команды сложения и вычитания

Add позволяет выполнить сложение регистровых и других операндов.

ADD DL,AH

ADD DL,10

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

Аналогично операция вычитания SUB.

  1. Умножение и деление.

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

Пример: 5*8

MOV AL,5

MOV BH,8

MUL BH

MUL – беззнаковая команда.

IMUL – знаковая. В этом случае знаковый разряд операндов в процедуре умножения не участвует, а служит лишь для вычисления знака результата.

DIV – беззнаковое деление. Выполняет деление 16-разрядного на 8-разрядный операнды. В результате частное записывается в регистр AL, а остаток в регистр AH. Делитель всегда регистр DL, делимое – AX.

Пример: 51/10

MOV AX,51

MOV DL,10

DIV DL

;AL = 5, AH = 1.

IDIV - знаковое деление.

  1. Логические операции

Выполняются над операндами побитно. Логические операции выполняет процессор. AND, OR, XOR

  1. Основы программирования на ассемблере: получение кодов нажатых клавиш и вывод их на экран.

Для 21-го прерывания регистр AH содержит номер подфункции, например единица – вызов функции чтения кода нажатой клавиши. О значении регистра AH должен позаботится программист. Код нажатой клавиши будет передан системой в AL.

L1: MOV AH,1

INT 21H

MOV DL,AL

MOV AH,2

INT 21H

CMP AL,13H

JNZ L1

Для того чтобы распечатать введённый код на дисплее используют функцию №2. Код вводимого символа должен располагаться в регистре DL.

CMP AL,13H ; команда выполняет вычитание однако в его результате меняются только флаги.

  1. Понятие объекта в метафоре объектно-ориентированного программирования.