摘要: 把C语言翻译成汇编语言if(dx<=cx) x=1else x=2main PROC mov edx,4 mov ecx,5 cmp edx,ecx jle L1 mov x,2 jmp nextL1: mov x,1next: mov eax,x call WriteDec retmain endpif(bx>cx) x=1 mov eax,4 mov ebx,5 cmp eax,ebx jg next mov x,1 mov eax,x call WriteDecnext: retif(Val1>cx AND cx>dx) X=1else X=2.dataX DWO 阅读全文
posted @ 2011-06-04 10:21 linyilong 阅读(393) 评论(0) 推荐(0) 编辑
摘要: C语言里面AddTwoint AddTwo(int x,int y){ return x+y;}翻译成汇编可以翻译成这样:AddTwo PROC push ebp mov ebp,esp mov eax,[ebp+12] add eax,[ebp+8] pop ebp ret AddTwo endp然后main函数调用:main PROC push 6 push 5 call AddTwo call WriteDec retmain endp程序执行如下图但是上面会发生内存,因为在addTwo执行完毕后,esp如下图:这样程序返回后就会跳到5处执行,所以程序最后会发生如下图的错误:可以用这种方 阅读全文
posted @ 2011-06-04 10:20 linyilong 阅读(250) 评论(0) 推荐(0) 编辑