я создал переменные:ассемблер - Умножение
Y sword 8
Z sword 20
T sword 68
B sword ?
И я должен оценить следующее, B = 4T - (8 + Z) + Y
Я действительно не знаком с тем, как сделай это. Может кто-то, пожалуйста, помогите мне понять?
я создал переменные:ассемблер - Умножение
Y sword 8
Z sword 20
T sword 68
B sword ?
И я должен оценить следующее, B = 4T - (8 + Z) + Y
Я действительно не знаком с тем, как сделай это. Может кто-то, пожалуйста, помогите мне понять?
Предполагая, что мечи подписаны 16-разрядные числа:
movsx eax,sword ptr T
movsx ebx,sword ptr Y
shl eax,2 ; faster than imul
movsx edx,sword Z
add eax,ebx
add edx,8
sub eax,edx
mov sword ptr B,ax
Затем оптимизировать немного:
movsx eax,sword ptr T
movsx ebx,sword ptr Y
movsx edx,sword Z
lea eax,[ebx+eax*4] ; less code than shr
add edx,8
sub eax,edx
mov sword ptr B,ax
Я действительно не понимаю, что вы сделали. Я новичок в языке Ассамблеи и только начинаю ее изучать. Мне дали задание выполнить эти расчеты: A = Z - Y + T B = 4T - (8 + Z) + Y C1 = 4 (T-8) + Z + Y D = mod (T , 8) E = Y^2 + Z –
@SameerAnand: Переполнение стека не является хорошим местом для начала обучения. – Artur
Я перевел выражение, которое вы указали в своем вопросе, в инструкции по сборке x86, которые скомпилированный (компилятор) сгенерировал при компиляции. Visual C++ может генерировать ассемблер для вас, но сначала вы должны сначала прочитать на ассемблере, если это ваш первый набег. –
Простой способ для достижения этой цели в то время как еще изучения важных понятий сборки для написания программы на C/C++, и ваш компилятор выводит сборку. Оттуда изучите синтаксис и посмотрите, начинает ли он возникать смысл. Это на самом деле способ, которым я научился сборке x86 ...
Какой процессор вы пишете код? –
Я не уверен, что вы имеете в виду. Я просто пытаюсь сделать это на 32-битном компьютере с помощью Visual Studio. –
Тогда вы ориентируетесь на x86, скорее всего. –