Осуществляет операцию вычитания с целочисленными значениями (или операндами).
|
|
СИНТАКСИС
| |
SUB reg,reg
SUB con,reg
SUB con,mem
SUB mem,reg
SUB reg,mem
|
|
АРГУМЕНТЫ
| |
reg — регистры общего назначения
con — константа (операнд)
mem — адрес памяти
|
|
ОПИСАНИЕ
| |
В первом аргументе инструкции sub указывается регистр, адрес памяти или предворяемым символом '$' константа (операнд), выступающие в роли вычитаемого целочисленного значения. Во втором аргументе – только регистр и адрес памяти, потому что выполнение операции вычитания из уменьшаемого целочисленного значения может быть выполнена только с хранящим его доступной по записи области данных, как показано ниже с возможным сочетанием комбинаций передачи аргументов инструкции sub.
В языке программирования GNU C инструкции sub соответствует оператор совмещенный с присваиванием вычитания '–=' как показано в примере ниже.
При этом, в данном примере производится операция целочисленного приведения к 32-м разрядам значения уменьшаемого (minuend) и вычитаемого (subtrahend) c использованием инструкции movzl.
Кроме целочисленных операций со значениями sub используется
при выделении кадра стека функции как показано на следующем примере.
Здесь инструкция sub используется для выделения кадра стека равного 16-ти байт с предварительной операцией выравнивания с использованием инструкции and и последующей передачей нулевого значения вызываемой функции GNU C (подпрограммы) func().
| |