M
moonight
Unregistered / Unconfirmed
GUEST, unregistred user!
function DelphiString(str: string): Integer;
asm
mov ecx, [eax-4]
mov result, ecx
end;
当你调用DelphiString('abc')的时候,函数返回值为( ),为什么?
================================
补充:
---------
我想再次强调,不要说运行不起,这是一道权威的题目,我只是想知道这个题所返回的值是怎么来的。
我自己先分析了一下:
这道题,放到程序里面(本来要求是脱离IDE环境回答的)测试,结果表明返回值是传入的String的字符串长度。
那么两行汇编代码怎么就可以得到传入参数的长度?是不是与String类型在内存里的存储有关?
现在就是这个问题没搞懂,欢迎各位进来研究。关键在于回答问题中的“为什么”!
灌 水 就 免 了 !!!
asm
mov ecx, [eax-4]
mov result, ecx
end;
当你调用DelphiString('abc')的时候,函数返回值为( ),为什么?
================================
补充:
---------
我想再次强调,不要说运行不起,这是一道权威的题目,我只是想知道这个题所返回的值是怎么来的。
我自己先分析了一下:
这道题,放到程序里面(本来要求是脱离IDE环境回答的)测试,结果表明返回值是传入的String的字符串长度。
那么两行汇编代码怎么就可以得到传入参数的长度?是不是与String类型在内存里的存储有关?
现在就是这个问题没搞懂,欢迎各位进来研究。关键在于回答问题中的“为什么”!
灌 水 就 免 了 !!!