Главная /
Ассемблер /
Для чайников /
Введение в Ассемблер /
Инкремент и декремент в Ассемблере
|
Лучшие книги по Ассемблеру
Сделал подборку не новых, но проверенных книг по программированию на языке ассемблера. Если вы также как и я любите погружаться на низкий уровень, в те закоулки мира программирования, куда не всем путь открыт, то посмотрите. Возможно, что-то вам понравится.
Подробнее...
|
В программировании очень часто приходится увеличивать или уменьшать число на единицу. Поэтому в любом языке программирования (ну во всяком случае в тех, которые я знаю) имеются команды инкремента и декремента. Инкремент - это увеличение, а декремент - уменьшение.
Например, в С++ и других подобных языках это делается очень просто:
i++
Пояснять не буду, поскольку эта статья не о С++. Если хотите знать больше, то вам сюда.
В ассемблере тоже есть команды для этих целей. И их применение также не вызывает особых затруднений.
Когда обычно используются эти команды?
В языках высокого уровня чаще всего они применяются в циклах с так называемыми “индексными” переменными или переменными-счётчиками (хотя эти названия чисто условный). Однако в ассемблере для организации цикла нет необходимости использовать дополнительную переменную. Пример:
.model tiny
.code
ORG 100h
start:
MOV CX, 3 ; Цикл будет выполнен 3 раза
MOV AX, 0 ; AX = 0
cicle:
ADD AX, 1 ; Прибавить 1 к AX
LOOP cicle ; Повторить цикл
; После завершения цикла AX = 3
RET
END start
Здесь в теле цикла (в отличие от языков высокого уровня) нам не надо увеличивать или
уменьшать какую-то переменную, чтобы понять, когда закончится цикл. Мы просто записываем в
регистр СХ количество циклов, и дальше всё делается автоматически.
Но циклы - это не единственное возможное применение инкремента и декремента. Хотя в теле цикла эти команды встречаются достаточно часто, в том числе и в ассемблере.
Чаще всего инкремент и декремент используются при организации каких-либо счётчиков.
Кроме того, удобно их использовать там, где требуется последовательно перебрать
какой-либо массив данных (пример см. в описании инструкции LOOP).
Но, как говорится, хватит тянуть кота за я… Где же описание команд инкремента и декремента? В этой статье я эти описания приводить не буду, поскольку уже давно это сделал в отдельных статьях с видео:
На этом пока всё. Подключайтесь к группе Основы программирования в Телеграм, или к другим каналам (ссылки ниже), чтобы ничего не пропустить.
|
Первые шаги в программирование
Главный вопрос начинающего программиста – с чего начать? Вроде бы есть желание, но иногда «не знаешь, как начать думать, чтобы до такого додуматься».
У человека, который никогда не имел дело с информационными технологиями, даже простые вопросы могут вызвать большие трудности и отнять много времени на решение.
Подробнее...
|