как записать программу в машинных кодах в память модели эвм

Лабораторная работа №1 на тему Архитектура ЭВМ и система команд

как записать программу в машинных кодах в память модели эвм. %D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C %D0%BA%D1%83%D1%80%D1%81%D0%BE%D0%B2%D1%83%D1%8E %D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%83. как записать программу в машинных кодах в память модели эвм фото. как записать программу в машинных кодах в память модели эвм-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C %D0%BA%D1%83%D1%80%D1%81%D0%BE%D0%B2%D1%83%D1%8E %D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%83. картинка как записать программу в машинных кодах в память модели эвм. картинка %D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C %D0%BA%D1%83%D1%80%D1%81%D0%BE%D0%B2%D1%83%D1%8E %D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%83. Цель: знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации.

Лабораторная работа №1 на тему Архитектура ЭВМ и система команд

Цель: знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации.

Теоретические сведения

Для решения с помощью ЭВМ некоторой задачи должна быть разработана программа. Программа на языке ЭВМ представляет собой последовательность команд. Код каждой команды определяет выполняемую операцию, тип адресации и адрес. Выполнение программы, записанной в памяти ЭВМ, осуществляется последовательно по командам в порядке возрастания адресов команд или в порядке, определяемом командами передачи управления.

Для того чтобы получить результат выполнения программы, пользователь должен:

ввести программу в память ЭВМ;

определить, если это необходимо, содержимое ячеек ОЗУ и РОН, содержащих исходные данные, а также регистров IR и BR;

установить в PC стартовый адрес программы;

перевести модель в режим Работа.

Каждое из этих действий выполняется посредством интерфейса модели, описанного в главе 8. Ввод программы может осуществляться как в машинных кодах непосредственно в память модели, так и в мнемокодах в окно Текст программы с последующим ассемблированием.

При выполнении лабораторной работы необходимо ввести в память ЭВМ и выполнить в режиме Шаг некоторую последовательность команд (определенную вариантом задания) и зафиксировать все изменения на уровне программно-доступных объектов ЭВМ, происходящие при выполнении этих команд.

Команды в память учебной ЭВМ вводятся в виде шестиразрядных десятичных чисел (смотри форматы команд на рисунке 8.3, коды команд и способы адресации в таблице 8.4-8.5).

В настоящей лабораторной работе необходимо выполнить программирование ЭВМ в машинных кодах.

Пример 1

Дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг и зафиксировать изменение состояний программно-доступных объектов ЭВМ (таблица 1.1).

Источник

Запись программы в машинных кодах и ее выполнение. Основные принципы низкоуровневого программирования

Страницы работы

как записать программу в машинных кодах в память модели эвм. screen 1. как записать программу в машинных кодах в память модели эвм фото. как записать программу в машинных кодах в память модели эвм-screen 1. картинка как записать программу в машинных кодах в память модели эвм. картинка screen 1. Цель: знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации.

как записать программу в машинных кодах в память модели эвм. screen 2. как записать программу в машинных кодах в память модели эвм фото. как записать программу в машинных кодах в память модели эвм-screen 2. картинка как записать программу в машинных кодах в память модели эвм. картинка screen 2. Цель: знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации.

Содержание работы

Санкт-Петербургский Государственный Политехнический университет

Факультет Технической Кибернетики

Лабораторная работа №1 (вариант 5)

Архитектура ЭВМ и система команд.

Записать приведенную ниже программу напрямую в ОЗУ, после чего пошагово произвести ее трассировку, отследить происходящие изменения и интерпретировать их в соответствии с исполняемым кодом.

В соответствии с приведенным кодом выполним следующие действия:

IN – перенести значение с регистра IR на регистр Acc

WR 8 – записать содержимое Acc в 008 ячейку ОЗУ

DIV #4 – разделить содержимое Acc на число 4, причем Acc примет значение 16/4=4, в регистр DR запишется число 4

WR @8 – записать содержимое Acc в ОЗУ по адресу, содержащемуся в 008 ячейке ОЗУ. Регистр RA принимает значение 16 (т.е. адрес, использованный при косвенной адресации)

JMP 002 – перейти на выполнение команды во 2-й ячейке ОЗУ (зацикливание)

DIV #4 – разделить содержимое Acc на число 4, причем Acc примет значение 4/4=, в регистр DR запишется число 4

WR @8 – записать содержимое Acc в ОЗУ по адресу, содержащемуся в 008 ячейке ОЗУ

JMP 002 – перейти на выполнение команды во 2-й ячейке ОЗУ (зацикливание)

DIV #4 – разделить содержимое Acc на число 4, причем Acc примет значение 1/4=, в регистр DR запишется число 0. Флаг Z примет значение 1.

WR @8 – записать содержимое Acc в ОЗУ по адресу, содержащемуся в 008 ячейке ОЗУ.

JMP 002 – перейти на выполнение команды во 2-й ячейке ОЗУ (зацикливание)

Во время выполнения программы регистры MDR & MAR содержат значение и адрес последней ячейки ОЗУ к которой был произведен доступ (чтение команды/данных или запись результата)

Вывод: в результате работы записали небольшую программу в машинных кодах, проследили ее выполнение, освоили основные принципы низкоуровневого программирования.

Источник

Архитектура аппаратных средств

Знакомство с интерфейсом модели электронно-вычислительной машины, методами ввода и отладки программы, действиями основных классов команд, способов адресации. Процессор, оперативная память, сверхоперативная память (регистры общего назначения и кэш-память).

РубрикаПрограммирование, компьютеры и кибернетика
Видлабораторная работа
Языкрусский
Дата добавления28.04.2015
Размер файла18,2 K

как записать программу в машинных кодах в память модели эвм. ba. как записать программу в машинных кодах в память модели эвм фото. как записать программу в машинных кодах в память модели эвм-ba. картинка как записать программу в машинных кодах в память модели эвм. картинка ba. Цель: знакомство с интерфейсом модели ЭВМ, методами ввода и отладки программы, действиями основных классов команд и способов адресации.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

«Краснодарский информационно-технологический техникум»

Отчёт по лабораторной работе

Архитектура аппаратных средств

Формулировка задания дана последовательность мнемокодов, которую необходимо преобразовать в машинные коды, занести в ОЗУ ЭВМ, выполнить в режиме Шаг и зафиксировать изменение состояний программно-доступных объектов ЭВМ.

1. Процессор, оперативная память (ОЗУ), сверхоперативная память (регистры общего назначения и кэш-память), устройство ввода (Увв) и устройство вывода (Увыв).

В состав процессора входят центральное устройство управления (УУ) и арифметическое устройство (АУ).

3. Арифметико-логические и специальные команды, команды пересылки и загрузки, команды ввода/вывода, команды передачи управления Системные команды интерфейс электронный программа

4. Изменение естественного порядка выполнения команд программы; изменение содержимого счетчика команд с обеспечением переходов по программе

5. В модели учебной ЭВМ реализованы семь способов адресации:

При каждом обращении содержимое индексного регистра обычно модифицируется автоматически: увеличивается на 1 (индексная с постинкрементом) или уменьшается на 1 (индексная с прединкрементом).

6. Какие ограничения накладываются на способ представления данных в модели?

Команда Пуск запускает программу на выполнение. Программа представляет собой последовательность команд, записанных в ОЗУ. Программа выполняется в автоматическом режиме до команды HLT (Стоп) или точки останова. Программа выполняется по командам, начиная с ячейки ОЗУ, на которую указывает счетчик команд (PС), причем изменение состояний объектов модели отображается в окнах компонентов.

В состоянии Остановка модель учебной ЭВМ переходит в результате действия команды СТОП или автоматически в зависимости от выбранного режима работы.

Команда Шаг запускает выполнение одной команды либо одной микрокоманды (если установлен Режим микрокоманд) после чего модель переходит в состояние Останов.

В состоянии Остановка пользователь может просмотреть или изменить основные компоненты модели: регистры ЦП и РОН, ячейки ОЗУ, устройства ввода/вывода.

8. Как записать программу в машинных кодах в память модели ЭВМ?

Записать программу в машинных кодах в память модели ЭВМ можно на примере программной модели учебной ЭВМ реализованной стандартным Windows-совместимым интерфейсом, состоящий из нескольких окон: основного окна Модель учебной ЭВМ и окон компонентов Процессор, Память, Текст программы, Программа, Кэш-память, Микрокомандный уровень.

В окне Текст программы редактировать текст, загружать в него текстовые файлы и сохранять текст в виде файлов.

Окно компонента Программа состоит из трех составляющих: стандартного для эмулятора меню, панели управления и таблицы, которая имеет 300 строк и 4 столбца, каждая строка соответствует дизассемблированной ячейке памяти.

Технология выполнения работы:

Для преобразования заданных мнемокодов в машинные коды составим таблицу соответствия.

Например, Команда 1 имеет вид IN. Согласно табл. 1 приложения, которая содержит команды учебной ЭВМ переведем команду IN в машинный код, где старший разряд равен 0 и младший равен 1, IN: =01. Далее следует тип адресации, т.к. его нет, то он равен 0. Затем в команде следует номер ячейки памяти ОЗУ, которую согласно формату, данных учебной ЭВМ следует привести к трехзначному числу 000. Следовательно, Команда 1 в машинных кодах имеет вид: 01 0 000. Аналогично переводим в машинные коды остальные четыре команды.

Команда 2 имеет вид MUL #2. Согласно табл. 1 приложения, которая содержит команды учебной ЭВМ переведем команду MUL #2 в машинный код, где старший разряд равен 2 и младший равен 5, MUL #2: =25. Далее следует тип адресации, он равен 1. Затем в команде следует номер ячейки памяти ОЗУ, которую согласно формату, данных учебной ЭВМ следует привести к трехзначному числу 002. Следовательно, Команда 2 в машинных кодах имеет вид: 25 1 002.

Команда 3 имеет вид WR 10. Согласно табл. 1 приложения, которая содержит команды учебной ЭВМ переведем команду WR 10 в машинный код, где старший разряд равен 2 и младший равен 2, WR 10: =22. Далее следует тип адресации, он равен 0. Затем в команде следует номер ячейки памяти ОЗУ, которую согласно формату, данных учебной ЭВМ следует привести к трехзначному числу 010. Следовательно, Команда 2 в машинных кодах имеет вид: 22 0 010.

Команда 4 имеет вид WR @10. Согласно табл. 1 приложения, которая содержит команды учебной ЭВМ переведем команду WR @10 в машинный код, где старший разряд равен 2 и младший равен 2, WR @10: =22. Далее следует тип адресации, он равен 0. Затем в команде следует номер ячейки памяти ОЗУ, которую согласно формату, данных учебной ЭВМ следует привести к трехзначному числу 010. Следовательно, Команда 2 в машинных кодах имеет вид: 22 0 010.

Команда 5 имеет вид JNS 001. Согласно табл. 1 приложения, которая содержит команды учебной ЭВМ переведем команду JNS 001 в машинный код, где старший разряд равен 1 и младший равен 4, JNS 001: =14. Далее следует тип адресации, он равен 0. Затем в команде следует номер ячейки памяти ОЗУ, которую согласно формату, данных учебной ЭВМ следует привести к трехзначному числу 001. Следовательно, Команда 2 в машинных кодах имеет вид: 14 0 001.

Источник

Как записать программу в машинных кодах в память модели эвм

Многие любители не испытывают серьезных трудностей в овладении БЕЙСИКом. Для этого достаточно немного практики. Но рано или поздно они приходят к барьеру «машинного кода». Как это ни печально, но некоторые так перед ним и останавливаются. Это ни в коей мере не связано с отсутствием желания или способностей, просто многие не знают, с чего начать. Если в БЕЙСИКе можно начинать с чего угодно (при ошибке компьютер сам Вас поправит), то здесь Вы оказываетесь с процессором один на один, и такой метод проб и ошибок не срабатывает.

Итак, давайте напишем первую программу в машинном коде. Прежде всего, выделим для нее область памяти. Если Вы читали нашу книгу «Большие возможности Вашего «ZX-Spectrum`а», то знаете, что для БЕЙСИКа в оперативной памяти компьютера отведена область памяти, начинающаяся с адреса, на который указывает системная переменная PROG и заканчивается адресом, на который указывает системная переменная RAMTOP. Предположим, что Вы хотите записать программу в машинных кодах, начиная с адреса 30000. Дайте команду CLEAR 29999. Эта команда установит RAMTOP в 29999 и Ваша программа будет защищена от возможной порчи из БЕЙСИКа. Даже если Вы дадите команду NEW, области памяти, находящиеся выше RAMTOP, не будут поражены.

Теперь дайте две прямые команды одну за другой:

Если все, что Вы здесь прочитали, Вам понятно, то Вы уже поняли, как составляются программы в машинных кодах. Можно, конечно, возразить, что пользы от такой программы не очень много, но сейчас не в этом суть. Важно, чтобы Вы поняли, что некая последовательность чисел может быть последовательностью команд для процессора Z-80.

Теперь давайте вернемся к нашей первой программе и попробуем ее несколько развить, чтобы она все же что-то делала. Процессор Z-80 имеет несколько регистров, у которых есть имена – «А», «В», «С» и т.д. Каждый из них может содержать одно какое-либо целое число от 0 до 255 (т.е. один байт).

Существуют десятки команд процессора, которые позволяют копировать содержимое регистров из одного в другой, а также выполнять связь с внешним миром, в т.ч. и с оперативной памятью.

Итак, мы уже готовы к тому, чтобы написать программу, которая будет перебрасывать какое-либо число из одного регистра процессора в другой.

Источник

Как записать программу в машинных кодах в память модели эвм

Понятия имитация и эмуляция имеют близкий смысл и означают замену одного процесса другим, дающим (почти) такой же результат как и исходный процесс. Различия заключаются прежде всего в целях моделирования.

Имитационные модели строятся для исследовательских целей и стали широко применяться при решении задач теории массового обслуживания. Например, с помощью имитационной модели магазина можно определить вероятности простоя продавцов и пропускную способность магазина. Такие задачи решаются приблизительно, так как и исходные данные и результаты имеют статистический, вероятностный характер.

Модель написана на языке JavaScript и представляет интерес в качестве примера реализации различных приёмов программирования на этом языке. Чтобы увидеть текст моделирующей программы, нужно щёлкнуть правой кнопкой мышки по рабочему полю окна браузера и в появившемся меню выбрать пункт Исходный код страницы

Начало работы с моделью

Ознакомление с моделью начните с выполнения примера 1.

Первые два этапа всех команд одинаковые.

После выделения кода операции становится известно, какую операцию нужно выполнять, Дальнейшие этапы зависят от выполняемой операции.

Структура модели

Модель состоит из процессора, оперативной памяти, пульта управления и терминанала ввода-вывода. Предполагается, что терминал состоит из клавиатуры и дисплея. В качестве клавиатуры в модели служит клавиатура ЭВМ, на которой происходит моделирование. Дисплей имитируется всплывающими окнами, которые закрываются щелчком мышки.

По сравнению с современными ЭВМ модель представляет собой упрощённую, лучше сказать, сильно упрощённую гипотетическую ЭВМ, чуть-чуть напоминающую ЭВМ Минск-2, выпускавшуюся в 60-е годы прошлого века. В частности, Минск-2 имела 36-и разрядные слова.

Система команд моделируемой ЭВМ является подмножеством системы команд Упражнения 6. В модели нет операций с плавающей запятой. Для просмотра системы команд модели нужно нажать кнопку Список команд на пульте управления. Команды имеют следующую структуру:

| | | | || | | | | | | | | | | | | || | | | | | | | | | | | | |

0 КОп 56 Адрес 1 2021 Адрес 2 35

Для компактности изображения модели в окне браузера принята шестнадцатиричная система записи данных во все регистры процессора, в ОЗУ и пульт управления. Это сильно затрудняет восприятие машинных команд. Например, команда сложения (код 05) двух чисел, находящихся в 4-й (код 0004) и 5-й (код 0005) ячейках ОЗУ, в двоичном коде выгллядит так:

0 | 0 | 0 | 1 | 0 | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 00 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1

0 КОп 56 Адрес 1 2021 Адрес 2 35

Вся команда на рисунке разбита на группы по четыре двоичных разряда. Для наглядности соседние группы окрашены в разные цвета. Каждая группа соответствует одной шестнадцатиричной цифре. В шестнадцатиричном коде два младших (правых) двоичных разряда кода операции и два старших (левых) двоичных разряда первого адреса попадут в одну шестнадцатиричную цифру, самый младший разряд первого адреса смешается с тремя старшими разрядами второго адреса и весь код команды будет выглядеть так:

В модели каждая из трёх частей команды записывается в регистр команд процессора и вводится на панели команд пульта управления отдельным шестнадцатиричным числом. На пульте управления панель ввода команд служит только для удобства. Её функции может выполнять панель ввода данных. Только на панели ввода команд команда вводится в виде

а на панели ввода данных та же комада записывается в виде (1)

Если бы, как в реальных ЭВМ, команда с пульта вводилась в двоичном коде, то на пульте панель команд была бы не нужна.

Оперативная память (ОЗУ) изображена в модели в виде таблицы, состоящей из трёх колонок (адреса, содержимого ячейки и комментария). Ячейке памяти соответствует строка таблицы. Содержимое каждой ячейки представлено одним шестнадцатиричным числом, независимо от того, команда или данные хранятся в ячейке. Справа от ячейки даются комментарии. При вводе в ОЗУ через регистр команд команда в виде (2) автоматически заносится в область комментария. Например, команда 13 000c 0014 в ОЗУ будет выглядеть так

Для комментария к данным, вводимым через регистр данных, служит специальное поле рядом с панелью ввода данных.

Процессор в модели представлен счётчиком команд, регистром команд, регистром данных и арифметико-логическим устройством (АЛУ). АЛУ состоит из сумматора и трёх регистров.

Панель управления служит для ввода в ОЗУ команд и данных и запуска процесса выполнения команд.

Примеры программ в машинных кодах


Пример 1

Условия задачи. В ОЗУ заранее занесены 4 целых числа a=2, b=5, с=3, d=6. Вычислить g=(a+b)*(c+d). Программа для решения этой задачи имеет вид

Адрес ячейки
памяти
Данные или командаКомментарии
Д А Н Н Ы Е
0000)000 000 002a = 2
0001)000 000 005b = 5
0002)000 000 003c = 3
0003)000 000 006d = 6
0004)000 000 000e = a + b
0005)000 000 000f = c + d
0006)000 000 000g = e * f
0007)000 000 000Не используется
П Р О Г Р А М М А
0008)0500000001a + b
0009)1100040000e = a + b из АЛУ в ОЗУ
000A)

05

0002

0003

c + d
000B)

11

0005

0000

f = c + d из АЛУ в ОЗУ
000C)

07

0004

0005

e * f
000D)

11

0006

0000

g = e *f из АЛУ в ОЗУ
000E)

00

0000

0000

Останов

Пример 2

Условия задачи. В ОЗУ заранее занесены 5 целых чисел. Найти их сумму. Программа для решения этой задачи имеет вид

Программу, изменяющую саму себя очень трудно отладить, поэтому если есть возможность, следует избегать таких приёмов программирования. Обычно в системе команд ЭВМ предусмотрена автоматическая индексация адресов.

Данный пример иллюстрирует тот факт, что любая, даже примитивная, система команд, превосходящая по своим функциональным возможностям систему команд машины Тьюринга, достаточна для записи любого алгоритма.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *