3_Учебная машина (В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования), страница 4

PDF-файл 3_Учебная машина (В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования), страница 4 Практика расчётов на ПЭВМ (37032): Книга - 1 семестр3_Учебная машина (В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования) - PDF, страница 4 (37032) - СтудИзба2019-04-28СтудИзба

Описание файла

Файл "3_Учебная машина" внутри архива находится в папке "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования". PDF-файл из архива "В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 1 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 4 страницы из PDF

Что, например, будет происходить после выполнения команды из ячейки садресом 511? Какое значение после нажатия кнопки ПУСК имеют ячейки, расположенные вне введённого массива машинных слов? Как представляются целые и вещественные числа? Как будет, например, выполняться такая машинная команда ввода массива: ВВВ 500 100 000 ?Для ответа на почти все такие вопросы мы приведём формальное описание нашей учебноймашины.

При этом в качестве метаязыка мы будем использовать язык Турбо-Паскаль,1 которыйдолжен быть достаточно хорошо Вам знаком. Другими словами, мы напишем программу на ТурбоПаскале, выполнение которой моделирует работу нашей учебной машины, т.е. наша машина, поопределению, работает "почти так же", как и эта написанная нами программа-модель.Ниже приведена реализация учебной машины на языке Турбо-Паскаль:program УМ_3(input, output);constN = 511;typeAddress = 0..N;Tag = (kom, int, fl);{В машинном слове может хранится команда, целоеили вещественное число}Komanda = packed recordKOP: 0..31;A1, A2, A3: Address;end;Slovo = packed recordcase Tag ofkom: (k: Komanda);int: (i: LongInt)fl: (f: Single);endMemory = array[0..N] of Slovo;varMem: Memory;S, R1, R2: Slovo; {Регистры АЛУ}RK: Komanda; {Регистр команд}RA: Address; {Счётчик адреса}Om: 0..2;{Регистр w}Err: Boolean;beginInput_Program; {Эта процедура должна вводить текст программы с устройстваввода в память по кнопке ПУСК}Om := 0; Err := False; RA := 1; {Начальная установка регистров}with RK dorepeat {Основной цикл выполнения команд}RK := Mem[RA].k;RA := (RA+1) mod (N+1);case KOP of {Анализ кода операции}1Так как наша учебная ЭВМ является не языком, а исполнителем алгоритмов, то в качестве метаязыка необходимо выбрать не просто формальный язык (например, язык синтаксических диаграмм), а формальный алгоритмический язык, т.е.

язык, правильные слова в котором являются записями алгоритмов для некоторого исполнителя.1000: { ПЕР }begin R1 := Mem[A3]; Mem[A1] := R1 end;01: { СЛВ }beginR1 := Mem[A2]; R2 := Mem[A3]; S.f := R1.f + R2.f;if S.f = 0.0 then OM := 0 elseif S.f < 0.0 then OM := 1 else OM := 2;Mem[A1] := S; { Err := ? }end;09: { БЕЗ }RA := A2;15: { МОД }beginR1 := Mem[A2]; R2 := Mem[A3];if R2.i = 0 then Err := True else beginS.i := R1.i mod R2.i; Mem[A1] := S;if S.i = 0 then OM := 0 elseif S.i < 0 then OM := 1 else OM := 2;endend;31: { СТОП } ;{ Реализация остальных кодов операций }elseErr := True;end; { case }until Err or (KOP = 31)end.Прокомментируем эту программу, описывающую работу учебной машины.

Отметим сначала,что некоторая трудность возникает при моделировании начального ввода программы в память учебной машины при нажатии кнопки ПУСК. В нашей модели для задания такого начального ввода мыиспользовали вызов процедуры с именем Input_Program, описание этой процедуры не приводится.1Для хранения машинных слов учебной машины мы описали тип данных Slovo, который является записью с вариантами языка Турбо-Паскаль. В такой записи на одном и том же месте памятимогут располагаться команды, длинные (32-битные) целые числа или же 32-битные вещественныечисла стандартного типа Single.2 Таким образом, этот тип данных позволяет нам реализовать впрограмме на Паскале неразличимость представления команд, целых и вещественных чисел учебноймашины.Наша программа ведёт себя почти так же, как учебная машина.

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

Это представление мы подробно изучим в нашем курсе несколькопозже.В нашей модели мы привели реализацию выполнение только некоторых типичных команд изязыка учебной машины. Реализацию остальных команд Вы легко можете выполнить сами.1В архитектуре ЭВМ принято выделять центральную часть, куда входит основная (оперативная) память ицентральный процессор. Вся остальная аппаратура ЭВМ относится к так называемой периферии (периферийным устройствам). Таким образом, наша модель на Паскале формально описывает только центральную частьучебной машины.2Более привычный для программистов тип real Турбо-Паскаля здесь не подходит, потому что имеетдлину 48 бит, а не 32 бита, как нам нужно.11Обратите также внимание, как в нашей модели вычисляется адрес следующей выполняемой команды: RA: = (RA+1) mod (N+1) .

Такое правило перехода к следующей по порядку командепрограммы позволяет считать, что память учебной машины как бы замкнута в кольцо: после выполнения команды из ячейки с адресом 511 (если это не команда перехода) следующая команда будетвыполняться из ячейки с адресом ноль. Такая организация памяти типична для многих современныхЭВМ.Вопросы и упражнения1.2.3.4.5.6.7.8.9.10.Что такое код операции?Для чего необходим регистр признака результата?Объясните, как в нашей учебной машине должна выполняться такая команда ввода массивавещественных чисел ВВВ 100 500 000 .

Напишите соответствующую ветвь в формальномописании УМ-3 для реализации команды ввода вещественных чисел.Реализуйте в модели на Паскале выполнение команд ввода/вывода учебной машины.Почему при программировании на языке машины не существуют константы, как, например, вязыке Паскаль?Что такое переменная с начальным значением и как такую переменную разместить в памятиучебной ЭВМ?Что такое псевдокод?Объясните, почему для машины УМ-3 при решении некоторой задачи нельзя сделать такоераспределение памяти: "Пусть массив X располагается в ячейках с адресами от 100 до 199, аконстанта n=100 – в ячейке с адресом 200" ?Что такое самомодифицирующаяся программа?Почему в учебной машине УМ-3 обработка больших массивов возможна только при помощисамомодифицирующейся программы?.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее