尺寸包含86号。
var_10= dword ptr -10h
var_C= dword ptr -0Ch
size= dword ptr 8
push ebp
mov ebp, esp
sub esp, 28h
mov eax, [ebp+size]
mov [esp], eax ; size
call _malloc
mov ds:x, eax
mov [ebp+var_C], 0
jmp short loc_804889E
loc_804889E: ~~~~~~~~~~~~~~~~~~~~~
mov eax, [ebp+size]
sub eax, 1
cmp eax, [ebp+var_C]
jg short loc_8048887
loc_8048887: ~~~~~~~~~~~~~~~~~~~~~
mov edx, ds:x
mov eax, [ebp+var_C]
add edx, eax
mov eax, [ebp+var_C]
add eax, 16h
mov [edx], al
add [ebp+var_C], 1
我有倒车项目我工作的这部分困难。 还有的地方的部分代码ds:x
被移到edx
,并加有var_c
,而且我不确定哪里去了这一点。
对我来说,程序看起来像它调用malloc
,然后会移动到ds:x
,然后移动0
至var_c
。
之后,它简单地减去1
从我的指针阵列的大小和数目进行比较,以0
,然后跳转到其中它增加了一个部分ds:x
为edx
所以它可以添加eax
到edx
。
我在处理某类阵列这里的? 什么是那将进入第一个值edx
在loc_8048887
? 另一种方式,这可能有助于将看到一个C相当于它......但是,这会是什么,我试图完成,而宁愿通过学习不同的方式来解决。
谢谢!