ГБПОУ ВО ВГПГК — ЛАБОРАТОРНАЯ РАБОТА — Интерфейс клавиатуры
Цель работы:
- Знакомство со структурой ПЭВМ IBM PC.
- Использование регистров, доступных программисту.
- Знакомство со структурой программы.
- Написание элементов программы.
- Приобретение навыков программирования на языке ассемблер.
Техническое оснащение:
- Персональный компьютер с ОС Windows XP, 7, 8 или 10;
- Программное обеспечение: MASM32, IDE-MASM Builder и стандартные программы Windows.
Задание №1 Вывод сообщений в консольном приложении:
Исходный текст программы:

Задание №2 Сообщения в Windows-приложениях:
Исходный текст программы:

Ответы на контрольные вопросы
- Регистры микропроцессора:
- EAX/AX/AH/AL (accumulator register) – аккумулятор;
- EBX/BX/BH/BL (base register) –регистрбазы;
- ECX/CX/CH/CL (counter register) – счётчик;
- EDX/DX/DH/DL (data register) – регистрданных;
- ESI/SI (source index register) – индексисточника;
- EDI/DI (destination index register) – индексприёмника (получателя);
- ESP/SP (stack pointer register) – региструказателястека;
- EBP/BP (base pointer register) – региструказателябазыкадрастека.
- Флаги:
- Флаг переноса CF — показывает наличие переполнения в беззнаковой целочисленной арифметике.
- Флаг чётности PF — устанавливается, если младший значащий байт результата содержит чётное число единичных битов.
- Вспомогательный флаг переноса AF — устанавливается при переносе из бита 3-го результата/заёме в 3-ий бит результата.
- Флаг нуля ZF — устанавливается, если результат равен нулю.
- Флаг знака SF — равен значению старшего значащего бита результата, который является знаковым битом в знаковой арифметике.
- Флаг переполнения OF — показывает наличие переполнения в знаковой целочисленной арифметике.
- Флаг направления DF — управляет строковыми инструкциями (MOVS, CMPS, SCAS, LODS и STOS) – установка флага заставляет уменьшать адреса (обрабатывать строки от старших адресов к младшим), обнуление заставляет увеличивать адреса.
- Флаг разрешения прерываний IF – обнуление этого флага запрещает отвечать на маскируемые запросы на прерывание.
- Флаг трассировки TF – установка этого флага разрешает пошаговый режим отладки, когда после каждой выполненной инструкции происходит прерывание программы и вызов специального обработчика прерывания.
- Поле IOPL показывает уровень приоритета ввода-вывода исполняемой программы или задачи.
- Флаг вложенности задач NT – этот флаг устанавливается, когда текущая задача «вложена» в другую, прерванную задачу, и сегмент состояния TSS текущей задачи обеспечивает обратную связь с TSS предыдущей задачи.
- Флаг возобновления RF используется для маскирования ошибок отладки.
- VM – установка этого флага в защищённом режиме вызывает переключение в режим виртуального 8086.
- Флаг проверки выравнивания AC – установка этого флага вместе с битом AM в регистре CR0 включает контроль выравнивания операндов при обращениях к памяти.
- VIF – виртуальная копия флага IF; используется совместно с флагом VIP.
- VIP – устанавливается для указания наличия отложенного прерывания.
- ID – возможность программно изменить этот флаг в регистре флагов указывает на поддержку инструкции CPUID.
- Арифметические команды:
Команды сложения и вычитания реализуют хорошо всем известные арифметические операции.
ADD <операнд1>, <операнд2>
SUB <операнд1>, <операнд2>
Команда ADD складывает операнды и записывает их сумму на место первого операнда. Команда SUB вычитает из первого операнда второй и записывает полученную разность на место первого операнда. Операнды должны иметь одинаковый размер. Если первый операнд – регистр, то второй может быть также регистром, ячейкой памяти и непосредственным операндом. Если первый операнд – ячейка памяти, то второй операнд может быть регистром или непосредственным операндом. Возможно сложение и вычитание как знаковых, так и беззнаковых чисел любого размера. Команды меняют флаги AF, CF, OF, PF, SF и ZF.
Команды инкремента и декремента увеличивают и уменьшают на 1 свой операнд.
INC <операнд>
DEC <операнд>
Операндом может быть регистр или ячейка памяти любого размера. Команды меняют флаги AF, OF, PF, SF и ZF.
Команда изменения знака:
NEG <операнд>
Операндом может быть регистр или ячейка памяти любого размера. Команда NEG рассматривает свой операнд как число со знаком и меняет знак операнда на противоположный. Команда меняет флаги AF, CF, OF, PF, SF и ZF.
Для беззнакового умножения используется команда MUL:
MUL <операнд>
Операнд, указываемый в команде, – это один из сомножителей. Он может быть регистром или ячейкой памяти, но не может быть непосредственным операндом.
Местонахождение второго сомножителя и результата фиксировано, и в команде явно не указывается. Если операнд команды MUL имеет размер 1 байт, то второй сомножитель берётся из регистра AL, а результат помещается в регистр AX. Если операнд команды MUL имеет размер 2 байта, то второй сомножитель берётся из регистра AX, а результат помещается в регистровую пару DX:AX. Если операнд команды MUL имеет размер 4 байта, то второй сомножитель берётся из регистра EAX, а результат помещается в регистровую пару EDX:EAX.
Команда меняет флаги CF и OF. Если произведение имеет такой же размер, что и сомножители, то оба флага сбрасываются в 0. Если же размер произведения удваивается относительно размера сомножителей, то оба флага устанавливаются в 1.
Для знакового умножения используется команда IMUL:
IMUL <операнд>
IMUL <операнд>, <непосредственный операнд>
IMUL <операнд1>, <операнд2>, <непосредственный операнд>
IMUL <операнд1>, <операнд2>
Команда знакового умножения имеет несколько вариантов.
Первый соответствует команде MUL – один из сомножителей указывается в команде, второй должен находиться в регистре EAX/AX/AL, а результат помещается в регистры EDX:EAX/DX:AX/AX.
Второй вариант команды IMUL позволяет указать регистр, который будет содержать один из сомножителей. В этот же регистр будет помещён результат. Второй сомножитель указывается непосредственно в команде.
Третий вариант команды IMUL позволяет указать и результат, и оба сомножителя. Однако результат может быть помещён только в регистр, а второй сомножитель может быть только непосредственным операндом. Первый сомножитель может быть регистром или ячейкой памяти.
Четвёртый вариант команды IMUL позволяет указать оба сомножителя. Первый должен быть регистром, а второй – регистром или ячейкой памяти. Результат помещается в регистр, являющийся первым операндом.
- Логические команды:
Операция отрицания меняет значение всех битов переменной на противоположное. Операция не меняет флаги.
NOT <операнд>
Операция поразрядное «и» выполняет логическое умножение всех пар бит операндов.
AND <операнд1>, <операнд2>
Операция поразрядное «или» выполняет логическое сложение всех пар бит операндов.
OR <операнд1>, <операнд2>
Операция поразрядное исключающее «или» выполняет сложение по модулю 2 всех пар бит операндов.
XOR <операнд1>, <операнд2>
Вывод
В ходе лабораторной работы познакомился со структурой ПЭВМ IBM PC и приобрёл навыки программирования на языке ассемблер.
или напишите нам прямо сейчас:
Здравствуйте. Скажите пожалуйста, планирую поступать в магистратуру на факультет Психологии « Психология личности»в РГГУ скажите пожалуйста, есть ли у вас, ответы на вступительные экзамены? так как, планирую, сделать акцент на бюджет. Спасибо.
Арсений, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Дистанционная помощь в защите ВКР
Анастасия, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте. Нужна срочно практическая часть вкр, третья глава. Скину похожие работы, на которые можно ориентироваться
Александр, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
вкр по теме: экологический туризм России : анализ состояния, проблемы и перспективы
Людмила, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте вы защищаете ВКР?
Ольга, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Написать магистерскую ВКР на тему «Совершенствование логистических бизнес-процессов на примере торговой компании». Не менее 100 страниц.
Миша, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте нужна работа Вкр
Лена, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Написать ВКР 3 раздела Тема строительство строительство жилого дома с применением каркасно-монолитных технологий Антиплагиат от 75% ПЗ и чертежи
Владимир, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.