汇编中while功能的写法

循环的大致格式是:

。。。。。。。 

jmp label_b

 

label_a:

;while内的内容 

  。。。。。。。。。。。

 

label_b:

cmp eax, 5 ;while的判断条件

jle label_a

;while执行后的内容 

。。。。。。。。。。。。

 

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

如代码:

a = 2;

b = 1; 

while( a <= 5 ){

b *= a;

++a; 

printf("%d", b); 

 翻译成汇编代码为:

;赋值

mov [ebp-4],  2

mov [ebp-8], 1 

label_a: 

mov eax,  [ebp-8] 

  imul eax, [ebp-4]

mov [ebp-8], eax

inc ebx[ebp-4]

 

label_b:

cmp [ebp-4], 5

jle label_a

  push [ebp-8]

lea eax, offset aFormatString ; "%d"

push eax

call printf 

posted @ 2011-09-15 10:49  keepfocus  阅读(704)  评论(0编辑  收藏  举报