三九宝宝网宝宝教育教学论文

C学习笔记一 C语言和汇编语言的区别

02月02日 编辑 39baobao.com

[用c语言编写一个定义回文数的程序谢谢]void main() { char a[50]; scanf("%s",&amp;a); int n=strlen(a),i=0; for(;i<=n/2;i++) { if (a[i]!=a[n-1-i]) { printf("%s不是回文数",a); break; } } if (i>n/2) {printf("%...+阅读

C学习笔记(一) C语言和汇编语言的区别

2016-07-11 09:43 162人阅读 评论(0) 收藏 举报

分类:

C学习笔记(13)

版权声明:本文为博主原创文章,未经博主允许不得转载。

C学习笔记(五) C语言和汇编语言的区别

C语言和汇编语言的区别:

汇编:效率高,对硬件的可操控性更强,体积小,不易维护,可移植性很差;

C:效率比较低,硬件可操控性比较差,目标代码体积大,容易维护,可移植性很好。

汇编语言运行效率高的原因:

1. 汇编语言实质上是机器语言的助记符。 CPU只能运行它所支持的指令集,而这些指令集当中的每条指令都是一些二进制数的序列,也就是“0”和“1”的有序组合;“0”和“1”的组合不便于程序员的记忆因此有了“MOV A 0x40”等这样的助记符。所以汇编语言编译成CPU可执行的机器语言其实只要做一个翻译的动作就好了。而C语言编写完程序后,需要通过编译器将C语言编译成与相应CPU指令集对应的机器语言。汇编语言与机器语言是一一对应的。但是C语言呢?当然没这么好事了。C语言的语法是固定的,C语言编写的程序要编译成CPU能读懂的机器语言指令没办法一一对应,因此需要有编译规则了,所以运行效率低一些。也可以说,C语言,是面向程序员的语言,而汇编语言是直接面向CPU的语言。

2. 汇编是直接面对CPU的语言,只要是在指令集支持的范围内,汇编语言可以直接而灵活地管理包括特殊功能寄存器、通用寄存器、存储单元的每一个字节,甚至是每一个bit。C语言对内存的使用及管理功能也是很强大的,但毕竟还是受制于语法。举个最简单的例子,C语言当中没有对应三字节或是五字节的变量类型,要么int型,要么long型,所以每次申请必须是固定的字节数,势必造成内存使用上的浪费。而大部份汇编语言根本没有这样的语法,在伪指令的帮助下(其实也只是提高可读性),汇编语言程序可以使用任意字节数的变量,当然处理起来比C语言麻烦得多,最终还是一个字节一个字节地拼接处理,而用C语言写程序就轻松了,不用管这些,最终编译器会搞定嘛。而轻松的代价就是造成了浪费。而内存使用效率不高同时也会影响到整个程序的整体效率。

C语言与汇编的不同适用场合

1:若只有较简单的逻辑操作、逻辑算法、简单运算,使用汇编会得到较为精准的代码,但用c也同样可以做到。

2:若掺有复杂运算、浮点运算、非线性方程等,汇编难度很大,而C语言作为一种高级语言,有简洁紧凑,使用灵活的语法机制,编写复杂程序容易得多。

3:每一款处理器各自的汇编语法大都不一样,若仅使用汇编,可扩充性、可移植性都很差,用c就会好的多。

4:对硬件进行初始化的操作,使用汇编语言。

以下为关联文档:

C语言课程设计:回文数的形成#include<stdio.h> int main(void) { int m[16],n,i,t,count=0; long unsigned a,k; printf("No. number it's square(palindrome)\n"); for(n=1;n<256;n++) /*穷举n的取值范...

c语言中求1000以内的回文数的程序#include<stdio.h> int main() { int i,n,m,count=0; printf("所有的回文数字如下:\n"); for(i=1;i<=1000;i++) { n=i; m=0; while(n) { m=m*10+n%10; n/=10; } if(m==i) { print...

语言活动叽叽叫的蛋中班急需教案幼儿园中班语言教案:最奇妙的蛋 活动目标: 欣赏离奇的童话故事情节,拓展想象空间,对蛋的种类有探索的欲望。 活动准备: 该童话的录音磁带一盒、母鸡、鸡蛋、国王等桌面教具一套、...

Python Ruby Go语言哪个更值得学习你这问的,你的是不是哪个语言更有发展前景是不? 一,Python 简单易懂,入门快,偏向处理数据分析,图形化,脚本 现今流行的爬虫,数据分析,django开发 二,ruby, 简单易懂,入门快,偏向前端网站...

为什么我不会舍弃Python投奔Go语言在Go语言中,规定的方式是,函数返回错误信息。这没什么。如果一个文件并不存在,op.Open函数会返回一个错误信息。这没什么。如果你向你一个中断了的网络连接里写数据,net.Conn里...

go语言 python ruby这三个怎么选择这选择显然是因人而异的。。至于怎么选,要看你是初学者,还是老手?。。对性能有要求,还是没要求? 如果是完全没有基础,我建议哪个都不选,如果非要选一个,那就选PYTHON。。如果你是初...

Python Ruby Go学哪门语言好为什么不建议使用Go,还没有成熟(虽然它是Google发布的,但Google现在推的是Python并不是Go哦)。 Python和Ruby都是不错的语言,他们都是跨平台的,且是解释性程序语言。 Ruby还不是很出名,他...

比Python优秀的语言有那些? go语言比Ruby高级吗你的问题就是能挑起战争的问题。没有那种语言更优秀,大部分你听说过的语言都是Turning Complete,就是能完成你想要的所有功能。没有更好的只有跟适合的。 人工智能行业最流行...

C语言操作心得体会1.编程模型 所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的. 第一种编程方式叫做"面向过程的模型",按这...

推荐阅读
图文推荐