代码改变世界

输入字符串长度

2012-10-13 10:46  放作夥  阅读(248)  评论(0编辑  收藏  举报

问:

答:

在内存中一个String方法的格式都是:SIze+内容。如果String定义的时候带packed关键字,那么Size是一个Byte,如果不带,那么是DWord。

在高级语言中,定义一个String类型的参数。在Push进Call里面的时候。都是 压入 String的第一个字符的地址。
所以,Esi的地址就是第一个字符的地址,而这个地址 -4就是Size。
如果带packed,那么Esi-1就是Size。