akorop |
|
Темы:
111
Сообщения:
1755
Участник с: 29 февраля 2012
|
AivarЯ, честно говоря, на Спектруме ассемблер проигнорировал, но, вроде, для Спектрума был адаптирован родной Z80ASM с достаточно стандартными макросердствами (в стиле Intel). Хотя, конечно, он был убог чрезвычайно по сравнению с гораздо более старыми макроассемблером IBM/360,370 AKA ЕС ЭВМ.akoropНет, конечно. 80-90-е. Наиболее вменяемый под Speccy ALASM хоть и именовался макроассемблером... Вообще, по-моему, ассемблер без макросредств вообще не заслуживает рассмотрения. |
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
Кроме Alasm пробовал Edasmon, Zeus, Editas и не припоминаю какого либо намека на макросы. Ну, что было под руками...akoropДля 86-го процессора - возможно. Для Z80, признаться, не представляю, для чего нужен макроассемблер. |
akorop |
|
Темы:
111
Сообщения:
1755
Участник с: 29 февраля 2012
|
AivarРовно для того же самого, что и для любого процессора. Для повышения уровня языка, притом заточенного под свою задачу. И чем мощнее макросредства, тем более читаемые программы можно писать. А раз они программы читаются, то и легче сопровождаются. А голые команды годятся разве что для отписки ради зачёта. Ну или для мелкой вставки или подпрограммы в программе на нормальном языке. |
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
akoropДля повышения уровня языка низкого уровня. Дык, понятно, хоть и звучит абсурдно. Именно поэтому я и высказывался о компактности машинного кода (разумеется, в ущерб простоте написания программы). А голые команды годятся разве что для отписки ради зачёта. Ну или для мелкой вставки или подпрограммы в программе на нормальном языке.Не могу согласиться. Я человек старой формации, иногда писал программы в мониторе (если кто не в курсе о чем речь), поэтому, чем писать в Ассемблере, сплошь и рядом используя макросы, по-моему проще работать с "нормальным" языком высокого уровня. На сем предлагаю прекратить спор. Свою мысль вы донесли и, надеюсь, поняли мою. |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
И все-таки скажите - на каком языке разговаривает компьютер????
Ошибки не исчезают с опытом - они просто умнеют
|
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
vasek, на машинном, разумеется. Если речь не об интерпретаторах, программа, написанная на языке высокого уровня, компилируется в машинный код, непосредственно понимаемый процессором. Интерпретаторы же интерпретируют команды налету. |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
AivarПохоже я не совсем точно выразился - тогда спросим так - что такое машинный язык??? И можно ли считать все эти FASM-ы, NASM-ы и им подобные машинным языком???
Ошибки не исчезают с опытом - они просто умнеют
|
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
vasekРиторика. Программа Ассемблер и создана, дабы облегчить жизнь пишущему. Ведь гораздо проще запомнить мнемонику, пользоваться метками, другими плюшками в т.ч. и макросами, нежели запоминать шестнадцатеричные (восьмеричные, двоичные...) значения команд, вручную записывать/перемещать массивы данных, прописывать адреса к ним, короче кодить непосредственно в машинном коде. |
Rarog |
|
Темы:
10
Сообщения:
188
Участник с: 22 января 2013
|
vasekМашинный язык - это формализованный двоичный код. FASM-ы, NASM-ы(как и любой ассемблер) - это символьная форма записи машинного кода, обвертка поверх последнего, которая представляет инструкции, записанные в двоичном коде, в виде команд. |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
Aivar и Rarog, все это мне известно и понятно. Я человек старой теоретической формации и всегда считал, что машинный язык представляет собой набор простых инструкций - то есть, например, процессор компьютера выполняет программные инструкции, типа - записать число в регистр А, записать число в регистр Б, сравнить содержимое регистров А и Б, если они равны, записать число 1 в регистр С..........если значение регистра С равно 1, выполнить инструкцию Х по адресу Д, в противном случае выполнить инструкцию У по адресу Е и т.д. Это я привык называть ассемблером. Конечно, прогресс на месте не стоит — появляются другие процессоры, другие более приспособленные языки, но в их основе лежит тот же простой ассемблер, то есть он основа всех этих FASM и NASM...... Я их не изучал и не знаю, а потому и хочу докапаться до истины. Сейчас скажу может быть и ерунду — но не бейте. Представим чисто теоретически — написали программу на простом старом ассемблере, прогнали ее через дизассемблер, на выходе получили то же самое (почти один в один, набор простых инструкций). Сейчас прогоним через дизассемблер (и не говорите, что они все разные) эти FASM и NASM — что мы получим на выходе??? Уверен, что это будет простой набор инструкций и + что то другое, но, главное, это все будет не соответствовать программам написанным на FASM и NASM. Но, возможно, я просто сильно отстал от всего этого и мои представления сильно устарели.
Ошибки не исчезают с опытом - они просто умнеют
|