1.循环结构和分支结构的汇编
这里主要包括 for循环、while循环、if...else分支结构、do...while循环。
其中if...else if....else结构要特别注意,在else if和else后第一条指令是jmp到if...else...结束处,这主要是防止,在上一步的分支执行后
接着执行这个分支结构,加上这个之后,就可以直接跳出分支结构了
for循环一般结构;
mov <循环变量>,<初始值>
jmp B
A: (改动循环变量)
...
B: cmp <循环变量>,<限制变量>
jge 跳出循环
(循环体)
...
jmp A
do循环:
cmp <循环变量>,<限制变量>
jl <循环开始点>
while 循环
A:cmp <循环变量>,<限制变量>
jge B
<循环体>
...
jmp A
B: <循环结束>
release版本和debug版本是不同的,debug版本可以说c语言语句和汇编语句是可以对应起来的,而release版本就复杂了,因为编译器会做很多的优化,比如把根本没用到的变量删掉、把跳转不到的函数优化掉等等,所以release版本的反汇编会复杂得多。这个需要多加练习才能很好的反汇编(书上有个练习)