C/C++教程

c语言分析和循坏对应的汇编定义格式

本文主要是介绍c语言分析和循坏对应的汇编定义格式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

c语言if单分支结构所对应的汇编代码结构

#include "stdafx.h"
int main(int argc, char* argv[])
{
	if(argc > 8 )
	{
	  printf("argc > 8");
		if(argc > 50)
		{
		  printf("argc > 50");
		}
	}
	return 0;
}

注意这些与语言没有关系,这是编译原理的问题,以后看编译原理

if和else双分支的汇编结构

#include "stdafx.h"

int main(int argc, char* argv[])
{
	if(argc> 0 )
	{
	 printf("argc>0\r\n");
	}
	else
	{
	printf("argc<=0\r\n");
	}
	return 0;
}



双分支的结构特点:jxx的目标上一行指令为jmp,而且是往高地址去的的jmp

编译原理代码优化外提

do—while(效率最高,跳转的目标没有检测条件,往上跳)

#include "stdafx.h"
int main(int argc, char* argv[])
{
	int n = 1;
	int nSum = 0;

	do
	{
		nSum=nSum+n;
		n++;
	}
	while(n<=100);
	return 0;
}



1.识别代码定式
2.如果是do循环,则按jxx同条件还原等价高级代码
3.其余的代码还原则按相反的规则还原

while循环的代码定式

这篇关于c语言分析和循坏对应的汇编定义格式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!