z80 не самый простой процессор с точки зрения ассемблера. Гораздо удобнее начинать с какой-то простенькой микрушки типа 8008 или 8051 симуляторов с ассемблерами которых полно в инете. Только не надо там сильно углубляться и тратить на них мозг, а как только исчезнет паника, тут же возвращайтесь на z80. Надеюсь с двоичной арифметикой у Вас проблем нет? Тогда сделайте умножение/деление двух чисел для 8008, и потом то же самое для z80. Психологический барьер будет снят. Сам я начинал с программируемых калькуляторов, потом 8080. Mat1sha, но если знаете C, гораздо проще освоить ассемблер z80 использовав компилятор в режиме параллельной генерации ассемблерного кода. Да и книжка вроде где-то попадалась про изучение ассемблера с помощью C
А про С я вспомнил с одной целью. Чтобы мозги не ломать и не делать явной ерунды, проще сделать на C и его потом улучшать в меру своего знания ассемблера. Помню был у меня один вредный заказчик, который за программы на ассемблере для 51-ой микрухи платил в полтора раза больше, так я все на PL/M-51 накатал, а потом быстро пооптимизировал и содрал с него как за ассемблерС конечно имеет тот минус, что заставить его использовать преимущества конкретной архитектуры довольно тяжело, если только он специально под нее не сделан. ( Как известно, С рассчитан на стек, а на регистры и их особенности у конкретного проца ему глубоко ...)
Ну и понятно, что знание ассемблера превращает любого программиста в начинающего хакераСобственно к чему данный курс в случае успешного освоения несомненно и приведет. Всем сорри, я собственно на тему как снизить психологический барьер при изучении ассемблера:
1) начни с самой простой архитектуры;
2) при сложностях с алгоритмами используй ЯВУ( С, PL/M, Pascal и все что окажется под рукой);
3) старайся писать на незнакомом ассемблере примерчики, которые легко ощущать имеющимся у тебя отладчиком(хорошо если у него есть графический API и консоль с готовыми макросами, в крайнем случае имитатор ввода/вывода(кнопочек-лампочек) или хотя бы beep, все эти средства можно использовать при отладке любых программ, особенно если примитивный отладчик.
4) не напрягайся, команды ассемблера запоминаются не все и не сразу, держи перед глазами help-файл (.chm), а еще лучше умный редактор, выдающий варианты команды в правильной транскрипции при вводе;
5) не старайся сразу запомнить за сколько тактов выполняется та или иная команда и какие флаги она устанавливает(если только твоя задача не состоит из нескольких параллельных тредов и не взаимодействует с железом, где необходимо отслеживать временные интервалы);
6) кстати, разучи флаги в данной архитектуре(проце) без них в ассемблере не жить;
7) не забывай запрещать прерывания, когда они не нужны твоей программе;
8) не забывай Калаш, ну и стек само собой(без стека ты не сможешь ни вызвать процедуры, ни обработать прерывания);
9) обзаведись набором удобных тебе макро, если твой ассемблер не макро-, запомни все в умном редакторе, бедолага;
10) моли Бога, что у него хотя бы только пользовательский режим и нет обработки исключений;
11) разучи как передаются параметры в/из процедуры;
12) сохраняй регистры при вызове процедуры, в теле самой процедуры и восстанавливай их при возврате в обратном порядке;
13) процедура обслуживания прерывания тоже процедура!
14) кстати, не худо бы узнать детали того, как обслуживаются прерывания в твоей архитектуре;
15) комментируй заголовки процедур на предмет того, какие регистры она портит(именно эти регистры необходимо сохранять при входе и восстанавливать при выходе);
16) не делай свой код непонятным и недокументируемым, ты ведь не на работе, где за это тебя возненавидят коллеги и станет побаиваться и уважать босс;
17) научись писать лаконичные и понятные комментарии, в ассемблере это 70% успеха работающей и сопровождаемой программы, приколы и мат разбросанные по сотне страниц исходника останутся в нем на века;
18) в самом начале программы дай ссылку на себя любимого и свой e-mail, обозначай дату и версию, и требования к железу(конфигурации), тем ты спасешь себя от многих бед и тебе будут благодарны братья-программисты.
Ну вот вроде и все, что осталось в голове после трех лет ковыряния в чужих программах на MASMе в компаниях Телеинформ и Мультиком СПб объемом в сотни тысяч строк.





Ответить с цитированием