Как стать программистом Как устроен компьютер. Что такое программа. Как написать свою программу. И многое другое узнаете вы из этой книги. Получить бесплатно! |
Вычитание в Ассемблере
Лучшие книги по Ассемблеру
Сделал подборку не новых, но проверенных книг по программированию на языке ассемблера. Если вы также как и я любите погружаться на низкий уровень, в те закоулки мира программирования, куда не всем путь открыт, то посмотрите. Возможно, что-то вам понравится. Подробнее... |
Ранее я рассказывал о сложении двух чисел в ассемблере. Там же я сказал, что сложив число с отрицательным числом, можно выполнить и вычитание. Однако в исходных кодах всё-таки было бы более понятно, если бы для вычитания использовалась отдельная команда, чтобы не запутаться. И такая команда есть - это команда SUB, которая вполне пригодна для большинства случаев, когда надо вычесть одно число из другого.
Большая часть из того, что было сказано для команды сложения, справедливо и для команды вычитания. Поэтому здесь только простые примеры, без дополнительных разъяснений.
MOV AL, 10 SUB AL, 7 ; AL = 3
Здесь мы сначала в регистр AL помещаем число 10, а затем используем команду SUB, чтобы вычесть из значения в регистре AL число 7. В итоге в AL будет результат - число 3.
Ещё один пример:
MOV BL, 1 SUB BL, 2 ; BL = 255
Этот пример более сложный с точки зрения программирования. С точки зрения математики он также простой - из числа 1 мы вычитаем число 2, результатом будет -1. Однако представление отрицательных чисел в памяти компьютера имеет свои особенности, поэтому в регистре BL будет число 255, которое является числом -1, если старший разряд используется для определения знака числа.
Кроме того, в данном случае флаг SF будет установлен, так как результатом будет число со знаком.
В некоторых случаях для вычитания используется команда SBB. Её можно использовать, например, для вычитания 64-разрядных чисел на 32-разрядных процессорах, или 32-разрядных чисел на 16-разрядных процессорах.
На этом пока всё. Подключайтесь к группе Основы программирования в Телеграм, или к другим каналам (ссылки ниже), чтобы ничего не пропустить.
Подписаться на канал в РУТуб
Вступить в группу "Основы программирования" Подписаться на рассылки по программированию |