Я пытаюсь изменить строку «Hello bob», а затем передать ее в другую строку, используя C и встроенную сборку. Я использую Visual Studio C++, и результат "Dbob bob"
. Что я здесь делаю неправильно?Обратный строки с использованием C и встроенной сборки
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
char source[10] = "Hello bob";
char dest[] = "";
int i;
for (i = 0; i < 10; ++i)
{
source[i] = source[10-i-1];
}
__asm
{
lea esi, source
cld
lodsb
lea edi, dest
mov eax, 0xFF
stosb
lea edi, dest
cld
mov ecx, length source
mov eax, 0x44
rep stosb
lea esi, source
lea edi, dest
mov ecx, length source
cld
rep movsb
}
printf("%s",source);
printf("%s" ,"\n");
printf("%s",dest);
getchar();
return 0;
}
Это было полезно, спасибо. – user3007093