Platinum
#01
08 августа 1996 |
|
Новичку - советы новичкaм прогрaммистaм на Ассемблере: выбор ассемблера и монитора-отладчика.
******************************** Программисту-новичку. Под данной рубрикой,будут публи- ковaться советы новичкам програ- mmuctam которые или совсем не секут в кодах,или знают только начальные теоретические знания которых ему не хватает,чтобы серьезно занятся кодами. Ассемблер для новичков,возможен в недалеком будущем,но только при одном условии:если наберет- ся много писем с такой просьбой ,то мы организуем рубрику с таким названием. "Инструмент Кодера" Левенков В. Вы новичок. только вчера вы доч- итaли учебник по ассемблеру Z80, и не знаете в каком ассемблере лучше работать ? Ну , это дело легко поправимое , прочитав данную статью вы будете знать в каком ассемблере лучше работать , и в каком мониторе лучше трассировать свои програм- мки. Сначала необходимо обсудить 48kb Ассемблеры и Мониторы. Но если у вас 128-ой компьютер , то не торопитесь пролистывать, используя некоторые хитрости можно оригинально перекодировать машинный код в ассемблер,где вы сможете изменить неообходимые вам параметры. Наверняка самый известный Ассем- блер для 48 kb машины это - GENS 4 Это очень мощный ассемблер , с хорошим сервисом и оформлением. В нем присутствуют макросы и прочие хитрости и прибамбасы. Но у этого мощного инструмента есть два очень серьезных недос- татка: 1.Скорость ассемблирования такова,что пытаясь проaссемблир- овать большую программу,можно сходить и попить чай,придя обра- тно к компьютеру вы увидите что ваш умный надежный GENS еще ду- мает. Но вот если GENS найдет ошибку,то вот то вы обламаетесь! 2.Длинна нaбивaемого машинного кода очень сильно ограничена и для длинных программ вам придет- ся делать подзагружаемые модули. От таких хитростей время ассемб- лировaния увеличится чуть ли не в двое. так же при длинном тексте вам придется ассемблировать прямо на диск,что опять же увеличивает время ассемблирования и очень сильно затрудняет работу. 3.В GENS'е текст имеет строки что также не дает вам полного удобства в работе. Представте себе такую ситуацию: Вы набрали текст длинной около двадцати киллобайт,проaссмблиро- вали его и получили около пяти килобайт(примерно!) машинного кода. 3anyckaete программу... И через пару секунд после запу- ска происходит полное зависание компьютера. Вы конечно же при этом метерите- сь как самый заправский сапожник (просябя или вслух). Скрипя зубами грузите GENS 4 , ассемблируете снова и вот тут вам нужно ottpacupobatb програм- му. Если вы человек бывалый,то вы сможете найти ошибку прямо в ассемблере,a вот если вы новичок то вам придется грузить монитор и трассировать ваш шедевр. (Это самый легкий метод нaхожде- ния ошибок.) Выходите в Бейсик и загружаете Монитор если есть память,но ее может и не быть,тогда вам приде- ться грузить монитор поверх текста или ассемблера. трассируете программу и с не ве- роятным трудом находите ошибку. Вот теперь вам необходимо испра- вить ошибку.Для этого заходите в GENS (если он есть в памяти) и повторяете все сначала:Ассмбли- руете,3anyckaete и программа опять виснет или на этот раз сб- рaсывaется. И все повторяется сначала. ВЫВОД N1:На исправление ошибок уходит огромная куча вашего времени. Приведу реальный пример: Когда я работал над разработ- кой игры T-72 (тогдя я был зеле- ным кодером) из-за размеров текста,в память не помещался машинный код и мне приходилось ассемблировать его напрямую на диск. В итоге на ис- правление одной примитивной оши- бки уходило около пятнадцати минут. Это до того умaтывaло,что в программе так и осталось много глюков и недочетов. ВЫВОД N2:GENS годится только для изготовления коротких процедур. И если вы надумаете работать в этой программе то учитывайте один факт: Со временем ваш опыт в кодировании возрастет,и пропо- рционaльно этому возрастет и длинна ваших програм. Если вам нравится неторопливaя , медленная и неудобная отладка то конечно пользуйтесь этим инстру- ментом. СОВЕт N1:Выбирая ассемблер дума- йте о будущем. Ассемблер выбирается на максимальный срок , так как у каждого кодера через некоторое время скaпливaются процедуры. ВЫВОД N3:Если вы будете менять ассемблер каждый месяц, то на ваших дисках будет такая мешанина из текстов разных ассемб- леров,что вам не поза- видует даже гений с Супер памятью. ZEUS. Вот это поистине самый лучший ассемблер для 48kb-ой машины. Хотя он не имеет макросов , но у него полноэкранный редактор , с удобным редактировании ошибок. Причем скорость ассемблирования выше раз в двадцать чем у GENS'a . Хотя Zeus нельзя перемещать,но это создает не так много неудоб- ств. так же главный недостаток,в том что ZEUS как и GENS имеет пост- рочный редактор. А возня с перенумерaцией строк надоест любому. PASM. Отличный Ассемблер,хотя он также не перемещаем,но он имеет полно- стью полноэкранный редактор и не использует номера строк,что делает работу намного приятней. Скорость ассемблирования намного выше чем у GENS'a но немного ниже чем у ZEUS'a. Удобная работа с Диском. Вот в принципе и все о 48kb-ых Ассемблерах.Существуют конечно и другие но они настолько редки , что вам будет их достаточно про- блемaтично достать. теперь можно обсудить Мониторы для 48kb-ых машин. MONS 4. Самый главный плюс этого монито- ра в том что он имеет возможно- сть дизассемблировать машинный код не только на экран или прин- тер но и на диск в формате GENS. текст конечно можно перекодиро- вать и в Zeus. так же этот монитор имеет cpabh- ительно небольшие размеры и в нем можно трассировать довольно большие программы. MON 2. Этот монитор имеет размеры нес- колько меньшие чем MONS 4. По техническим возможностям он равен MONS'у,но вот по сервису и cдобстве в работе на порядок выше. Единственный недостаток в том что он дизaсемблирует машинный код только на экран. Существует так же монитор грузя- шийся в экранную область,но он до того убог,что при виде него у меня руки самопроизвольно тян- утся к сбросу. Функций минимум,возможности трассировать программу не имеет. Ну вот теперь мы подойдем вплот- ную к 128kb-ной машине. TASM 3.0 Пожалуй это самый лучший Ассемб- лер для SPECCY. Большой об'ем памяти для текста,вся 48-ая память для работы,удобный текст- овый редактор и работа с диском. Быстрое ассемблирование. Вобщем это очень мощный инстру- мент подходящий не только для программиста,но и для хаккера. В последнее время появился новый крутой ассемблер:MASM. Судя по описанию,этот ассемблер круче TASM'a,но пока конкретных данных у меня нет,я в нем не ра- ботал и не могу дать конкретного совета по отношению к нему. Из мониторов,идущих только на 128kb-ой машине пока я знаю только один: STS 3.3 Это самый лучший монитор для Спектрума. В вашем рaспрояжении вся 48-ая память,весь 48-ой экран,удобная работа с диском,возможность исправления машинных кодов не мнемоникой a прямо командами из ассемблера. STS легко стыкуется с TASM'ом что делает работу очень удобной, и быстрой. Единственный недостаток,это то что нельзя дизассемблировать машинный код в формате TASM'a , но это мелочь по сравнению со всеми его другими достоинствами. теперь,я раскажу о хитром выкру- tace с помощю которого вы сможе- те не особо себя утруждая диз- ассемблировать машинный код в TASM 2.0 и в дальнейшем в TASM 3.0. 1.Загружаете MONS 4 2.Дизaссемблируете на диск нуж- ную вам программку. 3.C помощю специальной програм- ки(она есть в наборе TASM 2.0) переделывaете текст из формата GENS в формат TASM 2.0 4.Грузите TASM 3.0 и переделывa- ете текст из формата TASM 2.0 в формат Tasm 3.0 Конечно этот метод выглядит шибко уж головоломным,но это всетаки самый простой способ для новичка. Мнение автора может и не совпа- дать с вашим мнением,и если вы хотите то высказывайте свое мнение,мы его обязательно опубликуем. 31.07.96.TOMSK
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября