Форум сайта python.su
Питон под дос есть
вот например
http://www.python.org/download/other/
http://www.caddit.net/pythond/
http://www.python.org/ftp/python/pc/
Офлайн
Ой, какие страшные поделки…
Офлайн
Честно говоря, кроме PDP, Z80, X86 (+64bit) и Z8+ ассемблеров, другими я не владел (Z80 с эмулятором - это то, что я имел в виду (и это даже не курсовая, ибо мои курсовые к этому не имели никакого отношения)). А времена были ээээх, я присоединяюсь. Но, кстати, Андрей, у меня есть отличная и очень простая задачка на x86 (я сам придумал по необходимости).
Имеются данные, которые находятся в регистрах ax, bx, cx и dx. Если эти регистры мысленно соединить вместе, то получится число размером 64 бита. Так вот, нужно это число циклически сдвинуть на 8 бит (как команда ‘ror ax’, только вместо ax стоит это число из 4-х регистров). Но есть одно простое условие: нельзя пользоваться внешней памятью, а только регистрами процессора.
p.s. Забыл сказать еще, что кроме команды mov больше ничего использовать нельзя. Это была задача на усвоение команды move и одновременное выявление талантов.
Отредактировано (Фев. 18, 2011 18:55:04)
Офлайн
Курсовая - это в смысле было курсе на третьем задание сделать кросс-компилятор и линковщик для АСМа на машине с воображаемой архитектурой.
Привычно забил. Помог нескольким людям к этим курсачом, а когда пришла пора сделал свой за сутки с нуля.
У меня были Z80, x86 и AVR (это такая распространенная типа-RISC поделка от Atmel.com) - на них писал довольно много.
Еще чуть-чуть какой-то Futjitsu и ARM7 - они в разработку не пошли, ограничился эмулятором.
Какая замечательная вещь была Atmel Tiny - крошечней некуда. 10 лапок, из них две вынужденно идут на питание и землю.
Памяти нет совсем. Т.е. есть небольшая flash (кажется, мы использовали богатую Tiny - 512 байт). И целых 32 байтовых регистра - раздолье!
Совершенствование прошивки закончилось, когда я при всех ухищрениях не смог впихнуть в нее новые команды - flash весь вышел.
А Atmel Mega - вполне серьезная штука, 4 Кб на борту. Для нее даже gcc был. Кстати, оказался более удобным компилятором чем платные аналоги.
Эээх. В результате микрооптимизации критический код стал выполнятся в 60 раз быстрее. Осцилограф не хотел регистрировать контрольный всплеск,
пока не догадался переключить ему развертку. Я был так горд собой!
Z80 - школьные годы, ZX Spectrum. Злой дядька продавал некопирующиеся диски с игрушками. Или давал напрокат за большие деньги.
Пришлось разбираться, как работает дисковый контроллер и писать копировщик, умеющий прочитать буквально всё.
На одном дисководе процесс шел чуть ли не два часа с постоянной сменой дискет - но оно того стоило!
К слову, у спектрума очень неудобный доступ к дисковой подсистеме - но это отдельная песня. Нелегко объяснить быстро.
x86 пошел скорее по инерции - но и сейчас иногда приходится смотреть на дизассембер, навыки помогают.
Памятью пользоваться нельзя, а другими регистрами можно? Ну зачем нам этот SI (или BP/SP, если хочется)?
Или через carry flag - но это заметно дольше.
Честно, отвык уже от такого…
Офлайн
Я тоже слабо уже помню, но вроде каждый из регистров можно было адресовать по половинкам ax - делился на ah и аl, так что для сдвига на восемь бит достаточно покидать половинки в друг друга и в al закинуть 0.
ЗЫ: или в ah, там вроде big endian
Отредактировано (Фев. 18, 2011 20:34:27)
Офлайн
little endian.
Нужен именно циклический сдвиг - чтобы в был не нолик а предыдущее число. Тоже решается.
Припоминаю, что на антиквариате сдвиг больше чем на один бит за раз не поддерживался…
Офлайн