Лабораторная работа №3 (1). Отчет по лабораторной работе 3 По дисциплине Системное программирование (сиб) На тему Логические команды языка Ассемблер
Скачать 128.92 Kb.
|
Министерство Образования и Науки Республики Казахстан Некоммерческое акционерное общество «АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ ИМЕНИ ГУМАРБЕКА ДАУКЕЕВА» Кафедра «Информационные системы и кибербезопасности» ОТЧЕТ по лабораторной работе № 3 По дисциплине: Системное программирование (СИБ) На тему: «Логические команды языка Ассемблер» Специальность: 6В06102 – Информационные системы Выполнил Нагаец В.С. Группа ИСу-22-4 Приняла Голубева Т.В. __________ «_____» _____________2022 г. (подпись) Алматы 2022 Содержание Введение 4 Введение 3 Задание 4 1 Ход работы 5 Заключение 9 Список литературы 10 Введение В данной лабораторной работе мы рассмотрим работу логических команд. Необходимо выполнить указанные ниже задания – написать код на языке ассемблер, откомпилировать программу и в программе TD продемонстрировать выполнение заданных действий. Задание Используя логические команды, выполнить следующие действия: 1 Обнулить регистры CX, AH, BL. 2 Занести в регистр AX число из диапазона 1025-65000 и с помощью битовой маски оставить значащие биты только в старшей части регистра. 3 Занести в регистр AX число из диапазона 1025-65000 и с помощью битовой маски установить все биты регистра AH в 1. 4 Занести в регистр BX число 7 и преобразовать его в ASCII код символа “7” (маска должна быть универсальной и подходить для любой десятичной цифры) 5 Преобразовать ASCII код 34 в число (маска должна быть и подходить для любой десятичной цифры) 6 Любой логической командой установить флаг (ZF). 7 Любой логической командой сбросить флаги ZF и CF 1 Ход работы Следующим образом выглядит полный готовый код программы (см. рис. 1): Рисунок 1 – текст программы Для выполнения первого задания нам необходимо обнулить регистры CX, AH, BL (рис.2). Команда XOR выполняет операцию «исключающего или» между соответствующими парами битов операндов команды и помещает результат на место операнда получателя данных. Рисунок 2 – обнуление регистров CX, AH, BL Во втором задании необходимо занести в регистр AX число из диапазона 1025–65000 и с помощью битовой маски оставить значащие биты только в старшей части регистра. Я выбрал следующее число: 6499 (рис. 3). Команда AND выполняет операцию «логического и» между парами битов операндов и помещает результат на место операнда получателя данных. Рисунок 3 – команда AND В третьем задании необходимо занести в регистр AX число из диапазона 1025–65000 и с помощью битовой маски установить все биты регистра AH в 1 (рис. 4). Команда OR выполняет операцию «логического или» между соответствующими парами битов операндов команды и помещает результат на место операнда получателя данных. Рисунок 4 – команда OR В четвертом задании необходимо занести в регистр BX число 7 и преобразовать его в ASCII код символа “7” (маска должна быть универсальной и подходить для любой десятичной цифры) (рис. 5). Десятичные числа следуют от 30-го элемента ASCII кода, следовательно, дабы получить десятичное число, нужно задать число для регистра и прибавить 30 к заданному числу - получается 37. После число будет (по ASCII коду) выдавать десятичные числа. Рисунок 5 – преобразование в ASCII код символ «7» Также необходимо преобразовать ASCII код «34» в число (маска должна быть универсальной и подходить для любой десятичной цифры) (рис. 6). Рисунок 6 – преобразование из ASCII кода «34» в десятичное число В следующем задании необходимо любой логической командой установить ZF флаг (рис. 7). Используя команду «отрицающее или» (xor), где получатель и источник один и тот же регистр – в таком случае, регистр будет приравнен к нулю, и установится Zero Flag. Рисунок 7 – установка ZF Далее любой логической командой сбросить флаги ZF и CF. ZF выполнен в прошлом задании. Чтобы установить CF – существует команда – «stc» (set carry flag), достигается результат при помощи команды OR. Рисунок 8 – установка CF с помощью stc Рисунок 8 – сброс ZF и CF Заключение В данной лабораторной работе изучены и применены на практике логические команды языка Ассемблер, изучено взаимодействие с флагами при помощи логических команд: Сброс и установка CF, осуществление перевода десятичных чисел в ASCII код и наоборот. Материал усвоен всецело и полностью. Список литературы Инструкция AND http://www.av-assembler.ru/instructions/and.php (24.10.2022) Логическое ИЛИ http://www.av-assembler.ru/instructions/or.php (25.10.2022) Команда XOR http://www.av-assembler.ru/instructions/xor.php (25.10.2022) |