Скоро праздники: через 45 дней (07.11.2023) День согласия и примирения через 48 дней (10.11.2023) Всемирный день молодёжи через 53 дней (15.11.2023) Всероссийский День Призывника через 55 дней (17.11.2023) Международный день студентов
Сейчас на сайте
· Гостей: 1
· Пользователей: 0
· Всего пользователей: 2,874 · Новый пользователь: JustinziVow
Баннеры
Мы рады приветствовать Вас на сайте групп факультета ИТ МИРЭА 2009 года поступления!
Спешим сообщить Вам, что без регистрации вы увидите лишь малую часть нашего сайта и не увидите самых "вкусных" файлов, тем и форумов.
Рекомендуется зарегистрироваться здесь - регистрация. Ну или.
Смотрим "guide по халяве" в теме Решенные задачи.
Дамп файлового архива vv206.ru (торрент): http://itv09.org/forum/viewthread.php?thread_id=98
Если хотите стереть свое сообщение насовсем - напишите вместо его текста [del] или что-нибудь в этом роде, администратор увидит и удалит его. Также можно сделать это самостоятельно - нажмите кнопку "редактировать сообщение" рядом с требуемым сообщением, а затем поставьте галочку у "Удалить сообщение", затем нажмите "Сохранить".
Сообщений: 28 Благодарности: 9 раз(а) в 6 сообщениях Зарегистрирован: 24.09.10 Со дня регистрации: 4747 Пол:
Дамп папки с лабораторок по оргэвм. В архиве прога, старая методичка (Новую отфотаную выложу попозже, варианты берем из новой). Программа работает на вин7 обеих версий и на хр sp3. Лично мне предмет понравился, довольно интересно.
Сообщений: 543 Благодарности: 158 раз(а) в 98 сообщениях Зарегистрирован: 11.09.09 Со дня регистрации: 5125 Пол:
RE: Лабораторные работы по ОргЭВМ
< Скоро здесь будут лабы, руководства к ним и слегка грязно-патченый эмулятор :) Скорее всего до конца этой недели. >
1я часть: небольшой патч для эмулятора.
Эмулятор (кто запускал - тот уже заметил, наверное) изобилует неочевидностями и порой просто кривизной, и это не может не печалить. Исправить бы в нем много чего было бы неплохо, но боюсь, исправлять пришлось бы слишком много, и "дешевле" было бы просто написать свой эмулятор ;)
Но что раздражало более всего (меня, по крайней мере) по части использования, не считая необходимости вбивать команды не мнемоникой, а сразу кодами и не самая удобная система ввода - так это окна, разворачивающиеся во весь экран и их взаимная блокировка.
Посему сделал патчик, который правит эти 2 вещи:
окна теперь нормального размера
окна не блокируют друг друга, поэтому можно свободно переключаться между ними
У него там было нечто вроде (не вполне понятно, зачем):
Код
myWindows[] = EnumThreadWindows();
for (i = 0 ; i < myWindows.size; i++ )
{
if (myWindows[i].Visible && myWindows[i].Enabled)
{
myWindows[i].Enabled = false;
}
}
Мелькала у нас также идея написания своего эмулятора (потому что этот уж очень не устраивал) и нормального редактора ASM-команд. Насчет первого не знаю пока, второе уже начато, формат образов эмулятора поковырял (а там... лучше и не заглядывать). Да, заметьте одну из немногих полезных фич - полный дамп состояния эмулятора (Файл->Сохранить как, Файл->Открыть, некоторые не заметили).
Хотел еще пропатчить неочевидность работы указателя команд (PC), но задав вопрос на лабе получил ответ "это не баг, это фича". Попробуйте перезаписать кнопками "PcL"/"PcH" (изменение младшего/старшего байта PC) адрес следующей команды и нажать на "Выполнить" в покомандном режиме - значение счетчика изменится только визуально. Там почему-то 2 адреса, по которым хранится значение его, и для того чтобы и правда перейти к другой команде придется еще и нажать "ОЗУ" и ввести в поле ввода адреса ОЗУ еще раз желаемый адрес для PC (!)
Действительно, надпись над полем после выполнения затем меняется на "Младший байт счетчика команд", но это происходит не всегда, и не вполне понятна связь между регистром PC и полем ввода адреса ОЗУ (а вам?). Более того - ввод любого адреса в поле адреса для ОЗУ приведет к перезаписи им PC (!).
2я часть: первая лаба.
Лабы у нас как вы видите две. Первая заключается в тупом вбивании команд в эмулятор и потактовой записи их работы в таблицу. Это задание также сразу захотелось автоматизировать (ибо совсем не улыбалось каждый такт руками копировать-вставлять данные со схемы в таблицу), но оказалось, что все уже сделано до нас :-D
Благодаря ув. Nosferatu с vv206 в соотв. дампе вы можете обнаружить софтинку "EVM.exe", которая путем дергания FindWindowEx/SendMessage(WM_GETTEXT) не стесняясь берет нужные для таблицы данные прямо из структурной схемы эмулятора CPU580.exe (проверить легко - напр. напишите на структурной схеме в поле "PSW" что-нибудь свое, а затем после нажатия F1 посмотрите в поле "комментарий" в EVM).
Т.е. запускаем эмулятор, запускаем EVM, вводим нужные по варианту команды, начинаем потактово выполнять и после каждого такта переключаемся на EVM, нажимаем F1 и заполняем таким образом очередную строку таблицы.
Я хотел автоматизировать выполнение, но по заданию там таки просят чтобы напр. если команда перемещает данные из регистра в память (напр. MOV M,B - передача из регистра B в ОЗУ по адресу H:L), то нужно чтобы в этом регистре было что-то, (а для данной команды еще и что-то в H:L), также там и встречаются JNZ/CALL (переход), из которых потом надо бы вернуться обратно, дабы продолжить выполнение варианта. Если у кого есть идеи как это лучше сделать - скажите.
Посему что могу предложить пока - сделать глобальную комбинацию клавиш для EVM.exe (т.е. чтобы не нужно было переключаться постоянно на его окно) и сгенерить дампы для эмулятора для вашего варианта.
Анализировать логику, что я привел выше (записать в зав. от команды что-то в регистры, вернуться назад после JMP, ведь по тому участку памяти, куда мы перейдем скорей всего пусто, нет перехода обратно) я пока увы, не готов. Для примера посмотрите в том же архиве vv206 примеры сделанных 1х лаб - несложно, не забывать только вписывать что-нибудь типа 0xABCD в регистры, к которым идет обращение, и если эмулятор делает что-то не совсем верно (а такое у него бывает) - отразить это в комментарии.
3я часть: лаба 2.
Вот тут уже интереснее - нужно реализовать 7 простых алгоритмов (разве что умножение/деление вспомнить придется в 5м и 6м задании). Свои решения с комментариями будут позже (не делал свой вариант пока), вам же пока предлагаю заглянуть все в тот же архив с вв206, взять любой готовый вариант, и если не хочется разбираться - просто переписать его, изменив цифры (алгоритмы-то у всех одни и те же).
Вот-с. Пока это все, что я могу вам предложить. Дел навалилось немало, как я уже говорил, поэтому остальное если хотите - ждите чуть позже.
// UPD. Еще одна грязно-патченая версия, альфа, теперь по F1 не открывается справка (то что обещал сделать для облегчения выполнения 1й лабы), и не мешает отлову его нажатия EVM-ом, у него итак был глоб. хоткей. Поэтому можно теперь запускать их вместе и не переключаясь жать F1. Прилагаю не патч, а готовый exe. Также отдельно кладу EVM.
I've got something for your mind, your body & your soul.
Сообщений: 543 Благодарности: 158 раз(а) в 98 сообщениях Зарегистрирован: 11.09.09 Со дня регистрации: 5125 Пол:
RE: Лабораторные работы по ОргЭВМ
Вот мой черновой вариант второй (вар. 8). Не хватает 5, 6 и 7 заданий, ибо в первых двух умножение (тут есть мысли как сделать), а в 7м - деление (тут еще пока мыслей не особо). Извиняйте, что так торможу, не столь давно вспомнил что скоро лабы .
Делал утром сильно невыспавшись, могут быть ляпы.
// UPD. Договнокодил 5 и 7
I've got something for your mind, your body & your soul.
Сообщений: 543 Благодарности: 158 раз(а) в 98 сообщениях Зарегистрирован: 11.09.09 Со дня регистрации: 5125 Пол:
RE: Лабораторные работы по ОргЭВМ
В ближайшее время постараюсь дооформить, приведу к cdecl/stdcall, сделаю деление (там кстати не такой сложный алгоритм как казалось). И да, в 8м пункте 2й лабы можно через регистры, как делал я, искренне не понимая зачем в данной задаче стек, но сегодня мне пояснили, что там имелось ввиду сделать все же "канонично", как в стековой машине - сделал нечто похожее, доделаю до нормального.
Как и советовал в .doc-е - не советую пользоваться методичкой как справочником команд, они там описаны не полностью (например поймете из нее, что при RAR у вас старший разряд заполнится флагом C?) и не все (напр. нет STAX, логичного приложения к LDAX), вместо этого рекомендую вместе с ней (если не "вместо", то "вместе") например http://affon.narod.ru/Posobie.htm, там есть даже таблица, поясняющая какие команды и как "трогают" флаги, да и по мнемонике код искать удобней, описания полнее и т.д.
Также только вчера дошло (и как раньше не доходило, не могу понять, читал ведь), что ведь наш КР580ВМ80А == i8080, под который есть солидное количество хороших эмуляторов и хороших же манов с описаниями команд, примеров кода и всего-всего. У i8085 (КР1821ВМ85А) должен быть схожий набор команд и такая же разрядность регистров и шин, а под него эмуляторов еще больше. Тут вам и под Windows, и под DOS, и "гнутый" кроссплатформенный, и еще, и еще, и еще... И с нормальными макроассемблерами/дизассемблерами, отладчиками, прерываниями, I/O, даже с периферией, причем можно сделать любую - знай пиши плагинную dll с устройством или пользуйся готовыми! Снова "все уже написано до нас". i8080 на JS, на bash, еще на JS с кнопкой "Транслировать прелесть" (транслятор только правда походу), под KP580BM80, еще более скромный, еще.
Также он использовался в "Радио-86РК", "УМПК-86/80", поэтому эмуляторы для них тоже подойдут (напр. здесь). Тоже есть на JS, и еще один (новая версия).
В общем, есть из чего выбирать (надеюсь, накидал ключевых слов), и вы можете сделать свой выбор. Если сделаете хороший - предлагаю отписать, я например еще свой не сделал
Для второй лабы Бражникова сказала, что не обидится, если мы будем использовать другие эмуляторы; по ее словам в первой же мы должны пользовать все-таки этот, ибо не столько узнавать как работает данный процессор и как выполнит данные по варианту команды, сколько вылавливать баги в нашем CPU580...
I've got something for your mind, your body & your soul.
Сообщений: 274 Благодарности: 135 раз(а) в 82 сообщениях Зарегистрирован: 01.10.09 Со дня регистрации: 5105
RE: Лабораторные работы по ОргЭВМ
Мои лабы (если кому нужно). 6 вариант.
UPD: Забыл таблицу для 1 лабы.
Сурово программирую на суровых сях и не менее суровом ассемблере под просто нордически суровые микроконтроллеры.
Бысрто, а галвоне качевстенно наебру юблой тескт ID пользователя 13 - Это число преследует меня. Лопатный лопатор лопатных лопат - это лопата, которая лопатит лопаты лопатных лопат на лопате лопатчимых лопат лопачущей лопатной лопаты.
"Дикий вентилятор охлаждения" звучит как "непоколебимый рубильник угнетения".
Люди делятся на два типа: те, кому Помощник Эксперта и Решатель Проблем уже в кошмарах снятся, и остальные.
Сообщений: 274 Благодарности: 135 раз(а) в 82 сообщениях Зарегистрирован: 01.10.09 Со дня регистрации: 5105
RE: Лабораторные работы по ОргЭВМ
Варианты заданий для ИТВ-2-09:
1-Кемлер
2-Ладик
3-Мавзолевский
4-Филиппов
5-Федоров
6-Черкасов
7-Ершова
8-Фролов
9-Шебалкин
10-Акишин
11-Грабарчук
Сурово программирую на суровых сях и не менее суровом ассемблере под просто нордически суровые микроконтроллеры.
Бысрто, а галвоне качевстенно наебру юблой тескт ID пользователя 13 - Это число преследует меня. Лопатный лопатор лопатных лопат - это лопата, которая лопатит лопаты лопатных лопат на лопате лопатчимых лопат лопачущей лопатной лопаты.
"Дикий вентилятор охлаждения" звучит как "непоколебимый рубильник угнетения".
Люди делятся на два типа: те, кому Помощник Эксперта и Решатель Проблем уже в кошмарах снятся, и остальные.
Сообщений: 543 Благодарности: 158 раз(а) в 98 сообщениях Зарегистрирован: 11.09.09 Со дня регистрации: 5125 Пол:
RE: Лабораторные работы по ОргЭВМ
Да, насчет первой лабы. Кто делает первую - не попадитесь на недопонимание, на которое попался я. Байты в таблице из методички - это НЕ дамп памяти (не команды + операнды), это отдельные команды, т.е. для двух-трех-байтных команд операнды нужно также придумывать самим. В итоге я потерял несколько команд в отчете.
К Бражниковой можно подойти в пятницу после 4й пары.
I've got something for your mind, your body & your soul.