PDA

Просмотр полной версии : Программирование ЭВМ x64



RA3XCQ
27.11.2015, 20:36
Доброго времени суток всем!
Вопрос, к сожалению, далёк от радиолюбительства в конкретике, но не редки ситуации, когда на радиостанции используется компьютер. На компьютере, как правило, есть игры, в которые операторы радиостанций порой с удовольствием играют. А иногда и пишут довольно сложные программы, в том числе и для радиолюбительства, самостоятельно. Может быть, чтобы совместить полезное с приятным, есть смысл уточнить вопросы программирования на примере какой-нибудь игры?
Обнаружилось, что Tetris Яковлева, который более-менее благополучно работал как на машине с 286 процессором Intel, так и на более поздних машинах в командной строке, перестал работать в командной строке ноутбука HP Pavilion dv6 на Intel(R) Core(TM) i7-3610QM CPU 2,3 GHz в среде 64-х разрядной операционной системы Windows 7 Домашняя расширенная.
На ЭВМ с процессором AMD Sempron(tm) Processor 3000+ 1.81 GHz в среде 32-х разрядной операционной системы Windows 7 Профессиональная Service Pack1 данная программа пока ещё работает.
На ноутбуке эта программа работает в программе DOSBox 0.74.
Я сам не большой любитель копаться в машинных кодах, но со времён Микро-80, Радио-86РК, Вектор, Специалист, Ириша, ЮТ-88, Орион 128, ZX Spectrum общепринято, что это, хотя бы, вполне возможно. С 1985 по 1990 год выходил журнал "Микропроцессорные средства и системы" под ред. Ершова.
Объем данной программы 3635 байт.
Может быть, кто-нибудь вкратце подскажет, как её переписать для 64-х разрадной платформы? На https://msdn.microsoft.com/ru-ru/library/dd335933.aspx пишут, что команды с 8-ми битными регистрами, например, ah и al, также должны выполняться. Или все-таки менять их на RAX и так далее? Сохранится ли совместимая с процессором Intel 286 часть таблицы векторов прерываний и функции BIOS? У меня на ноутбуке прерывания мало того что отличаются, так и ещё с какими-то минусами в номере. Например, для видеокарты IRQ 0xFFFFFFFE(-2). Может быть, на ноутбуках отличная от настольных компьютеров архитектура, так что на настольном компьютере с 64-х разрядной операционной системой эта программа сразу заработает с командной строки?
В моём распоряжении книги Р. Джордейна "Справочник программиста персональных компьютеров типа IBM PC, XT и AT, Москва, "Фининсы и статистика", 1992 и Юрова В. И. "Assembler" 2-е издание, СПб., Питер, 2010.

RX3AKF
28.11.2015, 00:02
Рекомендую пользоваться любой виртуальной машиной, к примеру "Oracle Virtual Box". Свободно, бесплатно и безопасно. Единственное, что может быть проблемой - эмуляция звуковой карты, совместимой с Sound Blaster.

RO4I
28.11.2015, 11:49
Если у Вас нет исходников, то даже ради любопытства это крайне трудно. Гораздо проще написать с нуля используя например JAVA - будет работать под разными ОС. Я тетрис когда то за 1-2 недели сделал для PDP - 11. Обратная совместимость intel команд есть 100%, но как правило для получения быстродействия раньше использовали и не документированные функции ОС, которые потом майкрософт с чистой совестью игнорирует в новых версия ОС. Еще раз повторю если нет исходников но проще переписать, программа довольно примитивная.