- •Московский государственный институт
- •Лабораторная работа №1 Исследование особенностей модели фон Неймана Цель работы
- •Модель фон Неймана
- •1 7 B a
- •1 7 B a
- •Лабораторная работа №2 Программное обеспечение пк.
- •3. Панель задач
- •4. Контекстное меню
- •5. Программа Проводник
- •6. Работа с папками и файлами в ос Windows
- •6.1 Создание папки Из программы Проводник.
- •Из программыМой компьютер
- •6.2 Создание файла
- •6.3 Сохранение файла
- •Задание
- •Сведения об успеваемости студентов авт за 2003/2004 учебный год
- •Решение уравнений. Решение прикладных задач в Excel.
- •8. Внедрение объекта через буфер обмена
- •Лабораторная работа №3 Работа с файлами в осWindows Введение
- •1. Создание папки Из программы Проводник
- •Из программы Far
- •Из программыМой компьютер
- •2. Создание файла
- •3. Сохранение файла
- •4. Поиск файла или папки
- •5. Раскрытие папки и открытие файла
- •6. Копирование и перемещение файла или папки
- •Проводник
- •Мой компьютер
- •7. Удаление файла или папки
- •Проводник
- •Лабораторная работа №5 Форматирование текста вWord
- •Лабораторная работа №6 Таблицы вWord
- •Лабораторная работа №7 Рисунки вWord
- •Лабораторная работа №8 Подготовка документаWordк печати
- •Лабораторная работа №9 НастройкаBios
- •Начальная загрузка компьютера
- •3. Свойства других чипсетов
- •4. Свойства интегрированных устройств
- •5. Свойства слотов pci
- •6. Управление питанием
- •7. Пароли
- •Лабораторная работа №10 Определение размеров кластера
1 7 B a
1 7 B a





0
0

44
4 5 6 7 7 6 5 4
Байт с наиболее
значащей частью
(“big-end”,
в исходном числе он находится слева)
сохраняется в память по наименьшему
адресуN(n=4),
машины:
Sparc, Apple, IBM-370 ….
Байт с наиболее
значащей частью (слева)
сохраняется в
память по наибольшему адресу N=3
(n=7), (“little-end”),
машины: Intel
Рис. 3. Два способа хранения многобайтовых данных
Необходимо отметить, что и в том, и в другом случае слово, содержащее это число, имеет, адрес – 0, но в первом случае мы записываем его в прямом виде - 17BA, а во втором в перевернутом. Принято в качестве адреса слова, которое состоит из нескольких последовательно расположенных байтов, использовать адрес байта с наименьшим номером. В итоге адреса слов уже не будут меняться через единицу, приращение будет зависеть от длины машинного слова.
Экспериментальная часть
Рассмотрим программу, которая сама сформирует внутри себя логическую команду и выполнит ее. Выпишем некоторые коды логических операций из справочника по системе команд IBMPC.
Таблица 1. Коды логических операций между регистрами AX и BX
|
Команда |
Код |
Примечание |
|
AND AX, BX |
21 D8 |
Логическое И |
|
OR AX, BX |
09 D8 |
Логическое ИЛИ |
|
XOR AX, BX |
31 D8 |
Исключающее ИЛИ |
Код первой формируемой команды – 21 D8 поместим сначала в регистрCX, а затем оттуда в оперативную память.
Получим следующую программу на ассемблере.
Таблица 2. Программа, формирующая и выполняющая логическую операцию
|
Адрес |
Команда |
Действие |
Пояснение |
|
100 |
movax,1234 |
поместить 1234 в регистр AX |
1-ый операнд |
|
103 |
movbx,5678 |
поместить 5678 в регистр BX |
2-ой операнд |
|
106 |
movcx,D821 |
поместить D821 в регистрCX |
команда И |
|
109 |
mov[10D],cx |
скопировать CXв ячейку 10D |
записать команду в ОЗУ |
Как вы видите, первые две команды задают абсолютно произвольные константы (все данные приведены в шестнадцатеричном формате), над которыми будет произведена логическая операция И. Следующая команда (106) заносит в CXперевернутый код операции (D8 21 вместо 21D8). Причину этого мы уже обсуждали. Команда 109 заносит в ячейку ОЗУ со следующей командой (нетрудно убедится, что ее адрес 10D) выбранную логическую операцию.
Чтобы запустить программу можно использовать стандартный отладчик DEBUG, входящий в состав ОСWindows(кнопкаПуск, затемВыполнить).

Рис. 4. Вызов программы Debug
После ввода программы проверим ее правильность, для этого введем u, затем нажмем клавишу <Enter>. Обратите внимание на следующий важный факт. Начиная с ячейки 10Dинформация не вводилась, тем не менее вы увидите пятую команду, которой не было.

Рис. 5. Ввод программы и проверка
Теперь, исполним нашу программу. Для этого командой t5 попросимDebugвыполнить очередные 5 команд.

Рис. 6. Исполнение программы
Задание:
Убедитесь в правильности работы программы (проверьте результат).
Задайте команду XOR(D8 31). Проверьте ее выполнение для операндов 2476 и 0F31.
Задайте команду OR(09D8). Проверьте ее выполнение для операндов 2476 и 0F31.
Выводы
Мы убедились в том, что можно реализовать вычислительную машину чисто программным способом.
Данный эксперимент подтверждает, что не существует принципиального различия между данными и командами, более того некоторая команда программы может играть роль данных для другой команды.
Однако, нам необходимо понимать, что помимо созидательной функции, способность программы изменять саму себя может играть и разрушительную роль.
