汇编语言与c语言之间有哪些关系

关于汇编需要那也基础,不知道具体汇编语言的用途,汇编语言和c语言之间有哪些关联了

0

6个回答

汇编语言是比c更低级的一种语言,能直接操作硬件,c代码在编译的时候先编译成汇编代码

1
xswd169
瑞木皓轩 回复caozhy: 还是这样的啦,我一直以为C会变成汇编的
3 年多之前 回复
caozhy
贵阳挖掘机马善福,自备车辆专业挖游泳池 早期的C编译器会编译为汇编,现代的C编译器则直接可以生成机器代码
3 年多之前 回复

汇编语言在PC上的编程很少用了,甚至在嵌入式系统上也很少用了,学习汇编有如下几个用途:
(1)在没有源代码的情况下反向分析和调试程序,比如软件破解,编写游戏外挂
(2)深度代码优化,提高程序的性能
(3)为51等低级的单片机和简易计算机编写程序
(4)理解80x86计算机体系结构
(5)理解C语言编译原理,代码生成和优化

0
WinsenJiansbomber
Jimbo 理解80x86计算机体系结构这点好像说得片面了,汇编对所有平台来讲都适用,不管是x86/51/ARM/ALPHA...只是不同平台指令集有变化
3 年多之前 回复

- 它们都是让人与机器交流的语言
- C语言更接近自然语言,代码比较容易阅读
- 汇编更接近机器,掌握它可以从更深层次去理解机器
- 它们经过编译程序处理后得到的都是二进制指令数据,对机器来说无区别。

0

以前上本科时先学习的C,后来学的汇编,现在还在继续学C.

0

汇编是比C更接近硬件的语言,汇编具体用处挺多的,一般和硬件打交道的都要用到汇编,比如驱动开发,还有再只做一些游戏WG的时候,尤其是网游,很多时候是汇编功底的PK

0

我觉的可以引用赵老师的话回答一下你,哈

 VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!
指针即地址。“地址又是啥?”“只能从汇编语言和计算机组成原理的角度去解释了。”

提醒:
“学习用汇编语言写程序”
和
“VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习C和汇编的对应关系。”
不是一回事!

不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。


-1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
汇编语言与c语言的对应关系
天书夜读-从汇编语言到Windows内核编程 天书夜读-从汇编语言到Windows内核编程
C语言与汇编语言之间的函数调用
教材:嵌入式系统及应用,罗蕾、李允、陈丽蓉等,电子工业出版社 ARM 程序设计 C与汇编之间的函数调用 ATPCS简介 堆栈与寄存器在函数调用中的作用 ATPCS关于堆栈和寄存器的使用规则 C程序调用汇编函数实例 汇编程序调用C函数实例 CC语言和汇编语言的混合程序设计 内联汇编 嵌入式汇编 内联汇编与嵌入式汇编的差异ARM 程序设计C与汇编之间的函数调用ATPCS简介 ARM-Thumb 过程调用
C51语言与汇编语言的关系
C51语言与汇编语言的关系   http://wenku.baidu.com/link?url=VkGorJagOh6hGDCB0yzO6CaSSeiMuDOxfW8_ecb8OGfwKcI4CenrIAWug7qjMFoEw3GiXh0vqOkz4edfWUz9xSuZKkfE_ZwEaORNo9XHDwS                            
就是 汇编语言和C语言 和操作系统的关系
我的问题是 我知道汇编语言是低级语言很接近机器的那种rnC语言是高级语言是比较接近人们所用的, 但是我想知道就是在计算机没装操作系统之前rn那么它是怎么运做的呢 是不是用了机器语言编制的程序做最低层的东西啊 汇编语言好象是要转换成机器代码的 rn那机器代码是什么 而又在什么环境下我们可以直接的用机器代码来指挥它们的运做rnLINUX下还有各种各样的外壳程序 如果没这些外壳 那要用什么操作来指挥呢rn还有就是 SHELL脚本程序 好象没多少形式话的东西 我指的是想C语言那样的头文件什么的rn是不是说就只是靠#!这个符号告诉内核所需要的东西呢 内核中是不是有专门处理脚本的程序啊 rn rnrn谢谢 就这些了 问题杂了点和多了点 希望大虾们不吝赐教rnrn如果有关于更好理解这些问题的建议 将不胜感激
C语言有哪些分隔符?
汇编语言有哪些种类?
汇编语言除了有“ibm pc 汇编”以外,还有哪些种类?
C语言与ELF机器语言之间的关系
C语言对机器模型的抽象层次,恰到好处。 C语言使得开发者,刚好从最底层的费力低效的汇编编程中解脱出来,而又没有进一步往上层做抽象。 这样一来既大大提高了开发效率,又不失对程序行为的精确控制能力,还使程序获得了良好的可移植性。可谓一举三得。 同时,基本C库的理念,也是只做确定正确的事。他所提供的,大体都是最小粒度的几乎不会有变数的基础例程。 不过,本文是要谈一谈C源码与ELF之间的一些联
关于C语言编译器和操作系统之间的关系
我在我自己的电脑上下载了一个编译器,然后写了一个C程序,用编译器编译并且我的程序能正常运行。我的问题就是,我下载的编译器把我的程序编译成机器目标代码,它怎么知道编译出适合我电脑的机器代码呢?rn是不是编译器在编译的时候先问下我的电脑支持什么样的目标代码?如果每次编译之前都要获取我的电脑支持什么样的目标代码,那么编译器本身就要考虑很多适配很多类型的电脑硬件咯?
c语言建立数值和字符串之间的关系
做的东西是这样,输入一个字符串,与数据库中取出的n个字符串计算相似度,存到一个数组中,然后对这个数组排序,最后输出与目标串最相似的串,怎样建立相似度和对应字符串的对应关系??
蜕变关系有哪些?
蜕变测试有哪些?写在前面的话文献介绍文献说明蜕变关系知识库数值计算蜕变关系算法蜕变关系几何学蜕变关系机器学习蜕变关系优化算法蜕变关系微积分蜕变关系 写在前面的话 2月28日,从今天开始,研究 蜕变测试 ,然后发了好几篇论文给我。啃书、啃书、啃书。慢慢的我了解了蜕变测试的原理、蜕变关系、原始测试用例的产生(特殊值、随机数、迭代蜕变)。蜕变测试从...
汇编与C之间的关系
1. 函数调用 注意函数调用和返回过程中的这些规则: 1. 函数参数压栈传递,并且是从右向左依次压栈。 2.  ebp总是指向当前栈帧的栈底 ,而esp指向栈顶,在函数执行过程中esp随着压栈和出栈操作随时变化,而ebp是不动的,函数的参数和局部变量都是通过ebp的值加上一个偏移量来访问   2. Main函数、启动列程和退出状态   为什么汇编程序的入口是_start,而C程序的
线程的基本状态有哪些?它们之间有何关系?
       此图足以说明
C语言和汇编语言的关系
在写驱动程序或者优化程序的时候,我门可能会使用到汇编语言,为了理解汇编语言,我们先看看下面这个简单的例子: #this is in a file first.s .global main main: movl $20, %eax movl $10, $ebx ret
C/C++语言跟汇编语言有什么关系
Hi, My Friends,rn我是半路出家学编程的,用的是VB6.0写电话机的自动测试软件.我的同事建议我学学C/C++,但他强调说学C/C++一定要学习汇编,不然没有什么用,请问:C/C++语言跟汇编语言有什么关系?你认为我的朋友说的对吗?rnThank you.rnrnBest regards,rnJerry WanrnDec.8,2007
c语言 汇编语言 和操作系统有什么关系?
c语言要先编译成汇编语言,汇编语言再编译成机器的可执行代码,rn汇编语言是和硬件相关的,那为什么在装windows时不用考虑硬件,然后就可以再windows下编写和执行c语言程序了?
哪里有c语言转汇编语言的软件
哪里有c语言转汇编语言的软件,给小弟一个.E-mail:muhuairu2000@sina.com
汇编语言有哪些实际用处?
请大家说说汇编语言有哪些实际用处?
《c语言与汇编语言》资料下载
c语言与汇编语言的综合,c语言和汇编语言的结合,更方便大家使用
C语言位运算和汇编语言
C语言中有位运算的功能,能够控制二进制位,既然这样,为什么还要用汇编呢。C的运算不能代替汇编吗?如果不能请详细说明理由,如果能,那请说明为什么现在还有程序用汇编写而不用C位运算写?
C语言改为汇编语言
某一应用系统使用了一片DAC0832芯片,其端口地址为0FFFEHH,如图2下所示,试用C语言编一程序段,使其VOUT输出产生连续的倒锯齿波,且波形在0V~5V之间rnrn答案:rn按片选线确定FFFEH为DAC0832的端口地址。使运行输出端输出一个倒锯齿波电压信号的C51程序如下:rn# include < absacc.h >rn# include < reg51.h >rn# define DA0832 XBYTE [0xfffe ]rn# define uchar unsigned char rn# define uint unsigned int rnvoid stair (void )rn uchar i ;rn while ( 1 ) rn for ( i=255 ; i>=0 ; i=i-- )/* 形成倒锯齿波输出值,最大值为255 */rn rnDA0832 = i ; /* D/A转换输出 */rn rnrn rnrnrn麻烦高用把答案中的C语言改汇编语言rn麻烦高用把答案中的C语言改汇编语言rn麻烦高用把答案中的C语言改汇编语言rn麻烦高用把答案中的C语言改汇编语言rn麻烦高用把答案中的C语言改汇编语言rnrnrn
C语言与汇编语言的混合编程
C语言与汇编语言的混合编程 以及具体的实现方法
汇编语言和C语言
这2门语言对比着学 应该注意什么呢
C语言与汇编语言混合编程
C语言与汇编语言混合编程
汇编语言与C语言的理解
汇编语言的基础知识重点内容 0、学习汇编语言的意义: 基本上所有的处理器的终端,在启动代码的时候都是要使用到汇编语言的 汇编语言的效率可以很高1、汇编语言框架.section .data <初始化的数据> .section .bss <未初始化的数据> .section .text //代码段 .global __start __start:
汇编语言和C语言位运算
C语言中有位运算的功能,能够控制二进制位,既然这样,为什么还要用汇编呢。C的运算不能代替汇编吗?如果不能请详细说明理由,如果能,那请说明为什么现在还有程序用汇编写而不用C位运算写?
汇编语言与C语言的接口技术
汇编语言与C语言的接口技术
从语言与二进制之间的关系
两个整数m与n中的二进制表达式中,有多少个位不同? #include int main() {     int m=0;   int n=0;   int count = 0;  int ret = 0;  scanf("%d%d",&m,&n);  ret = m^n;  while(ret)   {   count++;   ret =ret&(ret-1);
系统语言之间是什么关系?
经常看到如rnrn936,2052, gb2312, zh-cnrnrn都代表是中文,那么,哪些函数能够得到这些值?它们之间用什么函数能得到对应转换?rnrn初步理解936是代码页,可代码页有什么用?rn2052好像是用GetSystemDefaultUILanguage()取得的LANGID,这个好像用的多一些rngb2312是编码方式,好像还有gbk之类,其它语言里还有哪些编码方式?rnzh-cn又是什么东西?rnrnrn
【C语言】【unix c】同名局部变量之间关系
【C语言】【unix c】同名局部变量之间关系
C语言常用的GUI有哪些
C语言常用的GUI比较好的都有哪些,QT是不是只能用于C++而C就不能用?QT和GTK相比较,你觉的哪个要更好些?
C语言能打开文件类型有哪些?
C语言能打开文件类型有哪些?rn比如可以打开'.txt'文件,能否打开如'.dbf'类型的表格文件?如果能,怎么管理(比如读写数据问题)?rn请指教
请问C语言有哪些计时函数?
听说可以精确到10ms级,还有更精确的吗?具体用法去哪找啊?rn谢谢!
1、C语言的应用领域有哪些.pdf
1、C语言的应用领域有哪些
C语言的编译器常见的有哪些?
1、 visual c++6.0 (常见的就是学校机房安装) ; 2、 visual studio (很好用,很多人选择安装) ; 3、 TCC非常方便:大小只有几M,但是编译时麻烦; 4、 Code::Blocks(win7、8都可以用); 5、 gcc:可以和Notepad++搭配,安装需要考虑环境配置问题; 6、C-Free 等等 ...
C语言与数据结构的关系
C语言与数据结构的关系?为什么师兄师姐极力推荐看这个课本
C++与C语言有哪些区别????
C++与C语言的主要区别
C语言优先级关系
1   [], () ,. ,-> 2   -(负号), (type)(强制类型) , ++,  --,   &, !,~ ,*(指针) , sizeof 3   *, / ,% 4   + ,- 5   >>, 6   > ,>=, 7   ==, !=   8   &   9   ^   10  |   11  && 12  || 13  ?: 14   = ,
C语言 关系表达式
[案例]说明关系表达式的值关系 main() { int result=0; int num1=3,num2=4,num3=5; result=num1&amp;gt;num2; printf(&quot;num1&amp;gt;num2 is equal:%d\n&quot;,result); result=(num1&amp;gt;num2)!=num3; printf(&quot;(num1&amp;gt...
c语言:&&和||的关系
&&和||的关系:#include int main(){int i = 0,a=1,b=2,c=3,d=4;//&&每个表达式都要执行,||第一个表达式为真,后面的就不执行了/*i= a++&&++b&&d++;*/i = a++||++b||d++;/*printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);*///2 3 3 5printf("a=%d\nb=%
请问vc的文档和视结构之间有哪些关系呢?
我总搞不清楚。请指点!谢谢