Win32asm обучение


         

Можно также использовать регистр как


Можно также использовать регистр как ячейку памяти (он должен быть 32-разрядным в 32-разрядных программах):
mov eax, 403045h ; пишет в eax значение 403045 шестнадцатиричное.

mov cx, [eax] ; помещает в регистр CX значение (размера word) из памяти указанной в EAX (403045)
В mov cx, [eax], процессор сначала смотрит, какое значение (= ячейке памяти) содержит eax, затем какое значение находится в той ячейке памяти, и помещает это значение (word, 16 бит, потому что приемник, cx, является 16-разрядным регистром) в CX.

ADD, SUB, MUL, DIV

Многие опкоды делают вычисления. Вы можете узнать многие из них по их названиям: add (addition - добавление), sub (substraction - вычитание), mul (multiply - умножение), div (divide - деление) и т.д.
Опкод add-имеет следующий синтаксис:
add приемник, источник
Выполняет вычисление: приемник = приемник + источник.
Имеются также другие формы:

приемник источник пример
регистр регистр add ecx, edx
регистр память add ecx, dword ptr [104h] / add ecx, [edx]
регистр значение add eax, 102
память значение add dword ptr [401231h], 80
память регистр add dword ptr [401231h], edx

Эта команда очень проста. Она добавляет значение источника к значение приемника и помещает результат в приемник.

Другие математические команды:
sub приемник, источник (приемник = приемник - источник)

mul множимое, множитель (множимое = множимое * множитель)

div делитель (eax = eax / делитель, edx = остаток)

Поскольку регистры могут содержать только целочисленные значения (то есть числа, не, с плавающей запятой), результат деления разбит на частное и остаток. Например:
28 /6 --> частное = 4, остаток = 4

30 /9 --> частное = 3, остаток = 3

97 / 10 --> частное = 9, остаток = 7

18 /6 --> частное = 3, остаток = 0
Теперь, в зависимости от размера источника, частное сохраняется в eax, а остаток в edx:

размер источника деление частное в... остаток в...
BYTE (8-bits) ax / делитель AL AH
WORD (16-bits) dx:ax* / делитель AX DX
DWORD (32-bits) edx:eax* / делитель EAX EDX
<

Содержание  Назад  Вперед