`

Delphi循环语句对应的汇编语句序列-- 转

 
阅读更多

count: 终值, start:起始值
正向:
语句:for i:=0 to count do
汇编:mov eax, [count]
test eax, eax
jl XXX
inc eax
[循环体]
dec eax
jnz [循环体]
XXX

语句:for i:=0 to count-1 do
汇编:mov eax, [count]
dec eax
test eax, eax
jl XXX
inc eax
[循环体]
dec eax
jnz [循环体]
XXX

语句:for i:=1 to count do
汇编:mov eax, [count]
test eax, eax
jle XXX
[循环体]
dec eax
jnz [循环体]
XXX

语句:for i:=1 to count-1 do
汇编:mov eax, [count]
dec eax
test eax, eax
jle XXX
[循环体]
dec eax
jnz [循环体]
XXX

语句:for i:=start to count do
汇编:mov edx, [start]
mov eax, [count]
sub eax, edx
jl XXX
inc eax
[循环体]
dec eax
jnz [循环体]
XXX

语句:for i:=start to count - 1 do
汇编:mov edx, [start]
mov eax, [count]
dec eax
sub eax, edx
jl XXX
inc eax
[循环体]
dec eax
jnz [循环体]
XXX

逆向:
语句:for i:=count downto 0 do
汇编:mov eax, [count]
cmp eax, 0
jl XXX
[循环体]
dec eax
cmp eax, -1
jnz [循环体]
XXX

语句:for i:=count-1 downto 0 do
汇编:mov eax, [count]
dec eax
cmp eax, 0
jl XXX
[循环体]
dec eax
cmp eax, -1
jnz [循环体]
XXX


语句:for i:=count downto 1 do
汇编:mov eax, [count]
cmp eax, 1
jl XXX
[循环体]
dec eax
test eax, eax
jnz [循环体]
XXX


语句:for i:=count-1 downto 1 do
汇编:mov eax, [count]
dec eax
cmp eax, 1
jl XXX
[循环体]
dec eax
test eax, eax
jnz [循环体]
XXX


语句:for i:=count downto start do
汇编:mov edx, [start]
mov eax, [count]
sub edx, eax
jg XXX
dec edx
[循环体]
inc edx
jnz [循环体]
XXX


语句:for i:=count - 1 downto start do
汇编:mov edx, [start]
mov eax, [count]
dec eax
sub edx, eax
jg XXX
dec edx
[循环体]
inc edx
jnz [循环体]
XXX

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics