假设我创建了一个本地变量或者为字符串分配内存,现在我想在其中添加一个值。将字符串动态加载到本地变量
push ebp
mov ebp, esp
sub esp, 0xff ; 255 bytes
,并存储在堆栈中的字符串在C:
strcat(my_str1, "something1");
strcat(my_str1, get_var2());
strcat(my_str1, "something3");
strcat(my_str1, get_var4());
我想undertand怎么做,没有FASM或者NASM “的strcat”:
;1
mov byte ptr [esp - 1], 's'
mov byte ptr [esp - 2], 'o'
mov byte ptr [esp - 3], 'm'
mov byte ptr [esp - 4], 'e'
; and so on
这究竟是怎么完成?关于“get_var2()”和“get_var4()”的部分?
;2
call get_var2
mov ??byte?? ptr [esp - 11], eax
; or lea?
尝试在C中首先实现'strcat'(不使用任何库函数)。然后你会看到它是如何工作的,并且你可以在asm中做同样的事情。 – Jester