Какова связь между машинным языком и программированием на ассемблере?отношение между машинным и ассемблерным языком
ответ
Оба являются специфичными для реализации и имеют дело с отдельными инструкциями для процессора, но машинный код немного ниже, представленный человеческому программисту как серия чисел и почти всегда в чистом двоичном формате.
С другой стороны, сборка написана символически, а не в виде чистого двоичного кода. Он предназначен для чтения человеком-программистом, а затем преобразован в двоичный код машинного кода, но все же работает с отдельными инструкциями.
Wikipedia подытоживает хорошо:
Гораздо более читаемое исполнение машинного языка, называемого языком ассемблера, использует мнемонические коды для обозначения инструкции машинного кода, а не просто с помощью числовых значений с инструкциями. Так, например, на процессоре Zilog Z80, машинный код 00000101, что приводит к процессору декремента регистра процессора В, будут представлены на языке ассемблера, как DEC B.
Ассемблер был изобретен, чтобы сделать его более легким для чтобы писать машинный язык. Язык
Монтаж:
MOV AX,1
Машинный язык:
B8 01 00 ; B8 = copy two bytes into AX 0001 = value to copy
Обратите внимание, что язык ассемблера скрывает поворота 0100
в 0001
- этот процессор является "Little Endian"
Важным отличием является язык ассамблеи этикетки:
JMP next_thing
Машинный язык:
EB FC ; EB = jump, FC = current address - 4 bytes
Перед сборкой, нужно было рассчитать скачок смещения вручную.
Язык ассемблера является понятным для человека представлением для машинного языка.
http://stackoverflow.com/questions/466790/assembly-code-vs-machine-code-vs-object-code – dkinzer