妖哥 2008-4-8 20:54
初学 Delphi 嵌入汇编[23] - LOOP 循环
[color=#008000]//计算 x 的 n 次方的函数
[/color][b][color=#000080]function[/color][/b] Fun(x,n: Integer): Integer;
[b][color=#000080]asm[/color][/b]
[color=#008000] //mov eax, x {因为 eax 会先获取第一个参数, 这句可以省略}
[/color] mov ecx, n [color=#008000]{ecx 是个计数寄存器, 会记录循环的次数, 没循环一次 ecx 的值就会减1}[/color]
@Lable1: add eax, eax [color=#008000]{内部标签必须使用 @ 前缀; 也可以使用 Delphi 的标签}[/color]
loop @Lable1 [color=#008000]{循环到标签执行}[/color]
[b][color=#000080]end[/color][/b];
[color=#008000]//测试
[/color][b][color=#000080]procedure[/color][/b] TForm1[color=#0000ff].[/color]Button1Click(Sender: TObject);
[b][color=#000080]begin[/color][/b]
ShowMessage(IntToStr(Fun([color=#0000ff]2[/color],[color=#0000ff]10[/color]))); [color=#008000]{2048}[/color]
[b][color=#000080]end[/color][/b];