Добрые люди, очень нужна ваша помощь)))
Дано вот такое вот заданьице:
Вычислить арифметические выражения a∗b∗(−1) и c^2+d^3−100 . Переменные a,b,c,d в начале выполнения программы должны быть расположены в регистрах EAX, EBX, ECX и EDX соответственно. Численные значения можно взять произвольными.
Создать глобальную переменную размером в 16 байт и программно инициализировать ее таким образом, чтобы в окне дампа можно было бы увидеть значения вида 01 00 01 00 …
Дело в том, что я в ассемблере пока полный ноль, а в методичке нет никакой инфы))
Я не пойму, например, в какой регистр после умножения (mul) попадает значение
Мне просто очень нужен пример, и тогда я разберусь
Сделала что-то такое, это для 1 части, исправьте, пожалуйста, что не так)
format PE GUI
entry start
start:
mov eax, 2
mov ebx, 3
mov ecx, 4
mov edx, 5
mov esi, eax
mov eax, ecx
mul eax
mov edi,eax
mov eax,edx
mul eax
mul eax
add edi,eax
sub edi,100
mov eax,esi
neg ebx
mul ebx
ret
Здесь похоже не подойдут регистры: eax ecx edx ebx. Их размер составляет 32 бита.
16 байт это регистры тип SSE: xmm0 xmm1 xmm2 xmm3 1.2.1 Синтаксис инструкций