Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Технический флейм » Самая большая legacy |
<<Назад Вперед>> | Страницы: 1 * 2 3 4 | Печать |
User 0
Junior Member
Откуда: Moscow Всего сообщений: 112 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 25 дек. 2007 |
Fe-Restorator написал: Я читал руководство программиста к относительно новым процессорам типа AMD64. Там нет никакого другого кода, кроме x86. Вы ведь не хотите сказать, что компилятор языка высокого уровня выдает объектный файл не с x86-кодом, а неким RISC-кодом? Или вы имеете в виду, что компилятор выдает x86-команды, оптимизированные для скрытого от программиста RISC-ядра? С появлением RISC-части в камнях всякое программирование "по-старинке" потеряло смысл, ибо никогда не компилировалось в х86-код, сразу затачиваясь под возможности камня. Верхний уровень программирования оставался примерно похожим на прежний, ибо переучить 40-летнего человека неизмеримо труднее, чем процессор. Посему, пошли на подмену кода, скрыв оную от программиста, как минимум, от не очень требовательного программиста. |
Fe-Restorator |
NEW! Сообщение отправлено: 16 марта 2013 13:01 Сообщение отредактировано: 16 марта 2013 13:25
"Совместимые с программистом" х86 команды разделяются компилятором на части, оптимальные для выполнения риск-архитектурой проца, второй вариант. Объектный код при этом не похож ни на чистый х86, ни на чистый "риск". И покажи-ка мне программиста, напрямую обращающегося к регистру АХ на проце i7!!! Вида MOV AX,xxx. И началось сие безобразие ещё с далёких 386-х. PS. По той-же причине программы под форточку на работали в чистом досе - отличался объектный код. Крупной проге, возможно, не хватало ресурсов подлинковать 100500 внешних библиотек, но даже простенький "Hello World!" отказывался работать! А сейчас уже ОС отказывается от досовского наследия, уже из-за заточенности под широкобитную шину. Постепенно пропадает класс "консольных приложений". |
Сейчас на форуме |
User 0
Junior Member
Откуда: Moscow Всего сообщений: 112 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 25 дек. 2007 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 16 марта 2013 13:25 Сообщение отредактировано: 16 марта 2013 23:19
Вы хотите сказать, что если я ассемблерную программу реального режима для 86/486 скомпилирую современным компилятором, указав опцию "для нового процессора", код будет иным, чем если взять старый компилятор для 486-го процессора? Fe-Restorator написал: А разве не потому, что в расширенном режиме по-другому организованы работа с памятью и ввод-вывод — программа обращается к таким функциям операционной системы и по таким адресам, которых в "чистом DOS'е" не существует. По той-же причине программы под форточку на работали в чистом досе - отличался объектный код. Я бы не стал смешивать консольные приложения с DOS-приложениями. Консольный ввод очень удобен: сравните скорость изменения, скажем, даты/времени, или там управления службами через консоль/скрипт и через графический интерфейс. Постепенно пропадает класс "консольных приложений". |
Fe-Restorator |
NEW! Сообщение отправлено: 16 марта 2013 13:38 Сообщение отредактировано: 16 марта 2013 13:42
Если современным компилятором ты соорудишь объектный код для выполнения на 386/486 физическом камне, этот код будет отличаться от такового, созданного старым компилятором, порой достаточно сильно, чтобы не запуститься на 486. Оптимальным сей код точно не будет, и некие приёмы, допустимые в современных процах и оставшиеся в коде могут стать косяками и приведут к зависанию. Современные компиляторы не обязаны знать особенности старых процов, нужен некий "патч" для компилятора, где вся нужная инфа прописана в полном объёме. Однако, такой патч фактически превращает новый компилятор в старый, и разница с отдельно-взятым старым компилятором минимальна, хотя всё-ещё заметна. Кроме возможности работать на современной технике, обслуживая технику древнюю - этот путь ничего не даёт. Если на современном компиляторе создашь "досовский" код для выполнения на i7, хотя весь алгоритм останется неизменным, на 486-м его не запустишь. User 0 написал: Поменяй-ка дату/время через порт RS232 извне! Замерь скорость, если так интересно. И не путай окно консоли с консольной программой. Я бы не стал смешивать консольные приложения с DOS-приложениями. Консольный ввод очень удобен: сравните скорость изменения даты и времени/управления службами через консоль/скрипт и через графический интерфейс. |
Сейчас на форуме |
User 0
Junior Member
Откуда: Moscow Всего сообщений: 112 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 25 дек. 2007 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 16 марта 2013 13:39 Сообщение отредактировано: 16 марта 2013 14:02 Это я бы проверил. Если на современном компиляторе создашь "досовский" код для выполнения на i7, хотя весь алгоритм останется неизменным, на 486-м его не запустишь. |
DrPass
Advanced Member
Откуда: Донецк Всего сообщений: 3566 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 апр. 2005 |
Fe-Restorator написал: Код с 8-битного 8080 действительно легко переносится автоматическим кросс-ассемблером на 8086. Именно ради этого в 8086 адресное пространство не по-человечески линейное, а сегментированное, все операции переходов 8080 превращаются во внутрисегментные переходы 8086. Ни разу! Минимальная правка исходного кода вручную - да. И обязательно - полная перекомпиляция под новый проц 8086. |
Fe-Restorator |
NEW! Сообщение отправлено: 16 марта 2013 13:43 Сообщение отредактировано: 16 марта 2013 13:46
DrPass написал: Т.е. программы запускаются без всякой перекомпиляции? Что-т ни единого разу сие не срабатывало, сколь ни пробовал. Код с 8-битного 8080 действительно легко переносится автоматическим кросс-ассемблером на 8086. Именно ради этого в 8086 адресное пространство не по-человечески линейное, а сегментированное, все операции переходов 8080 превращаются во внутрисегментные переходы 8086. |
Сейчас на форуме |
DrPass
Advanced Member
Откуда: Донецк Всего сообщений: 3566 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 апр. 2005 |
User 0 написал: Если речь идет об ассемблерной программе, то код будет таким же. Ассемблер никогда не занимается фантазиями на тему оптимизации, он всегда преобразует в машинный код указанные операции один к одному. Если речь идет о языке высокого уровня, то, конечно, код будет иным. Т. е., если я ассемблерную программу реального режима для 86/486 скомпилирую современным компилятором, указав опцию "для нового процессора", код будет иным, чем если взять старый компилятор для 486-го процессора? Fe-Restorator написал: Прочти еще раз мою фразу, и погугли незнакомые тебе слова Т.е. программы запускаются без всякой перекомпиляции? |
Fe-Restorator |
NEW! Сообщение отправлено: 16 марта 2013 13:51 Сообщение отредактировано: 16 марта 2013 13:53
Хамишь. Некрасиво с твоей стороны. Впрочем, бери сию тему в свои руки, раз уж проявил к ней интерес: инициатива наказуема. |
Сейчас на форуме |
DrPass
Advanced Member
Откуда: Донецк Всего сообщений: 3566 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 апр. 2005 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 16 марта 2013 13:54 Сообщение отредактировано: 16 марта 2013 13:54
Fe-Restorator написал: Прошу прощения, обижать не хотел Просто болит голова и настроение плохое... Хамишь. Некрасиво с твоей стороны. |
<<Назад Вперед>> | Страницы: 1 * 2 3 4 | Печать |
Полигон-2 » Технический флейм » Самая большая legacy |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |