LINUX.ORG.RU

Компиляция С в GCC под i8088

 , ,


0

2

В универе продолжают заставлять делать ненужно. Пишем лоу-левел штуки на асме под дос. Когда я понял, что следующая задачка будет минимум на 1000-1500 строк, решил что куда лучше будет написать все на С, а потом дизассемблировать.
Хотелось бы юзать что-нибудь такое же удобное, как gcc и objdump, но заставить их собрать под 16 бит у меня не получилось. Причем djgpp здесь не нужно.
Линукс тут при том, что я хочу все делать на линукс хосте, а в dosbox только запускать.
Заранее спасибо.


Когда я понял, что следующая задачка будет минимум на 1000-1500 строк.

Вы лентяй, сударь.

grondek
()

Студентота должна страдать. Все правильно делают.

А дизассемблированный код ты сам объяснить не сможешь и получишь неуд.

anonymous
()

8088 и дос? ты точно ничо не попутал? 8086 может? тогда у него достаточно адекватный ассемблер, 1500 строк как нефиг делать. Я писал операционку в 2к строк писал недели 2, из которых неделю разбирался с работой загрузчика

а под 8088 гцц не собирает, кажется. страдай

marvin_yorke ★★★
()
Ответ на: комментарий от grondek

Я рациально распределаю свое время. Я отлично понимаю и умею писать на асме, однако здесь это явное ненужно.

actics
() автор топика
Ответ на: комментарий от no-such-file

Я хочу собирать мейк файлами на линуксе, и дизассемблированием заниматься здесь же. Я почти уверен, что решение есть.

actics
() автор топика

1000-1500 строк на асме?!?!
ты точно лентяй

а вообще заюзай C-- и не парься
он может сразу делать перегон исходника в асм

q11q11 ★★★★★
()
Ответ на: комментарий от no-such-file

Нет, 16, но с 8-битной шиной.

Посыпаю голову пеплом, попутал с 8080.

andreyu ★★★★★
()
Ответ на: комментарий от anonymous

Асм нужен, даже очень, но скорее в ознакомительных целях. В университете он необходим для понимания работы машины, с этой задачей он справился. Зачем писать на нем нечто большее я не понимаю. Что сейчас на нем пишут, кроме спицифичных мест в драйверах и оптимизации алгоритмов в совсем уж узких местах?

actics
() автор топика
Ответ на: комментарий от actics

Там ещё fverbose-asm, описано во втором ответе здесь. Компилировать asm можно gas (именно это и делает GCC, между прочим — он сам не выдаёт объектные файлы).

Возможно, стоит поискать опции для вывода в синтаксисе Intel вместо AT&T, который установлен по дефолту и не используется в оффтопиках.

quiet_readonly ★★★★
()
Ответ на: комментарий от quiet_readonly

Мне gas в самый раз, я на нем пишу. Спасибо!

actics
() автор топика
Ответ на: комментарий от anonymous

Я почти уверен, что это как раз таки платформо-зависимые штуки, либо узкие места. Они же не наркоманы, чтоб писать логику на ассемблере)

actics
() автор топика

Совковое образование самое совковое в мире!

onanij
()
Ответ на: комментарий от drSchur

Ну ладно. Мы просто под 88й на голом железе писали, а под дос на 86м

marvin_yorke ★★★
()

В чем профит письбы кода под некроОС и некропроцессоры? Да да, не микропроцессор, а некропроцессор...

Ваши преподы - старпёры...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Повторяю для неумных: no pain no gain.

anonymous
()

bcc же. dev86 вроде, или bin86.

luke ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

профит в том, что под некроосью и некропроцессором очень легко и доступно можно рассказать про основы того, как все работает. Проблема в том, что непонятно, зачем это писать на ассемблере, когда можно писать на сях со вставками. Причем си собственно для этого и был сделан, что бы писать системный код.

actics
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Что бы иметь хотя бы примерное представление о том, как все работает. Я сам очень много возникал в начале, щяс свыкся. Хотя лучше бы про ядро рассказали, имхо.

actics
() автор топика

В универе продолжают заставлять делать ненужно.

Возможность объективно судить о том, что было нужно, а что нет, у тебя появится несколько позднее, когда хотя бы с пяток лет поприменяешь полученные знания на практике.

куда лучше будет написать все на С, а потом дизассемблировать.

Вот это - точно ненужно. Смысл курса в том, чтобы привить понимание языка, чего при дизассемблировании точно не будет.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Возможность объективно судить о том, что было нужно, а что нет, у тебя появится несколько позднее, когда хотя бы с пяток лет поприменяешь полученные знания на практике.

Я не могу сказать, что у нас есть ненужные курсы. И этот тоже весьма нужный и интересный, проблема в том, что почему не С.

Смысл курса в том, чтобы привить понимание языка, чего при дизассемблировании точно не будет.

Курс, смысл которого был в прививании языка кончился в прошлом семестре. Я достаточно много в него вложил, плюс ходил на пару спецкурсов, которые на этом ассемблере напрямую были завязаны, поэтому язык, имхо, привил неплохо.

actics
() автор топика

Всем спасибо. Для арча в ауре нашелся пакет dev86 (bcc), а в extra bin86 (ld86). bcc отлично заработал, а дизассемблить умеет objdump, нужно просто сказать ему архитектуру (i8086) и формат (бинарный)

actics
() автор топика

Когда я понял, что следующая задачка будет минимум на 1000-1500 строк, решил что куда лучше будет написать все на С, а потом дизассемблировать.

мдэ...

я гарантирую, что ты будешь послан преподом в дальнее пешее.

dikiy ★★☆☆☆
()

openwatcom, amsterdam compiler kit

SZT ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.