PDA

Просмотр полной версии : Хороший ПЦшный ассемблер - залог успеха!



Aprisobal
26.02.2005, 22:15
Нашел недавно интересный кросс-ассемблер - SjASM. Основные возможности и достоинства: :cool:
- локальные метки
- макросы
- условная трансляция
- многофайловый вывод данных
- поддержка gens'овидных hex чисел - #xxxx
- алиасы команд (ld hl,de и т.д.)
- многострочные комментарии
- недокументированные команды
- и многое многое другое!

Данный ассемблер приложен в виде аттачмента. Кто что думает?

Кстати, с помощью утилиты BIN2SNA можно собрать в снапшот -- 93

Bulba
27.02.2005, 06:52
Основные возможности: :cool:

Сразу вопросы:

1) Структуры поддерживает (для работы с индексными регистрами)?
2) Умеет ли собирать запускаемый файл(ы) ($C, $B, TAP)?
3) Если умеет пункт 2), может ли паковать полученнные "exe"-шники?
4) Умеет ли работать со страничной памятью ZX?

Качаю...

... Ay_Emul: Silent now...

Aprisobal
27.02.2005, 14:21
...
Качаю...1) Что-то похожее есть:


STRUCT SCOLOR
RED BYTE 4
GREEN BYTE 5
BLUE BYTE 6
ENDS

This is identical to:
SCOLOR EQU 3 ; lenght
SCOLOR.RED EQU 0 ; offset
SCOLOR.GREEN EQU 1 ; offset
SCOLOR.BLUE EQU 2 ; offset

2) Он не заточен под спекки. Используй конвертеры BIN2SNA и пр.
4) Какая страничная память, это же кросс-ассемблер! Такое только в ассемблере В.Медноногова замечал, больше нигде. Зато SjASM поддерживает вывод сразу в несколько файлов. Например:

OUTPUT "PAGE5_2.BIN" ;кусок 5-ой и вся 2-ая
ORG $6000
...код....
OUTPUT "PAGE4.BIN" ;4-ая
ORG $C000
...код....
OUTPUT "PAGE6.BIN" ;6-ая
ORG $C000
...код....
OUTPUT "PAGE7.BIN" ;7-ая
ORG $C000
...код....Затем полученные файлы отдаёшь bin2sna или bin2trd или ...

А вообще когда скачаешь и посмотришь readme.txt, тогда и ответишь на все свои вопросы.

Bulba
27.02.2005, 18:32
1) Что-то похожее есть:

С виду то, что надо ;)


2) Он не заточен под спекки. Используй конвертеры BIN2SNA и пр.
4) Какая страничная память, это же кросс-ассемблер!

Жаль... Когда же напишут кросс-ассемблер для Спекки c нормальным линковщиком? ;)

На Спектруме хоть Alasm есть. А на PC какие-то или сыроватые, или не для Спекки, а просто для Z80....


Зато SjASM поддерживает вывод сразу в несколько файлов. Например:

OUTPUT "PAGE5_2.BIN" ;кусок 5-ой и вся 2-ая
ORG $6000
...код....
OUTPUT "PAGE4.BIN" ;4-ая
ORG $C000
...код....
OUTPUT "PAGE6.BIN" ;6-ая
ORG $C000
...код....
OUTPUT "PAGE7.BIN" ;7-ая
ORG $C000
...код....Затем полученные файлы отдаёшь bin2sna или bin2trd или ...


А это уже интересно. Если ассемблер действительно хороший, то можно отдельный линковщик написать к нему (и под ленту, и под tr_dos, и с упаковкой, можно тот же BitBuster попробовать) ;)


А вообще когда скачаешь и посмотришь readme.txt, тогда и ответишь на все свои вопросы.

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

... Ay_Emul: THIS MELODY COMPOSED BY VETAL

Aprisobal
27.02.2005, 18:57
А это уже интересно. Если ассемблер действительно хороший, то можно отдельный линковщик написать к нему (и под ленту, и под tr_dos, и с упаковкой, можно тот же BitBuster попробовать) ;)Спрайт-генератор бы ещё :)
А так работаю по такой схеме: текст программы редактирую в Crimson Editor (есть подсветка, настраиваются tools на горячие клавиши), компилирую в sjasm (на кнопке F10), линкую в bin2sna (на кнопке F11), запускаю в spectaculator (на кнопке F12) - благо он запускается только одной копией.

Aprisobal
27.02.2005, 19:28
т.е. технология "3F". :)
Сам исходник программы состоит из файлов(находятся в папке ASM): MAIN.asm, PAGE0.asm, PAGE1.asm, PAGE5_2.asm, PAGE3.asm, PAGE4.asm, PAGE6.asm, PAGE7.asm. В MAIN.asm находится следующее:


INCLUDE "ASM\PAGE5_2.ASM"
INCLUDE "ASM\PAGE0.ASM"
INCLUDE "ASM\PAGE1.ASM"
INCLUDE "ASM\PAGE3.ASM"
INCLUDE "ASM\PAGE4.ASM"
INCLUDE "ASM\PAGE6.ASM"
INCLUDE "ASM\PAGE7.ASM"
. В начале каждого файла стоит следующее:

OUTPUT "BIN\PAGEх.BIN" ;где х - номер страницы
ORG $C000
. В PAGE5_2.asm:

OUTPUT "BIN\PAGE5_2.BIN"
ORG $6000
т.е. вывод файлов осуществляется в папку BIN.
SjASM запускаю с такими параметрами: sjasm.exe -ql -i. ASM\MAIN.asm. Этот асм генерит ещё и список всех меток.
В BIN2SNA сую файл с следующим содержанием:

;file
FNAME "game.sna"
PAGE 5
ADDR $6000
INCBIN bin\page5_2.bin
PAGE 0
ADDR $C000
INCBIN bin\page0.bin
PAGE 1
ADDR $C000
INCBIN bin\page1.bin
PAGE 3
ADDR $C000
INCBIN bin\page3.bin
PAGE 4
ADDR $C000
INCBIN bin\page4.bin
PAGE 6
ADDR $C000
INCBIN bin\page6.bin
PAGE 7
ADDR $C000
INCBIN bin\page7.bin
;
7FFD $08
;params
REGISTER PC $6000
REGISTER SP $C000
REGISTER IM 1
На выходе получаем файл game.sna и запускаем в favourite эмуляторе.

О как. В результате доступен удобный ПЦшный дебаггер, в котором можно подсчитать и такты и что угодно. Только подписей меток нет :) Так что условия для разработки на ПЦ есть и совсем не нужно слепиться в окошко 256х192.

dhau
27.02.2005, 21:07
SjASM под MSX точится :) У авторов SjASM и tniASM религиозные разногласия, и в пыле боя они гавешками (это мат? нет? дайте знать, буду писать "гаве$ками") вруг друга закидывают с головы до ног :)

vaz
01.03.2005, 11:35
хай народ!

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

Bulba
01.03.2005, 17:22
Все, перехожу на SjASM! Решение окончательное и обжалованию не подлежит ;) Перевести код из ZXASM (AIG) в SjASM оказалось проще простого - просто адаптировал описание структуры под другой стандарт и XH заменил на IXH. Ассемблер просто замечательный, а то у меня уже закралась даже мысль написать свой - теперь не нужно ;)

Единственное неудобство, к которому можно привыкнуть в течение 10 минут, это то, что сроки, не содержащие меток, должны начинаться с пробела или табуляции (непривычно некоторые директивы видеть не вначале строки).

Огромное спасибо aprisobal'у и автору!

... Ay_Emul: Silent now...

lvd
01.03.2005, 22:01
Все, перехожу на SjASM! Решение окончательное и обжалованию не подлежит ;)

Раз уж пошёл базар про кросс-асмы... Есть такой замечательный асмик - TASM [table assembler, не путать с поделками некроcовта]. К каждому процу ему нужна табличка с опкодами, которую он скушает и потом готов ассемблить всё, что угодно на этот проц =) Генерит правда в ihex, но написать hex2bin - дело 20 минут, если с перерывами на чай и кофэ %)

Применительно к Z80 - можно вписать произвольные недок. команды (произвольные мнемоники, в смысле), IXL-XL-LX - как заблагорассудится или хоть всё в кучу, etc.

Короче - чекайте сами.


PS: Ищутся его (асма) сорцы - если кто ими обладает или знает где взять - плиз поделитесь со мной!

Aprisobal
01.03.2005, 23:23
Все, перехожу на SjASM! ....
Огромное спасибо aprisobal'у и автору!:) Чем больше работаю с этим ассемблером, тем больше нахожу в нём полезностей! Только вот жаль, что написан на Си ;) Но зато есть повод изучить последний :)


хай народ! прошу прощения! может это звучит глупо но! в какую страницу код то писать? запись в маин и 5.2 выдает блак скриин. код рабочий, в эмуле кладова и спине пускался без проблем..............Исполнение программы начинается в том адресе, на который указывает регистр PC. В моём примере это адрес $6000 (см. выше REGISTER PC $6000). Значит код нужно писать с этого адреса, т.е. в файле PAGE5_2.asm после ORG $6000.
Пример файла PAGE5_2.asm:


OUTPUT "BIN\PAGE5_2.BIN"
ORG $6000
DI
LD HL,$4000
LD DE,$4001
LD BC,6144
LD (HL),255
LDIR
LD BC,767
LD (HL),7
LDIR
RET



Раз уж пошёл базар про кросс-асмы... ....Думаю SjASM 2004 года, под Win32 и заточенный для Z80 лучше, быстрее и функциональнее, чем ассемблер TASM 1994 года, под DOS, компиляция которого происходит через таблицы :D

lvd
02.03.2005, 00:30
Только вот жаль, что написан на Си ;)

Как это? Надо было его на ху86 писать? Или на дот-НЕТе? Или на жабе? Или на визуальвасике? =)

Я бы сказал - жаль, что на цпп, причём вкраплениями, что тем более вызывает тихий ужас... Видать скоро таки на васике клепать будут...




Думаю SjASM 2004 года, под Win32 и заточенный для Z80 лучше, быстрее и функциональнее, чем ассемблер TASM 1994 года, под DOS, компиляция которого происходит через таблицы :D

Да уж - о компиляции через таблицы подавляющему большинству асмов (на любой платформе) мечтать и мечтать. Применительно к Z80-заточенным челам, это выливается в то, что все регулярно привыкают к новой форме записи IXL-LX-XL, учат новые извратные %define и проч., и местами страдают без адресной арифметики, подстраиваясь под кривобокие кустарные поделки (это - таки коммерческий продукт... был, по крайней мере =). :)

дос-в32. Таки нифига он не в32, сорцы сделаны как раз платформонезависимо (на первый взгляд, что будет например на big-endian, хз =). У тасма правда единственная проблема с досовостью - 8.3 .

Aprisobal
02.03.2005, 01:27
Как это? Надо было его на ху86 писать? Или на дот-НЕТе? Или на жабе? Или на визуальвасике? =)

Я бы сказал - жаль, что на цпп, причём вкраплениями, что тем более вызывает тихий ужас... Видать скоро таки на васике клепать будут...Имелось в виду, что жаль, что не на Delphi - я мог бы сам кое-какие необходимые корректировки делать.



Да уж - о компиляции через таблицы подавляющему большинству асмов (на любой платформе) мечтать и мечтать. Применительно к Z80-заточенным челам, это выливается в то, что все регулярно привыкают к новой форме записи IXL-LX-XL, учат новые извратные %define и проч., и местами страдают без адресной арифметики, подстраиваясь под кривобокие кустарные поделки (это - таки коммерческий продукт... был, по крайней мере =). :)В SjASM все директивы(те что DB,DW..) сделаны как в GENS, ALASM и пр. и не надо переучиваться. А в TASM что? Он тянет за собой свою громоздкую процессоронезависимость и писюканство, как то .byte(DB), .block(DS), #IFDEF, .equ... что несколько неудобно и подходит под определение "учат новые извратные %define и проч.".

дос-в32. Таки нифига он не в32, сорцы сделаны как раз платформонезависимо (на первый взгляд, что будет например на big-endian, хз =). У тасма правда единственная проблема с досовостью - 8.3 Не нашёл в архиве с TASM'ом сорцов, которые можно будет скомпилировать для винды, чтобы она при каждом запуске TASM'а не запускала свой эмулятор MS-DOS'a. Не знаю как у других, но на моём компьютере это заметно. :(

Ответь плз на эти вопросы (цитирую С.Бульбу):
1) Структуры поддерживает (для работы с индексными регистрами)?
2) Умеет ли собирать запускаемый файл(ы) ($C, $B, TAP)?
3) Если умеет пункт 2), может ли паковать полученнные "exe"-шники?
4) Умеет ли работать со страничной памятью ZX?
и от меня:
5) Какие доп. директивы доступны(DUP и пр.) схожие на директивы Alasm'a и ставшие де-факто в спековских ассемблерах?

Bulba
02.03.2005, 04:40
Короче - чекайте сами.

Я слишком иннерционен, пока не наткнусь на какой-нибудь глюк SjASM, вряд ли буду пробовать что-нибудь другое ;)

... Ay_Emul: Silent now...

fk0
03.03.2005, 16:01
Как это? Надо было его на ху86 писать? Или на дот-НЕТе? Или на жабе? Или на визуальвасике? =)


На тикле. И не спорь!



Я бы сказал - жаль, что на цпп, причём вкраплениями, что тем более вызывает тихий ужас... Видать скоро таки на васике клепать будут...


Давно пора. Проосто бейсик нужно выбирать хороший. Воть тикл -- это хоропший бейсик, а бейсик -- плохой бейсик.

lvd
03.03.2005, 17:51
На тикле. И не спорь!

Не дождёшься =)




Давно пора. Проосто бейсик нужно выбирать хороший. Воть тикл -- это хоропший бейсик, а бейсик -- плохой бейсик.

А по мне, хороший бейскик - это матлаб =)

Robus
04.03.2005, 04:40
Привет всем !

Вообще-то, ещё очень давно я написал собственный асм, но он потерялся после катаклизмов на моём компе ... Но в сентябре 2004-ого года я написал новую версию своего компилятора ASAM ! В нём можно написать любой код для Speccy, как вообщем-то и для любого другого процессора, но я его писал именно для Speccy ! Там можно откомпилировать программу тут же её записать в TRD, да ещё и сделать монолоадер, не говоря уже о том, что сразу запаковать. Вообще-то ещё можно написать программу тут же прямо в компиляторе её запустить на эмуляторе (это не шутка), и отработанные данные использовать в дальнейшем в своей программе. Можно на ходу поменять списо команд Z80 на другой процессор, например Intel-51, откомпилировать перейти обратно к Z80, и всё это скопом сохранить куда угодно !!! Работа со страницами безусловно есть, их вам предоставляется аж 64 штуки ! Есть макросы ... Короче говоря там так много различных команд, что сложно рассказать в двух словах ... Закачать его можно вот тут: http://www.entire.nm.ru/coding/asam.zip ...

By Rob F. / Entire Group ...

Shadow Maker
04.03.2005, 22:01
Попробовал sjAsm... ниче ассемблировать не хочет, пишет too long line... Чего я не так делаю?

Пойду тестить асм Rob F...

Потестил блин... Роб, а почему опять такое защеканство что на сей раз надо извращаться с 0XXXXh? Нафиг мне такое счастье, я привык к #XXXX...

Мда... Медноноговский половину команд не понимает, SjAsm не пускается, этот ниче не переваривает по спектрумски... Мда... А Аласм мне не нравится... ЧТо, так и продолжать писать в ZX ASM 3.0? :(

Robus
05.03.2005, 03:11
Попробовал sjAsm... ниче ассемблировать не хочет, пишет too long line... Чего я не так делаю?

Пойду тестить асм Rob F...

Потестил блин... Роб, а почему опять такое защеканство что на сей раз надо извращаться с 0XXXXh? Нафиг мне такое счастье, я привык к #XXXX...

Мда... Медноноговский половину команд не понимает, SjAsm не пускается, этот ниче не переваривает по спектрумски... Мда... А Аласм мне не нравится... ЧТо, так и продолжать писать в ZX ASM 3.0? :(

Я вообще не пользуюсь хексами, у меня всё в деках, но проблему понял, сейчас добавлю эту элементарную функцию, будет и 0XXXXh и #XXXX. Завтра можно будет выкачивать новую версию ...

Rob F. / Entire Group ...

lvd
05.03.2005, 12:19
Попробовал sjAsm... ниче ассемблировать не хочет, пишет too long line... Чего я не так делаю?


Я съясм не тестил, но подозреваю, что у его автора опять глупые траблы с концами строк - он не хочет понимать какой-то из вариантов (#0a, #0d, #0d #0a) и не видит конца строки.

fk0
05.03.2005, 18:23
[QUOTE=lvd]Как это? Надо было его на ху86 писать? Или на дот-НЕТе? Или на жабе? Или на визуальвасике? =)[/auote]

на тикла, на тикле и ещё раз н тикле.

[quote]
Я бы сказал - жаль, что на цпп, причём вкраплениями, что тем более вызывает тихий ужас... Видать скоро таки на васике клепать будут...

[/яуотещ

на тикле. и не спорь.


шяуотещ
челам, это выливается в то, что все регулярно привыкают к новой форме записи IXL-LX-XL, учат новые извратные %define и проч., и местами страдают без адресной арифметики, подстраиваясь под кривобокие кустарные поделки (это - таки коммерческий продукт... был, по крайней мере =). :)
ш/яуотещ

птавильно будет db#0ddh : ls h, l -- и никак иначе.

breeze
06.03.2005, 02:42
Я вообще не пользуюсь хексами, у меня всё в деках, но проблему понял, сейчас добавлю эту элементарную функцию, будет и 0XXXXh и #XXXX. Завтра можно будет выкачивать новую версию ...

Rob F. / Entire Group ...

ээээ..... и ? :confused:

D:\zx programs\sjasm\ASAM>asam test.asm z80.cmd

ASAM Compiler v.001.018D By Rob F. From Entire Group
Label Buffer Size ... 851968
Command Buffer Size ... 983040
Used Bufer ... 19909 / 262145 ( 7.59% )
Found Command ... 821
Compiled Lines ... 3655
Pass #01 ... 000006 [000006] ... ADDR [00000003] ... OK
Addres: 00000003
Passes: 1
ERROR ... Label Not Found Or Instruction Error
File: test.asm
Line: #1
ORG #8000

Vasha PiCya Zavisla (Win32) ...

----------------- test.asm -----------------
org #8000
ld hl,#4000
ld de,#4001
ld bc,#1b00
ldir
ret
---------------------------------------------

Shadow Maker
06.03.2005, 03:12
:) Ну что, сегодня видимо Робу было влом :)

breeze
06.03.2005, 03:15
Давно мечтаешь о хорошем ПЦшном ассемблере? Надоели ассемблеры Copper Feet'a и AIG'a? Тебе нужен SjASM!


Спасибо огромное! в сочетании с Crimson Editor это просто обалденный IDE!!!!!!!!! :eek:

breeze
06.03.2005, 03:19
:) Ну что, сегодня видимо Робу было влом :)

да уже наверное и не нужно :)
Crimson Editor + sjasm = круто ! посмотрим как оно покажет себя при сложных проектах.... :rolleyes:

Shadow Maker
06.03.2005, 03:45
Ну у меня этот съясм хоть убейся - пишет too long line... И никто не знает че с ним... Так что остает Робов, тем более у него явный плюс - он его может модифицировать :)

breeze
06.03.2005, 03:50
Ну у меня этот съясм хоть убейся - пишет too long line... И никто не знает че с ним... Так что остает Робов, тем более у него явный плюс - он его может модифицировать :)

может проблема в управляющем коде каком ? :confused:
попробуй в FAR'е набрать пустой файл, или вот приатачу тебе свой, попробуй его компильнуть:

---------- Capture Output ----------
> "D:\zx programs\sjasm\sjasm.exe" D:\MyZX\projects\src\main.asm ..\bin\main.bin
SjASM Z80 Assembler v0.39f - www.xl2s.tk
Pass 1 complete (0 errors)
Pass 2 complete
Errors: 0

> Terminated with exit code 0.

Shadow Maker
06.03.2005, 03:59
Да я знаю в чем дело-то на самом деле... ему не нравится перевод строчки в #0D видать... Сейчас сконвертить - нормально. А в целом - можно конечно и в съясме... Тока тут надо линковщик априсобалевский пользовать...

Блин, этот дурацкий съясм двоеточий не понимает... Ваще ни один асм на PC не понимает двоеточий, включая Робовский и Съясм!!! Мля... И очередная LX-XL трабла... ДОСТАЛО! :mad: А еси я как Фриман пишу все в строку по 5-6 операторов?!!!! Чего мне, удавиться?

Ниче по человечески сделать не могут!

Bulba
06.03.2005, 05:47
ASAM свиду хороший ассемблер, все перечисленные здесь "недостатаки" - ерунда. Единственное препятствие лично для меня, когда начну разбираться, это документация - слишком лаконичная. Зато есть примеры. Вообще можно сказать, единственный ассемблер для ZX с линковщиком, если разобраться - альтернативы не будет. Хотя к SjASM можно тоже хороший линковщик написать, BIN2SNA уже есть ;)

... Ay_Emul: Silent now...

lvd
06.03.2005, 14:43
Да я знаю в чем дело-то на самом деле... ему не нравится перевод строчки в #0D видать... Сейчас сконвертить - нормально. А в целом - можно конечно и в съясме... Тока тут надо линковщик априсобалевский пользовать...

Блин, этот дурацкий съясм двоеточий не понимает... Ваще ни один асм на PC не понимает двоеточий, включая Робовский и Съясм!!! Мля... И очередная LX-XL трабла... ДОСТАЛО! :mad: А еси я как Фриман пишу все в строку по 5-6 операторов?!!!! Чего мне, удавиться?

Ниче по человечески сделать не могут!

Угу - лучше тебе удавиться, чем "писать все в строку по 5-6 операторов" - ибо нефиг write-only код плодить =)

Shadow Maker
06.03.2005, 15:49
Если бы после таких слов Фриман бы удавился... ну... кароче никаких Колобков, Пуссей и прочих Белых Орлов не видать было бы как своих ушей :) Кому очень надо - тот сконвертит, там прогу для конверченья написать очень легко. Мне просто дико неудобно без двоеточий.

Spectre
06.03.2005, 18:16
Если бы после таких слов Фриман бы удавился... ну... кароче никаких Колобков, Пуссей и прочих Белых Орлов не видать было бы как своих ушей :) Кому очень надо - тот сконвертит, там прогу для конверченья написать очень легко. Мне просто дико неудобно без двоеточий.

Я вживую видел кусок исходника (вся гама была разбита на куски) одной гамы Фримана: буквально 5 строк (в ZXASM 3.0). Отладкой Фриман не занимался.

Раньше Фриман вообще писал кодами... Причем, что любопытно, он всегда писал в десятичной системе only.

voodoogod
21.03.2005, 19:35
гггг, а у меня есть сорци пусси и дранкарда :))) ужос! там не то, что без поллитры неразобраться, там галона будет мало :)))

psndcj
23.03.2005, 12:02
Единственный недостаток ассемблера (без разницы какого) тот факт, что одна строка делает совсем немного, обычно одну операцию. Поэтому исходники любого нормального большого проекта занимают не одну тысячу!!! строк 8(

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

А еще в моем любимом Шторме есть классная функция, как прекомпиляция введенной строки, когда я ввожу к примеру "A B", а это превращается в осмысленное " LD A,B". Поэтому я до сих пор пишу в Шторме под эмулем - имхо это самый быстрый способ писать на асме для спека...

hex
23.03.2005, 14:21
Единственный недостаток ассемблера (без разницы какого) тот факт, что одна строка делает совсем немного, обычно одну операцию. Поэтому исходники любого нормального большого проекта занимают не одну тысячу!!! строк 8(

После этого читать о том, что несколько команд в строке не нужны, лично я просто не могу. Люди, вы о чем? Это как раз необходимо!!!
Это не недостаток, а общепринятые нормы, обеспечивающие хоть какую-нибудь читабельность кода. Товарищ Кладов (http://forum.zx.ru/member.php?u=159) недавно постил (http://forum.zx.ru/showpost.php?p=7786&postcount=45) замечательный пример кода, способного заинтересовать криптографов. По-моему любая платформа, стремящаяся выжить и привлечь пользователей, становится максимально открытой. Это прежде всего подразумевает открытие исходного кода программ. Кому, кроме самого автора, нужен исходный код, в котором разобраться никто другой не в состоянии? Это раз, два: чем плох исходный код, который можно с ходу откомпилировать в первом попавшемся ассемблере?

Dexus
08.08.2005, 14:25
Это не недостаток, а общепринятые нормы, обеспечивающие хоть какую-нибудь читабельность кода.
Ага. И газетные статьи все в столбец делают - для повышения скорости чтения. Только вот неясно - зачем _быстро_ читать листинг ассемблеровский? Лучше бы он был структурированным, и более компактным. Ведь в бейсике через ":" вообще много чего в строчку взгромождалось, и ничего - не говорили "не читабельно".
Из-за более удлиненных строк взгляд "вертикально" - более медленно идет, конечно, но это же не значит что просматривается меньше _операторов_.
За счет скомпонованности смысловой (в одну строку) и "структурных" отступов
как раз читабельность и увеличивается. Взглядом охватывается больше, меньше лишних движений в поисках нужных меток. Да бумаги экономится больше (на распечатках).