Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Технический флейм »   Самая большая legacy
RSS

Самая большая legacy

Система команд x86

<<Назад  Вперед>> Страницы: 1 2 * 3 4
Печать
 
DrPass
Advanced Member


Откуда: Донецк
Всего сообщений: 3566
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 апр. 2005
Fe-Restorator написал:
[q]
Ни разу! Минимальная правка исходного кода вручную - да. И обязательно - полная перекомпиляция под новый проц 8086.
[/q]
Код с 8-битного 8080 действительно легко переносится автоматическим кросс-ассемблером на 8086. Именно ради этого в 8086 адресное пространство не по-человечески линейное, а сегментированное, все операции переходов 8080 превращаются во внутрисегментные переходы 8086.
Fe-Restorator
Гость

Ссылка

DrPass написал:
[q]
Код с 8-битного 8080 действительно легко переносится автоматическим кросс-ассемблером на 8086. Именно ради этого в 8086 адресное пространство не по-человечески линейное, а сегментированное, все операции переходов 8080 превращаются во внутрисегментные переходы 8086.
[/q]
Т.е. программы запускаются без всякой перекомпиляции? Что-т ни единого разу сие не срабатывало, сколь ни пробовал.
Сейчас на форуме
DrPass
Advanced Member


Откуда: Донецк
Всего сообщений: 3566
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 апр. 2005
User 0 написал:
[q]
Т. е., если я ассемблерную программу реального режима для 86/486 скомпилирую современным компилятором, указав опцию "для нового процессора", код будет иным, чем если взять старый компилятор для 486-го процессора?
[/q]
Если речь идет об ассемблерной программе, то код будет таким же. Ассемблер никогда не занимается фантазиями на тему оптимизации, он всегда преобразует в машинный код указанные операции один к одному. Если речь идет о языке высокого уровня, то, конечно, код будет иным.

Fe-Restorator написал:
[q]
Т.е. программы запускаются без всякой перекомпиляции?
[/q]
Прочти еще раз мою фразу, и погугли незнакомые тебе слова :)
Fe-Restorator
Гость

Ссылка

Хамишь. Некрасиво с твоей стороны. Впрочем, бери сию тему в свои руки, раз уж проявил к ней интерес: инициатива наказуема.
Сейчас на форуме
DrPass
Advanced Member


Откуда: Донецк
Всего сообщений: 3566
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 апр. 2005
Fe-Restorator написал:
[q]
Хамишь. Некрасиво с твоей стороны.
[/q]
Прошу прощения, обижать не хотел :) Просто болит голова и настроение плохое...
User 0
Junior Member


Откуда: Moscow
Всего сообщений: 112
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
25 дек. 2007
Fe-Restorator написал:
[q]
Т.е. программы запускаются без всякой перекомпиляции?
[/q]
Преобразование выполняется кросс-ассемблером в автоматическом режиме (а не процессором на лету). Насколько я понимаю, ассемблер берет исполняемый (или по крайней мере объектный) файл для 8080 и автоматически делает его совместимым с 8088/86.

Спасибо, DrPass, за разъяснения!
DrPass
Advanced Member


Откуда: Донецк
Всего сообщений: 3566
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 апр. 2005
User 0 написал:
[q]
Насколько я понимаю, ассемблер берет двоичный файл и автоматически делает его совместимым с 8086.
[/q]
Верно. У 8086 с 8080 отличаются коды команд, но есть их "смысловое" соответствие. Т.е. можно просто пройтись по коду программы и подменить инструкции 8080 на инструкции 8086, и оно заработает. Так на 8086 переносились, к примеру, WordStar, часть кода CP/M и т.д.
User 0
Junior Member


Откуда: Moscow
Всего сообщений: 112
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
25 дек. 2007
А можно ли узнать Ваше мнение, DrPass
(если вернуться назад, во времена, когда еще не существовало Java/.NET), в какой мере элегантность программной модели процессора и языка ассемблера влияют на эффективность программирования, качество компиляторов, быстродействие и компактность программ? Верно ли хотя бы отчасти предположение, что программисты по причине чрезмерного неудобства ассемблера x86 при всякой возможности отказываются от низкоуровневого кодирования, передавая эту задачу компиляторам ЯВУ, и является ли этот фактор значимым в общей сумме факторов, отрицательно сказывающихся на качестве ПО (таких, как слишком сжатые сроки)?
DrPass
Advanced Member


Откуда: Донецк
Всего сообщений: 3566
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 апр. 2005
User 0 написал:
[q]
в какой мере элегантность программной модели процессора и языка ассемблера влияют на эффективность программирования, качество компиляторов, быстродействие и компактность программ?
[/q]
На эффективность низкоуровневого программирования влияют очень сильно. К примеру, PDP-11 имела простую систему команд и адресацию. Программист PDP-11 обучался ассемблеру намного быстрее и проще, и в общем-то мог читать даже машинный код.
На быстродействие влияет, но косвенно. К примеру, размер программы для RISC-процессора (да и даже для приснопамятного 8080) будет раза в два-три компактнее, чем аналогичной по функционалу программы для x86, благодаря более коротким машинным командам без монстроидальных суффиксов адресации. А это значит, в два-три раза сокращается количество обращений к кэшу и к ОЗУ.
Про качество компиляторов можно было говорить в 80-е годы, сейчас, учитывая, что современные оптимизирующие компиляторы (и не очень современные) знают все особенности архитектур х86, это уже не принципиально.


User 0 написал:
[q]
Верно ли хотя бы отчасти предположение, что программисты по причине чрезмерного неудобства ассемблера x86 при всякой возможности отказываются от низкоуровневого кодирования, передавая эту задачу компиляторам ЯВУ
[/q]
Я не скажу, что ассемблер х86 создавал какие-то неудобства. Возможно, если бы я на него пересел после ассемблера DEC или Motorola, меня бы он раздражал. Но начиная учиться на х86, я всё это воспринимал как должное :)
Просто каким бы удобным ассемблер не был, все равно программа на С или Паскале пишется в разы проще и быстрее. А результат не настолько уступает ассемблерному по производительности, чтобы жертвовать временем разработки ради некоторой оптимизации. Пока вы пишете одну программу на ассемблере, программист на ЯВУ выпустит несколько программ и продаст их вашим клиентам. Математика простая.
Другое дело, что сейчас оно вообще зашло до маразма, когда для считывания пары цифр из файла параметров программист применяет многомегабайтный парсер XML с DOM-моделью. "Золотая середина" между качеством кода и производительностью разработки была где-то пройдена в 90-е годы.
La Forge
Advanced Member
Lt. Cmdr.

Откуда: Рязань
Всего сообщений: 3248
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 нояб. 2012
DrPass написал:
[q]
Просто каким бы удобным ассемблер не был, все равно программа на С или Паскале пишется в разы проще и быстрее. А результат не настолько уступает ассемблерному по производительности, чтобы жертвовать временем разработки ради некоторой оптимизации. Пока вы пишете одну программу на ассемблере, программист на ЯВУ выпустит несколько программ и продаст их вашим клиентам. Математика простая.
[/q]
Правильно сказано! А если нужно все оптимально на каком-то участке программы, то в BP была директива assеmbler, и часть кода можно писать на нём. Теоретически всю программу. Delphi это унаследовал и поддерживал по крайней мере до 7-й версии. Наскольно я в курсе, то же самое и в BC
Кстати насколько я в курсе, 1-й процом от Intel выполнявшим не X86, а результат их декодирования был отнюдь не 386 а Pentium Pro
<<Назад  Вперед>> Страницы: 1 2 * 3 4
Печать
Полигон-2 »   Технический флейм »   Самая большая legacy
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS