内联汇编Visual Studio

时间:2017-10-09 03:49:03

标签: visual-studio assembly inline-assembly

对于noob问题抱歉。 所以我给了这个代码。根据我的理解,它添加了两个值,但是我被抛弃了mov [ebp-1], al指令。当前在堆栈上的地址是ecx的先前值是未知的,因此该指令是否更改了ecx之前值的低字节?

push 0ffffff80h
push 0ffffffffh
call Secretfunc
add esp, 8
mov [ebp - 1], al
nop
Secretfunc
push ebp
mov ebp, esp
movsx eax, [ebp+8]
movsx ecx, [ebp+12]
add eax, ecx
mov [ebp-1], al
mov al, [ebp-1] ; declare a char in c for this
mov esp, ebp
pop ebp
retn

我还想知道是否有人知道在visual studio上进行内联汇编的好教程/手册?我发现的大部分都是使用gcc而不是VS,而微软的手册并不是很有帮助 我的教授希望我将此代码转换为VS上的内联汇编代码。是否有任何基本规则可以将内联汇编与上面给出的代码区分开来? 我尝试将secretfunc转换为带有-1的C函数,并将-128作为参数,我将Secretfunc下面的所有代码放入我在C中创建的Secretfunc函数中的__asm{...},但这让我不知道我们从调用Secretfunc返回后如何处理代码 任何信息都表示赞赏 谢谢

0 个答案:

没有答案