- •Архитектура эвм и систем.
- •Стороженко а.С.
- •Валюкевич н.Е.
- •Оглавление
- •Введение Архитектура персонального компьютера
- •Набор регистров
- •Регистры состояния и управления
- •Организация памяти
- •Типы данных
- •Лабораторная работа №1 Применение inline assembler
- •Краткая теория
- •Функции ввода-вывода
- •Порядок выполнения
- •Задания
- •Контрольные вопросы
- •Лабораторная работа №2 Линейное программирование
- •Краткая теория
- •Команды пересылки данных
- •Арифметические команды
- •Сложение двоичных чисел без знака
- •Вычитание двоичных чисел без знака
- •Умножение двоичных чисел со знаком
- •Деление двоичных чисел со знаком
- •Преобразование типов
- •Порядок выполнения
- •Задания
- •Варианты
- •Контрольные вопросы
- •Лабораторная работа №3 Организация ветвлений в программе
- •Краткая теория
- •Команда сравнения cmp
- •Порядок выполнения
- •Задания
- •Контрольные вопросы
- •Лабораторная работа №4 Циклы
- •Краткая теория
- •Порядок выполнения
- •Задания
- •Варианты
- •Контрольные вопросы
- •Лабораторная работа №5 Циклы
- •Краткая теория
- •Порядок выполнения
- •Задания
- •Контрольные вопросы
- •Лабораторная работа №6 Работа с дисассемблером
- •Краткая теория
- •Порядок выполнения
- •Задания
- •Список рекомендованной литературы
- •Список дополнительной литературы
Порядок выполнения
С помощью данных методических указаний освоить применение inline assembler в среде Microsoft Visual Studio.
Написать программу согласно варианту задания.
Оформить отчет.
Задания
1. Написать программу, сумму чисел введенных с клавиатуры.
Контрольные вопросы
Перечислите основные этапы процесса создания программы в IDE Visual Studio.
Опишите последовательность действий которые необходимо совершить что бы создать новый проект в IDE Visual Studio.
Перечислите способы создания вставок на языке ассемблер.
Для чего необходимо в тестовых примерах необходима строчка «using namespace std».
Расскажите про конвейер, реализованный в микропроцессорах фирмы Intel — i486.
Расскажите, для чего служит оператор cout.
Приведите пример использования оператора cout.
Расскажите, зачем необходимо подключать библиотеку iostream и подключать пространство имен std.
Для чего в С++ используется директива #include.
Расскажите о назначение и синтаксис операторов cout и cin.
Расскажите, для чего служит оператор cin.
Приведите пример использования оператора cin.
Расскажите, какими способами можно организовать операции ввода/вывода в C++.
Для чего в C++ служит директива __asm.
Расскажите о пользовательских регистрах реализованных в микропроцессорах фирмы Intel — i486.
Лабораторная работа №2 Линейное программирование
Цель работы: освоить работу с арифметическими командами ассемблера.
Оборудование: персональный компьютер, Microsoft Visual Studio.
Краткая теория
Все машинные команды можно разделить на несколько функциональных групп (см. Рисунок 24):
Рисунок 24 – Классификация машинных команд
Команды пересылки данных
К этой группе относятся следующие команды:
mov <операнд назначения>, <операнд-источник>
xchg <операнд1>, <операнд2>
mov – это основная команда пересылки данных. Она реализует самые разнообразные варианты пересылки.
Отметим особенности применения этой команды:
Командой mov нельзя осуществить пересылку из одной области памяти в другую.
Нельзя загрузить в сегментный регистр значения непосредственно из памяти.
Нельзя переслать содержимое одного сегментного регистра в другой сегментный регистр.
Нельзя использовать сегментный регистр cs в качестве операнда назначения.
Для двунаправленной пересылки данных применяют команду xchg. Для этой операции можно, конечно, применить последовательность из нескольких команд mov, но из-за того, что операция обмена используется довольно часто, разработчики системы команд микропроцессора посчитали нужным ввести отдельную команду обмена xchg.
Естественно, что операнды должны иметь один тип. Не допускается (как и для всех команд ассемблера) обменивать между собой содержимое двух ячеек памяти.
xchg ax, bx ; обменять содержимое регистров ax и bx
xchg ax, word ptr [si] ; обменять содержимое регистра ax
; и слова в памяти по адресу в [si]
