Тема: Що таке мова асемблера і з чим її їдять
Стаття ще пишеться
Колись давно, комп'ютери були великі та складалися з ламп. Вони програмувалися в машинному коді напряму. Як це? Програміст брав довідник і читав - для того, щоби завантажити в комірку пам'яті під номером 7 значення 13 треба спочатку написати код операції, потім номер комірки пам'яті, а тоді вже саме числове значення, яке завантажується в цю комірку. Комп'ютер здатний працювати лише з двійковими даними, тому програми писалися так само. Для більш щільного запису двійкових даних застосовується шістнадцяткова система числення. Двійкові данні розбиваються на октети або байти, по 8 розрядів в кожному. Кожен двійковий розряд називається біт. Себто байт складається з 8 біт.
Машинний код вищевказаної команди для х86 сумісного сучасного процесора записується так: c6 05 07 00 00 00 0d.
Оскільки х86 процесор 32-розрядний, тому адреси також мають 32 розрядні (4-байтові) значення. Процесори х86 сумісні зберігають числа "догори дригом", себто спочатку йдуть молодші байти. Докладніше про порядок байтів можна почитати тут. Саме тому число 7 записується як 07 00 00 00. В вищенаведеній команді c6 05 це код операції, 07 00 00 00 це адреса комірки пам'яті, а 0d - майбутнє значення комірки пам'яті.
mov BYTE PTR ds:0x7,0xd