0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 36
1

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

28.12.2019, 16:01. Показов 4023. Ответов 15

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
В универе стоит задача написать эмулятор процессора на языке высокого уровня программирования по поиску максимального элемента в массиве.
Была лабораторная на языке ассемблер, где надо было на языке ассемблера найти максимальный элемент в массиве, это сделал, теперь надо написать эмулятор работы процессора по поиску этого самого элемента в массиве и вот тут уже проблема
Нужно досконально воспроизвести свою лабу на языке высокого уровня, то есть с jump, счётчиком команд, регистрами и прочими плюшками
Помогите пожалуйста

Можно просто помочь какой нибудь статьей или информационным ресурсом
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2019, 16:01
Ответы с готовыми решениями:

Создать программу на языке высокого уровня
Само задание Условие Построить стягивающее дерево неориентированного графа S методом поиска в...

Разработать алгоритм на языке высокого уровня
Помогите разработать алгорит, составив его описание на алгоритмическом языке высокого уровня,...

Си является языком программирования низкого уровня или высокого?
у меня вопрос , си является низкий уровень или высокий уровень языка программирования ?

Лабораторные работы по учебнику Павловская C# программирование на языке высокого уровня
может кто то делал уже лабораторные по этому учебнику? желательно 19 вариант( если ни у кого...

15
Ушел с форума
Автор FAQ
16276 / 7601 / 1064
Регистрация: 11.11.2010
Сообщений: 13,616
28.12.2019, 16:26 2
давай я помогу тебе жми на ссылку
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.12.2019, 16:27 3
Цитата Сообщение от marcusblack Посмотреть сообщение
Была лабораторная на языке ассемблер, где надо было на языке ассемблера найти максимальный элемент в массиве, это сделал
Так ты кинь сюда программу, которую надо сэмулировать-то. Или ты хочешь эмулятор на все x86 инструкции?
0
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 36
28.12.2019, 16:38  [ТС] 4
Проблема в том что преподаватель сказал что за определенный процессор цепляться не надо, у нас условный ассемблер, мы даже регистра называли a, b и так далее
Я даже не уверен в том что моя лабораторная написана правильно
Так что по сути мне любой эмулятор процессора по поиску максимального элемента в массиве подойдет
Но если это поможет, то вот
Изображения
 
0
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 36
28.12.2019, 16:41  [ТС] 5
Се ля ви. Такое образование в магистратуре. Первая лабораторная верно, вторая на языке ассемблера найти сумму элементов массива, третья уже эмулятор процессора первой. Никаких курсовых нету, была бы курсовая я бы так и написал
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.12.2019, 16:55 6
А что такое mas[a] если такого имени в коде нет? А [0]? индекс без всего?
dec -1? Что это значит? Декремент, это уже -1.
Мне кажется, что программа даже на выдуманной языке какая-то неправильная. Ну, как минимум, странная.
Я даже сам по-человечески это программу интерпретировать не могу, чтобы она работала.
0
Ушел с форума
Автор FAQ
16276 / 7601 / 1064
Регистрация: 11.11.2010
Сообщений: 13,616
28.12.2019, 17:03 7
Vourhey,
а как вам
Assembler
8
9
10
11
12
cmp c,b
jb L3
jump L3
L2: Finish
L3: абракадабра
для чего нужно было сравнение, если в любом случае переход на L3 ? Развод чистой воды
0
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 36
28.12.2019, 17:30  [ТС] 8
Попробовал с комментариями, объяснить логику написанной программы
Миниатюры
Создать эмулятор процессора на языке высокого уровня программирования  
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.12.2019, 17:33 9
Элемент какого массива [0]?

Добавлено через 32 секунды
Я понимаю, что mas означает массив. Но какой? Он нигде не объявлен, не определен.
0
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 36
28.12.2019, 17:57  [ТС] 10
array bb и есть массив
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.12.2019, 18:02 11
И как моему эмулятору узнать, что массив bb? А что такое тогда массив mas? Почему наверху bb? В коде mas или вообще [0]? Мне в эмуляторе как разобраться, что [0] это обращение именно к массиву bb, а не aa?
0
0 / 0 / 0
Регистрация: 12.04.2017
Сообщений: 36
28.12.2019, 18:39  [ТС] 12
Регистры обозначались рандомно, ну что бы решить эту проблемы, мы можем просто регистр a назвать b. Наверху bb потому что видел что когда пишут массив, чаще всего делают так array dw к примеру. mas [a] в 4 строчке подразумевает под собой что мы берем последний элемент в массиве. Возможно стоит ввести один регистр с 0, где 0 элемент массива, а второй регистр с 6, где 6 последний элемент в массиве, один из них будет проверять не дошли ли мы до начала массива и обрывать работу, а другой будет снижать каждый раз элемент в массиве на 1. Мне первый код зачли, вот так меня учат, везде нужно разбирать самому, по этому и возникают такие ошибки и непонятки
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.12.2019, 18:47 13
Цитата Сообщение от marcusblack Посмотреть сообщение
Наверху bb потому что видел что когда пишут массив, чаще всего делают так array dw к примеру
dw это не имя массива, это тип данных в нем.

Добавлено через 41 секунду
Цитата Сообщение от marcusblack Посмотреть сообщение
mas [a] в 4 строчке подразумевает под собой что мы берем последний элемент в массиве.
Извини, но в твоей программе массива с именем mas все еще не существует.

Добавлено через 27 секунд
Цитата Сообщение от marcusblack Посмотреть сообщение
Мне первый код зачли, вот так меня учат,
Грустно. Надо разбираться самому.

Добавлено через 3 минуты
Цитата Сообщение от Mikl___ Посмотреть сообщение
Vourhey,
а как вам
Ух ты... я до этого места еще не дочитал. Мой "компилятор" сломался раньше
0
Модератор
Эксперт по электронике
8475 / 4334 / 1642
Регистрация: 01.02.2015
Сообщений: 13,455
Записей в блоге: 8
28.12.2019, 22:37 14
marcusblack, я бы начал с методички и лекций. Потому как сомневаюсь, что вам нужно создать Bochs или QEMU.
И нужно определяться как будет происходить "эмуляция" - некие коды будут интерпретироваться как команды, или "на лету" будет парситься исходник и определяться действие (интерпретатор ассемблера).

Если вы не можете ответить на эти вопросы, то и в платном разделе никто не возьмётся за выполнение работы.

В любом случае - объём работы очень большой - или вы при помощи подсказок преподавателя, однокурсников, форума осилите самостоятельно, или ищите помощи в платном разделе.

Я когда-то для проверки периферии микропроцессорной системы на электронной плате (порты ввода вывода кр580вв51 и кр580вв55) при помощи стенда (96 перенастраиваемых на ввод или вывод контактов, управляемых с компьютера) подключался к системной шине процессора кр580вм80, сигналом HLD захватывал шины, и потом, имитируя циклы чтения и записи, с компьютера обращался к периферии. Таким образом, проверялись микросхемы, выполнялся ремонт.
Это была своего рода эмуляция процессора.
Почему-то думаю, что вам нужно совсем не такое - стенда у вас нет.

Добавлено через 22 минуты
Вот статья на хабре по созданию эмулятора придуманного процессора
https://habr.com/ru/post/457144/
Наверняка, в сети есть и ещё подобные и более полные статьи.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
28.12.2019, 22:41 15
Лучший ответ Сообщение было отмечено Mikl___ как решение

Решение

Ещё на курсере (не реклама) есть отличный курс из двух частей, "from nand to tetris" называется. Начиная с базовых nand пишем свой "процессор", ассемблер, компилятор для языка и в итоге тетрис.
1
ФедосеевПавел
03.01.2020, 15:51     Создать эмулятор процессора на языке высокого уровня программирования
  #16
 Комментарий модератора 
Тема закрыта.
Причина - создание заявки в разделе платных услуг
https://www.cyberforum.ru/orde... 63104.html
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.01.2020, 15:51

Программа тестирования по одному из разделов курса «Программирование на языке высокого уровня»
Разработайте программу тестирования по одному из разделов курса «Программирование на языке высокого...

Книги, где была показана связь от процессов на уровне электроники до языков программирования высокого уровня?
Доброго времени суток! Посоветуйте, пожалуйста, книги, где была показана связь от процессов на...

Написать простейший эмулятор командного процессора ОС Linux в среде ОС Windows на языке Delphi
Написать простейший эмулятор командного процессора ОС Linux в среде ОС Windows на языке Delphi....

Как создать эмулятор процессора?
Подскажите, как создать эмулятор процессора на C#. Не важно какого, хоть chip8. Просто подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru