- •Содержание
- •Преобразование чисел
- •Целые числа
- •Дробные числа
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №2
- •Объединение со структурой с битовыми полями в языке Си.
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №3
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №4
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №5
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №6
- •Программирование на ассемблере
- •Основные команды ассемблера
- •Директивы
- •Программные прерывания
- •Отладка программ
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №7
- •Команда jmp
- •Команда Loop
- •Флаговый регистр (flags)
- •Команды условного перехода
- •Знаковые и беззнаковые данные
- •Команды логических операций: and, or, xor, test, not
- •Команды сдвига и циклического сдвига
- •Команды сдвига
- •Команды циклического сдвига
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Литература
Содержание отчета
Для защиты лабораторной работы каждым студентом должен быть написан отчет о лабораторной работе, оформленный в отдельной тетради для лабораторных работ по курсу «Вычислительные машины, системы и сети», включающий тему, цель работы и содержащий следующие пункты:
Общие сведения о числах формата BCD.
Сведения о способе хранения отрицательных чисел в компьютере.
Задания на занятие.
Алгоритм работы программы (блок-схема или словесное описание).
Листинг программы (смысловая часть).
Результаты тестов по программам negativ1.exeиnegativ2.exe.
Ответ на контрольный вопрос.
Контрольные вопросы
Как хранятся в компьютере отрицательные числа?
Укажите последовательность действий для преобразования отрицательного числа в двоичный вид.
Укажите последовательность действий для преобразования отрицательного двоичного числа в десятичный вид.
Что такое BCD-формат?
Для чего нужны числа, представленные в BCD-формате?
Чем отличаются упакованный и неупакованный BCD-формат?
Задание на занятие
Написать программу, выводящую отрицательные числа двухбайтовым шестнадцатеричным представлением.
десятичные числа, в диапазоне от –32 768 до –1, вводятся с клавиатуры;
для вывода чисел можно использовать строку формата “%x”.
Написать программу, выводящую отрицательные числа восьмибитовым двоичным представлением. Десятичные числа, в диапазоне от ‑127 до ‑1, вводятся с клавиатуры;
Выполнить тест перевода отрицательных десятичных чисел в двоичный вид (negativ1.exe) и тест перевода отрицательных двоичных чисел в десятичный вид (negativ2.exe). Результаты тестов предъявить преподавателю и переписать в тетрадь для отчетов по лабораторным работам.
Написать программу, осуществляющую перевод числа из десятичного формата в упакованный двоично-десятичный формат:
число, вводимое с клавиатуры с помощью строки формата “%d”, должно быть в диапазоне от 0 до 9 999;
полученное число в формате BCDвывести с помощью строки формата “%x”;
внешний вид введенного и полученного числа должен совпадать.
1Написать программу на языке Си, осуществляющую сложение двух чисел в двоично-десятичном формате. Длина вводимых чисел до 15 десятичных знаков (т.е. диапазон чисел от 0 до 999 999 999 999 999).
Сдать три (четыре*) программы преподавателю.
Лабораторная работа №6
Основы языка Ассемблер
Продолжительность: 8 часов.
Цель: Научиться основным командам языка ассемблер, общей структуре программы, транслировать исходные программы, компоновать исполняемые модули, а также изучить основные приёмы работы с программой Turbo Debugger компании Borland Soft.
Теоретическая часть
Язык ассемблера – это символическое представление машинного языка. Команды языка ассемблера непосредственно преобразуются в машинный код процессора, поэтому для того, чтобы стать хорошим программистом, необходимо хорошо представлять себе основные принципы работы компьютера.
Все процессы в машине на самом низком, аппаратном уровне приводятся в действие только инструкциями машинного языка. Реально на ассемблере пишут в основном программы, которые должны обеспечить эффективную работу с аппаратной частью. Иногда на ассемблере пишутся критичные по времени выполнения или расходованию памяти участки программы. Впоследствии они оформляются в виде подпрограмм и совмещаются с кодом на языке высокого уровня [5].
Процесс разработки программы на языке ассемблера включает следующие этапы:
Ввод исходного текста программы (файл с расширением *.asmсоздаётся с помощью любого текстового редактора, не использующего специальные символы форматирования текста –ncedit,edit,turbo,bcи пр.)
Создание объектного модуля (файл с расширением *.objсоздаётся с помощью транслятора)
Создание загрузочного модуля (файл с расширением *.exeили *.comсоздаётся с помощью компоновщика)
Отладка программы (исполняемые модули с расширением *.exeили *.comзагружаются в отладчик и контролируются программистом при исполнении)
При обнаружении ошибок на этапе отладки программистом вносятся изменения в исходный текст программы (см. этап 1) и всё начинается сначала.
Обратите внимание, если Вы создаете текст программы в редакторе, использующего кодировку Windows(Блокнот,WordPad,MicrosoftWordи др.), то символьные переменные, которые содержат русские буквы, в исполняемом модуле будут отображаться неверно.
Существует два основных пакета языка ассемблер:
"Макроассемблер" MASMфирмыMicrosoft;
"Turbo Assembler" TASM фирмы Borland.
В каждый из пакетов входит транслятор, компоновщик, средства отладки и другие вспомогательные программы. Мы будем использовать продукты фирмы Borland, которые расположены в папке "D:\BORLANDC\BIN\". Вот команды для последовательного прохода этапов разработки программы:
№ п/п |
Команда |
Описание |
Результат |
|
bc.exelab5.asm |
создание и редактирование программы |
текст программы на языке Ассемблер lab5.asm |
|
tasm.exelab5.asm |
трансляция в объектный модуль |
объектный модуль lab5.obj |
|
tlink.exelab5.obj |
компоновка в исполняемый модуль |
исполняемый модуль lab5.exe |
|
td.exelab5.exe |
запуск в отладчике |
пошаговый просмотр выполнения программы |