Главная страница
Навигация по странице:

  • «АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ ИМЕНИ ГУМАРБЕКА ДАУКЕЕВА» Кафедра «Информационные системы и кибербезопасности» ОТЧЕТ

  • по лабораторной работе № 3

  • Специальность: 6В06102 – Информационные системы Выполнил Нагаец В.С. Группа ИСу-22-4 Приняла Голубева Т.В.

  • 1 Ход работы

  • Лабораторная работа №3 (1). Отчет по лабораторной работе 3 По дисциплине Системное программирование (сиб) На тему Логические команды языка Ассемблер


    Скачать 128.92 Kb.
    НазваниеОтчет по лабораторной работе 3 По дисциплине Системное программирование (сиб) На тему Логические команды языка Ассемблер
    Дата02.12.2022
    Размер128.92 Kb.
    Формат файлаdocx
    Имя файлаЛабораторная работа №3 (1).docx
    ТипОтчет
    #825059

    Министерство Образования и Науки Республики Казахстан
    Некоммерческое акционерное общество
    «АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ ИМЕНИ ГУМАРБЕКА ДАУКЕЕВА»
    Кафедра «Информационные системы и кибербезопасности»





    ОТЧЕТ
    по лабораторной работе № 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 код и наоборот.

    Материал усвоен всецело и полностью.
    Список литературы

    1. Инструкция AND http://www.av-assembler.ru/instructions/and.php (24.10.2022)

    2. Логическое ИЛИ http://www.av-assembler.ru/instructions/or.php (25.10.2022)

    3. Команда XOR http://www.av-assembler.ru/instructions/xor.php (25.10.2022)




    написать администратору сайта