Как установить регистр eax в встроенной сборке C++
eax и ebx-это 32-битные регистры. массивы a[] и b[] содержат 4 символа и 32 бита данных. я могу отдельно установить каждый индекс массива в каждом регистре,например mov eax, a[1].
но я хочу установить все 4 символа массива 'a' в регистр eax. главное - это последовательность действий. Я хочу установить эти два регистра без каких-либо изменений в последовательности содержимого массивов. например, первый массив-это a[0]='a',a[1]='b',a[2]='c',a[3]='d' , а регистр eax должен быть как "abcd". как я могу это сделать?
Что я уже пробовал:
<pre lang="c++"> int _tmain() { char b[4],a[4]; b[0]='A',b[1]='T',b[2]='C',b[3]='G'; a[0]='A',a[1]='T',a[2]='C',a[3]='G'; __asm { movzx eax,a[1] //here i want to load all 4 char of a movzx ebx,b[1] //here i want to load all 4 char of b } getchar(); return 0; }
Richard MacCutchan
Почему? Как только этот код будет передан, регистры будут использоваться для других целей, как это решит компилятор.