Найти в Дзене
Ассемблер

Ассемблер

На языке ассемблера сегодня редко пишут программы даже для микроконтроллеров. Но изучать его стоит хотя бы потому, что это очень увлекательно.
подборка · 25 материалов
11 месяцев назад
Работа программы на ассемблере - как проверить
Сегодня уже очень мало осталось людей, кто программирует на ассемблере (ну если не считать программистов микроконтроллеров, хотя и они уже переходят на С++, Паскаль и даже Python). Да что там программирует. Даже тех, кто просто интересуется - тоже осталось мало. Но зато это люди, которые хотят добраться до самой сути, понять, как же программный код в итоге преобразуется в машинные команды, которые и заставляют железо делать то, что нужно программисту. Правда, здесь мы снова сталкиваемся с рынком...
OFFSET в Ассемблере
В переводе с английского “offset” - это смещение. Допустим, у нас есть такая программка: Когда ассемблер доходит до строки 06, он заменяет offset Hello на адрес (смещение) строки, с которой связано имя Hello. В итоге в регистре DX будет нечто вроде этого: В нашем примере смещение от начала программы равно 0108h. Это число и будет записано в DX. Если бы мы забыли использовать оператор offset и сделали так: MOV DX, WORD PTR Hello то в регистре DX оказался бы не адрес строки, а первые её два байта, то есть буквы He...
149 читали · 2 года назад
Проверка нажатия клавиши в ассемблере
Когда я изучал ассемблер, было любопытно всё. И загадочно. Сейчас это уже не загадочно. Но до сих пор любопытно. Поэтому я продолжаю писать иногда статьи по ассемблеру, несмотря на то, что с практической точки зрения это уже мало кому надо. Сегодня пример того, как можно прочитать и проверить нажатие клавиши. Для этих целей имеется немало функций как операционной системы, так и BIOS. Но мы сегодня используем первую попавшуюся - функцию DOS 07h. И сразу пример: Функция DOS 07h читает нажатую клавишу и записывает её код в регистр AL...
163 читали · 2 года назад
ORG 100h
Если вы начинаете изучать язык ассемблера, то у вас наверняка сразу появляется куча вопросов, найти ответ на которые бывает на так просто (кстати, на некоторые вопросы вы найдёте ответы в подборке статей по ассемблеру этого канала). Лично меня когда-то сильно мучал вопрос - зачем в начале некоторых программ на ассемблере записывается строка: ORG 100h Попробую сегодня ответить, не вдаваясь в излишние подробности… Начну с того, что это не команда процессора, а оператор (иногда это называют директивой), который даёт некие указания ассемблеру (какие - чуть позже)...
351 читали · 2 года назад
Бесконечный цикл в Ассемблере
Любой цикл в любом языке программирования можно сделать бесконечным. В некоторых случаях для этого придётся постараться, но в большинстве случаев стараться не надо. Простая невнимательность обычно приводит к тому, что программа зацикливается. Вот вам несколько способов сделать цикл бесконечным в Ассемблере. Способ 1: инициализация счётчика после метки Здесь мы немножко ошиблись, и сделали так, что новое значение в счётчик записывается ПОСЛЕ метки, к которой нас возвращает команда LOOP. Поэтому счётчик никогда не обнулится, и программа никогда не закончится...