Состоит из нолей и единиц. Программа в машинном коде состоит из последовательности машинных инструкций в двоичном коде, которые содержат коды операций и ячейки памяти, участвующие в операции.
Программа на машинном языке читается компьютером напрямую, без промежуточных шагов.
Processor’s instruction set looks like:
Command code | Command |
---|---|
00110 | read (110010011010100010001001…) |
10110 | write (011000100101110100100010…) |
11010 | move (111001010110101001001011…) |
Суть: у нас появляется вот такая табличка:
mov | 11010 |
---|---|
add | 11100 |
sub | 00100 |
… | … |
Это символьное представление машинного языка конкретного процессора. В машинный код преобразуется ассемблером. Обычно каждая строка кода сборки производит одну машинную инструкцию (однозначное соответствие).
Это языки программирования, в которых используются операторы, состоящие из ключевых слов, похожих на английские слова, таких как «FOR», «PRINT» или «IF».
Каждое утверждение языка высокого уровня соответствует нескольким инструкциям машинного языка.
На данные ссылаются, используя описательные имена, которые называются имена переменных. Т.е. вместо того, чтобы использовать каждый раз её огромный сложный адрес мы ей присваиваем понятное нам имя и обращаемся по этому имени.
Пример программ на этих типах ЯП:
BB 11 01 B9 0D 00 B4 0E 8A 08 5D 13
mov AH, 09h
mov DX, offset message
int 21h
int 20h
message DB 'Hello World', 13, 10, '$'
program HelloWorld;
begin
write('Hello, World!');
end.
<aside> 💡 Почему BB, а не 0110…101? Это hex-коды.
binary: 1101 0010 hex: D 2
$11010010_{2} = D2_{16}$
</aside>