Каковы некоторые способы, которыми можно управлять крупномасштабными проектами ассемблера?

GAE имеет ограничение в исходящем запросе, вы можете увидеть здесь. [outbound-requests][1]

Диапазон портов:

  • 80-90
  • 440-450 [ 112]
  • 1024-65535

Так что пинг может быть неудачной попыткой. Вы можете попробовать использовать Java-URL для проверки вашего соединения.

7
задан Glorfindel 11 March 2019 в 05:01
поделиться

8 ответов

Крупномасштабные программы сборки управляются так же, как и любые другие программы - функциональные блоки с хорошим разделением и понятными интерфейсами. Так как вы работаете в сборке, ваши интерфейсы будут ограничены вещами в файле реестра или стеке. В конечном итоге речь идет о хорошем плане плана до фактической реализации. Вы должны быть предельно ясны в отношении того, что писать и как писать.

При этом, если вам нравится ассемблер, есть еще один способ позволить себе увлечься без фактического написания ассемблерного кода - вы можете написать на C или C ++ и посмотрите, как код компилируется в сборку. Затем напишите то же самое по-другому и поймите, как это меняет сборку. В результате вы скоро сможете думать как компилятор и писать очень оптимальный код.

7
ответ дан 6 December 2019 в 07:28
поделиться

Макросы, функции и библиотеки. Требуются годы, чтобы разработать свой собственный с нуля, так что ищите ресурсы для ассемблера x86 и опирайтесь на других - многие люди все еще активно занимаются разработкой сборок для ПК.

Один активный член сообщества сборщиков - Стив Гибсон, у него есть целый ряд ссылок на хорошие ресурсы для программирования на ассемблере здесь:

http://www.grc.com/smgassembly.htm

4
ответ дан 6 December 2019 в 07:28
поделиться

On top of what has already been mentioned, I should mention literate programming; I wrote an application that was on the order of 20KLOC of ARM assembly (not huge, but not insignificant, either), and I found structuring the code with noweb to be extremely helpful.

This allowed me to break the code into small conceptual pieces, even when several pieces actually had to be combined together/unrolled/et cetera for performance reasons. It also made it much easier for other programmers to understand what I had written, particularly the reasons why I made certain subtle decisions (for example, deciding which operand should go first in a multiply based on expected size of the operands).

3
ответ дан 6 December 2019 в 07:28
поделиться

Единственный современный проект, полностью написанный на ассемблере, который я знаю, если это FASM (мой любимый ассемблер ).

Некоторые ассемблеры поддерживают высокоуровневые конструкции, и если макро-движок хорош, вы можете написать свой собственный. Я лично считаю это бесполезным; если я хочу высокоуровневые конструкции и понимаю, что я делаю, я использую C или C ++. (Однако я не думаю, что они являются хорошими языками для управления большими проектами.)

Я просто использую ассемблер при необходимости или для обучения.

Если вы хотите написать проект в ассемблере, имейте в виду, что:

  • Вероятно, не будет много людей, которые хотят помочь вам с вашим проектом, даже если они найдут его интересным. Мало кто любит сборку, и ваш код должен быть очень хорошо прокомментирован, если вы ожидаете, что кто-то поймет его.
  • Сборка не переносима. Даже для перехода с 32-битного ПК на 64-битный вам придется переписать все.
  • Аргумент «сборка происходит быстрее» больше не поддерживается.
3
ответ дан 6 December 2019 в 07:28
поделиться

Я знаю людей, которые работают с ассемблером (не Intel). Они создали обширную библиотеку макросов, поэтому они могут использовать ее почти так, как если бы это был язык высокого уровня.

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

2
ответ дан 6 December 2019 в 07:28
поделиться

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

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

2
ответ дан 6 December 2019 в 07:28
поделиться

Вот белая книга Питера Лэнгстона , описывающая инструменты и рассуждения, которые они использовали для написания Ballblazer и Rescue from Фрактал, который охватывает организацию и т. Д.

2
ответ дан 6 December 2019 в 07:28
поделиться

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

1
ответ дан 6 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: