- •Содержание
- •Преобразование чисел
- •Целые числа
- •Дробные числа
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №2
- •Объединение со структурой с битовыми полями в языке Си.
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №3
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №4
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №5
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №6
- •Программирование на ассемблере
- •Основные команды ассемблера
- •Директивы
- •Программные прерывания
- •Отладка программ
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Лабораторная работа №7
- •Команда jmp
- •Команда Loop
- •Флаговый регистр (flags)
- •Команды условного перехода
- •Знаковые и беззнаковые данные
- •Команды логических операций: and, or, xor, test, not
- •Команды сдвига и циклического сдвига
- •Команды сдвига
- •Команды циклического сдвига
- •Содержание отчета
- •Контрольные вопросы
- •Задание на занятие
- •Литература
Аннотация
Лабораторный практикум содержит методические указания и теоретические сведения по практическому изучению форматов компьютерного представления данных и введению в программную модель PC-совместимого компьютера. В практикум включены семь лабораторных работ, выполнение которых позволит понять основыIntel-архитектуры и научиться использовать полученные навыки при работе с компьютером. Выполнение индивидуальных заданий предусмотрено в большинстве работ, что обеспечивает хорошее восприятие нового материала студентами. Примеры в лабораторном практикуме разработаны с таким условием, чтобы программы можно было создавать с помощью инструментального средстваBorlandC++ 4.0, а запускать - в консольном режиме операционных системWindows9х и 2000/NT/XP.
Лабораторный практикум рассчитан на студентов, знающих основы программирования на языке высокого уровня Си и желающих углубить свои знания.
Содержание
Лабораторная работа № 1 3
Системы счисления 3
Лабораторная работа №2 18
Побитовые операции 18
Лабораторная работа №3 31
Синтез комбинационных схем 31
Лабораторная работа №4 43
Символьные данные 43
Лабораторная работа №5 54
Отрицательные числа и числа BCD 54
Лабораторная работа №6 62
Основы языка Ассемблер 62
Лабораторная работа №7 74
Команды переходов и логических операций 74
Литература 88
Лабораторная работа № 1
Системы счисления
Цель работы:Изучение двоичной и шестнадцатеричной систем счисления; освоение приемов перевода целых и дробных чисел из десятичной системы счисления в двоичную, шестнадцатеричную и обратно.
Продолжительность работы: 8 ч.
Теоретические сведения
Системы счисления
Обычное десятичное число состоит из цепочки десятичных цифр и десятичной точки, если число дробное [1]. Цифры занимают определенные позиции в числе, их еще называют разрядами. Общая форма записи десятичного числа приведена на Рис. 1.
Рис. 1.Форма записи десятичного числа
Система счисления, при которой имеет значение местоположение цифр в записи числа, называется позиционной системой счисления. Десятичная система счисления является позиционной. В любой позиционной системе счисления имеется основание (для десятичной системы счисления - 10). Любое число записывается в виде последовательности, состоящей из цифр, каждая из которых меньше основания. Количество цифр основания равно самому основанию. Основание показывает, во сколько раз вес каждой цифры меньше веса цифры, стоящей в старшем соседнем разряде.
Для -ичной системы счисления:
Число = , (1)
где - основание системы счисления, –j-ый разряд числа в -ичной системе.
Десятичные числа строятся из десяти цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Двоичным числам необходимо две цифры: 0 и 1. Для шестнадцатеричных чисел требуется 16 цифр. Для обозначения цифр, следующих за 9, принято использовать латинские буквы от AдоF(см. табл. 1).
Таблица 1.Цифры шестнадцатеричной системы.
Цифра |
Значение |
Цифра |
Значение |
Цифра |
Значение |
Цифра |
Значение |
0 |
0 |
4 |
4 |
8 |
8 |
C |
12 |
1 |
1 |
5 |
5 |
9 |
9 |
D |
13 |
2 |
2 |
6 |
6 |
A |
10 |
E |
14 |
3 |
3 |
7 |
7 |
B |
11 |
F |
15 |
На рисунке 2 десятичное число 197 представлено согласно формуле (1) в двоичной, десятичной и шестнадцатеричной системах счисления.
Рис. 2.Число 197 в двоичной, десятичной и шестнадцатеричной системах
Чтобы избежать двусмысленности трактования числа, в литературе используется индекс для прямого указания основания системы счисления. Например, число C5 кроме как шестнадцатеричным быть не может, потому что в нем встречается цифра С, но оно может быть именем переменной. Индекс 16 избавляет от этой двусмысленности:C516. А число 101 может быть и двоичным, и десятичным, и шестнадцатеричным (1012, 10110, 10116), так как цифры 0 и 1 есть во всех этих системах счисления.
Если индекс не указывать, то считается, что число записано в десятичной системе.
Для компьютеров метод индексирования чисел для указания системы счисления неприемлем, поэтому используется правило записи чисел: для чисел, вводимых пользователем, присваиваемых в текстах программ и выводимых программой, система счисления по умолчанию десятичная, кроме специализированных программ (например,debug.exeиtd.exe). В языках программирования для обозначения чисел в других систем счисления существуют свои обозначения (см. Табл.1.2.). Для вывода чисел в недесятичных системах счисления существуют специализированные строки форматирования и процедуры преобразования.
Таблица 1.2. Обозначение систем счисления в языках программирования.
Язык программи- рования Система счисления |
Паскаль |
Си |
Ассемблер |
Двоичная |
нет |
нет |
11000101b |
Шестнадцатеричная |
$C5 |
0xC5 |
0C5h |