学习汇编的相关资料。
3个回答
2013-10-24
展开全部
学习汇编语言,要从三个大的方向下手。首先,要了解汇编语言程序设计的环境,这样才能利用处理器的功能,获得更高的执行速度。其次,要学习汇编语言程序设计的基础,这是对于一个汇编语言初学者来说,应掌握的基础知识。最后,就要学习一些高级汇编语言技术,这些是对基础知识的应用和升华。
--------------------------------------------------------------------------------
准备阶段:
先要了解一个汇编语言编程的环境。现今最为常用的处理器平台是IA-32平台,它是为奔腾处理器设计的硬件和指令码的集合。关于寄存器的一些描述我认为是很重要的,比如说8个通用寄存器分别是用于存放什么数据的。还有一个较常用的寄存器是指令指针寄存器。还有一个专门的寄存器保存确定处理器状态的几个标志。
为了创建良好的汇编语言开发环境,必须使用适当的工具。最低限度应该有汇编器、连接器、调试器。若为高级语言程序创建汇编语言例程的话,还应有编译器、反汇编器和简档器。关于应用,它们的命令行可执行程序分别是as、ld、gdb、gcc、objump和gprof。通过这些工具可以在C源程序、汇编源程序、目标文件、可执行文件、库文件、列表文件之间相互转化。
汇编语言程序最通用的格式和模版是在学习编写程序之前首先要记住的。程序应由三个段组成:数据段,内存段和文本段。比较常用的一些代码段有显示和退出,可以单纯的用汇编语言编写,也可以调用C库函数。准备工作以后,就可以正式投入汇编语言的学习了。
--------------------------------------------------------------------------------
汇编基础:
汇编语言最重要的任务之一是处理数据,而且几乎每个程序都必须在内存和寄存器之间传送数据。比较常用的指令有MOV指令,还有XCHG等指令。要正确的表示和处理数据,我们需要了解一些整数数据,浮点数据的基本操作,以及之间的相互转换。一些基本的数学功能有加法,减法,乘法,除法,以及一些移位运算。指令有ADD,ADC,SUB,SBB,DEC,INC,MUL,IMUL,DIV,IDIV,SAL,SHL,SAR,SHR,ROL,ROR,RCL,RCR,还有一些逻辑操作指令AND,NOT,OR,XOR,TEST。接着就是一些高级的数学功能了,这些功能体现在浮点运算上。所有FPU数据操作都是在堆栈性质的寄存器中进行的,所以知道如何加载FPU寄存器堆栈很重要,这样可以更好的提高运算性能。
程序有一定的思路才能体现出作用,这就需要把逻辑编码到应用程序中去,我们应该采用一些指令进行程序逻辑设计。在汇编语言中,有无条件分支,如跳转、调用、中断,以及条件分支条件跳转。比较使用标志位等指令来实现程序的分支,也用了循环指令轻松地重复代码功能,不必复制很多代码。同时,汇编语言也吸收了一些C语言有更多条件语句的长处,模拟高级语言条件分支,比如说if语句、for循环等。既然程序出现了分支,就很有可能会发生重复,或是错过某些指令的情况,所以,要学习一些优化分支的技巧。
经过一段时间的汇编语言学习之后,我们也编写了部分实用程序。我们会发现,有时会在不同的程序中使用曾经编写过的程序,甚至多次使用。这时就可以将它创建为独立的函数,在需要时调用它。操作系统也会提供一些可以访问的核心函数,linux系统就提供了许多系统调用函数,比如说read、write和create等。掌握了对函数的创建和使用后,将会使我们编程过程变的简单,有效。
--------------------------------------------------------------------------------
高级汇编:
我们在学习了汇编语言程序设计的基础知识后,就要把知识与实际应用结合起来了。我们可以把汇编语言直接放到C和C++语言内,也可以在编写C或C++程序时调用汇编语言函数。在应用中,汇编语言程序离不开处理文件的操作,也需要不断地进行优化处理,这些都需要更多的实践。
--------------------------------------------------------------------------------
准备阶段:
先要了解一个汇编语言编程的环境。现今最为常用的处理器平台是IA-32平台,它是为奔腾处理器设计的硬件和指令码的集合。关于寄存器的一些描述我认为是很重要的,比如说8个通用寄存器分别是用于存放什么数据的。还有一个较常用的寄存器是指令指针寄存器。还有一个专门的寄存器保存确定处理器状态的几个标志。
为了创建良好的汇编语言开发环境,必须使用适当的工具。最低限度应该有汇编器、连接器、调试器。若为高级语言程序创建汇编语言例程的话,还应有编译器、反汇编器和简档器。关于应用,它们的命令行可执行程序分别是as、ld、gdb、gcc、objump和gprof。通过这些工具可以在C源程序、汇编源程序、目标文件、可执行文件、库文件、列表文件之间相互转化。
汇编语言程序最通用的格式和模版是在学习编写程序之前首先要记住的。程序应由三个段组成:数据段,内存段和文本段。比较常用的一些代码段有显示和退出,可以单纯的用汇编语言编写,也可以调用C库函数。准备工作以后,就可以正式投入汇编语言的学习了。
--------------------------------------------------------------------------------
汇编基础:
汇编语言最重要的任务之一是处理数据,而且几乎每个程序都必须在内存和寄存器之间传送数据。比较常用的指令有MOV指令,还有XCHG等指令。要正确的表示和处理数据,我们需要了解一些整数数据,浮点数据的基本操作,以及之间的相互转换。一些基本的数学功能有加法,减法,乘法,除法,以及一些移位运算。指令有ADD,ADC,SUB,SBB,DEC,INC,MUL,IMUL,DIV,IDIV,SAL,SHL,SAR,SHR,ROL,ROR,RCL,RCR,还有一些逻辑操作指令AND,NOT,OR,XOR,TEST。接着就是一些高级的数学功能了,这些功能体现在浮点运算上。所有FPU数据操作都是在堆栈性质的寄存器中进行的,所以知道如何加载FPU寄存器堆栈很重要,这样可以更好的提高运算性能。
程序有一定的思路才能体现出作用,这就需要把逻辑编码到应用程序中去,我们应该采用一些指令进行程序逻辑设计。在汇编语言中,有无条件分支,如跳转、调用、中断,以及条件分支条件跳转。比较使用标志位等指令来实现程序的分支,也用了循环指令轻松地重复代码功能,不必复制很多代码。同时,汇编语言也吸收了一些C语言有更多条件语句的长处,模拟高级语言条件分支,比如说if语句、for循环等。既然程序出现了分支,就很有可能会发生重复,或是错过某些指令的情况,所以,要学习一些优化分支的技巧。
经过一段时间的汇编语言学习之后,我们也编写了部分实用程序。我们会发现,有时会在不同的程序中使用曾经编写过的程序,甚至多次使用。这时就可以将它创建为独立的函数,在需要时调用它。操作系统也会提供一些可以访问的核心函数,linux系统就提供了许多系统调用函数,比如说read、write和create等。掌握了对函数的创建和使用后,将会使我们编程过程变的简单,有效。
--------------------------------------------------------------------------------
高级汇编:
我们在学习了汇编语言程序设计的基础知识后,就要把知识与实际应用结合起来了。我们可以把汇编语言直接放到C和C++语言内,也可以在编写C或C++程序时调用汇编语言函数。在应用中,汇编语言程序离不开处理文件的操作,也需要不断地进行优化处理,这些都需要更多的实践。
11111
2024-11-15 广告
2024-11-15 广告
作业指导书是一种专门编写的指导性文件,用于完成某一项或同一类型的工作。它是根据设计图纸、制造厂说明书、相关的验评标准、编写人员现场所积累的施工经验以及成熟实用的施工工艺所编写的。定义和作用作业指导书是质量管理体系文件的组成部分,主要用于阐明...
点击进入详情页
本回答由11111提供
2013-10-24
展开全部
简单说一下:
个人觉得学习汇编就是弄明白一些硬件知识和操作系统知识,在需要时通过别的语言直接操作即可,最起码明白汇编有哪些功能指令、其中1种芯片的各寄存器的数量、基本功能、工作流程、接口设备的操作方法、其中1种操作系统的系统规则,中断的功能及调用方法等等。
想用汇编写软件和开发系统,以我们目前情况恐怕~~~~~
算法方面,你用C写过一些东西有基础,我觉得用C就可以了。
就好像学英语:
学高级语言的像孩子,只会说不会写
学C初级水平的像学生,会说会写
学了汇编就是教授
个人觉得学习汇编就是弄明白一些硬件知识和操作系统知识,在需要时通过别的语言直接操作即可,最起码明白汇编有哪些功能指令、其中1种芯片的各寄存器的数量、基本功能、工作流程、接口设备的操作方法、其中1种操作系统的系统规则,中断的功能及调用方法等等。
想用汇编写软件和开发系统,以我们目前情况恐怕~~~~~
算法方面,你用C写过一些东西有基础,我觉得用C就可以了。
就好像学英语:
学高级语言的像孩子,只会说不会写
学C初级水平的像学生,会说会写
学了汇编就是教授
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-24
展开全部
最好是先买一本书 在下一套语音教程 这样配合着学习 进步比较快
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询