所在位置:主页 > 程序语言 > 谈谈对汇编语言的认识

谈谈对汇编语言的认识

发布时间:2023-10-26 18:26来源:www.sf1369.com作者:宇宇

谈谈对汇编语言的认识

通过两节课的学习,我了解到汇编语言是直接在硬件之上工作的编程语言。首先要了解的是机器语言,机器语言是机器指令的集合,机器指令展开来讲就是一台机器可以正确执行的命令。早期的程序员们很快就发现了使用机器语言带来的麻烦,它比较难于辨别和记忆,给整个产业的发展带来了障碍,于是便产生了汇编语言。

汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。我了解到,用汇编语言编写程序的工作过程是:程序员用汇编语言写出源程序,再用汇编编译器将其编译为机器码,最后由计算机执行。

汇编语言的核心是汇编指令,汇编指令决定了汇编语言的特性。汇编指令是机器指令的助记符,同机器指令一一对应。每一种CPU都有自己的汇编指令集。CPU可以直接使用的信息在存储器中存放。在存储器中指令和数据没有任何区别,都是二进制信息。每个存储单元从0开始顺序编号,一个存储器有128个存储单元,编号从0~127。一个存储单元可以存储8个bit,即8位二进制数。

通过学习我了解到,CPU要想进行数据的读写,必须和外部器件进行下面三类信息的交互:存储单元的地址(地址信息);器件的选择,读或写的命令(控制信息);读或写的数据(数据信息)。每个CPU芯片都有许多管脚,这些管脚与总线相连。也可以说,这些管脚引出总线。一个CPU可以引出3种总线的宽度标志了这个CPU的不同方面的性能:地址总线的宽度决定了CPU的寻址能力;数据总线的宽度决定了CPU与其他器件进行数据传送时的一次数据传送量;控制总线的宽度决定了CPU对系统中其他器件的控制能力。在汇编课程中,我们也从功能的角度详细介绍了3类总线。

最终运行程序的是CPU,我们用汇编语言编程的时候,必须要从CPU的角度考虑问题。对CPU来讲,系统中的所有存储器中的存储单元都处于一个统一的逻辑存储器中,它的容量受CPU寻址能力的限制。这个逻辑存储器就是我们所说的内存地址空间。对于初学者的我来说,这个概念还是比较抽象的,希望通过后续的课程学习,能使一些现在仍然模糊的概念更清晰,更具体化。

浅谈和C++相比,Java有哪些技术的优势

以下为复制的内容:

C++相比,Java有哪些技术的优势呢?

在对Java程序设计有一定了解的基础上,可以从简单性、面向对象、健壮性、可移植性等几个方面来进行讨论。

只有对这些特性进行较为充分的了解之后才能在编程中最大限度地发挥Java的语言优势。

一、简单性

在Java的基本语法中剔除了一些C++中比较晦涩的语法,可以说学Java的语法和C++相比更加容易。

在Java中已经不再使用诸如头文件、指针运算、结构、联合、操作符重载、虚基类等内容。

不过用Java实现同样的效果也是需要手动敲代码的,有时甚至代码量还相当大,这也就是用Java写项目的代码量要比C++大很多的原因。

所以用C++开发比较节省内存,但随着硬件的不断更新,其实人们更重视功能的实用性。

二、面向对象

可能在初次基础Java的时候,教材就会告诉你Java是一门面向对象的编程语言。

那么,什么是面向对象?

对象就是讲数据和数据的操作方法集成到一起,从而形成一个整体的对象。

面向对象设计,从本质来说是一种程序设计技术,更关注对象和对象的接口上,并非过程。

和Java一样,C++同样是面向对象的语言,两者的不同在于多继承,在Java中更多的使用接口概念。

三、健壮性

Java的健壮性可以理解为Java的跨平台编译和运行。

编译好的程序在Windows中可以运行,放在Linux里同样可以运行。

除此之外Java编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。

同时和C++相比,不需要使用指针构造字符串、数组等结构,避免其指针模型消除重写内存和损坏数据的可能性。

四、可移植性

说到Java的可移植性,就需要提到Java虚拟机JVM *.java被编译成字节码文件,从而可以在任何平台运行JVM有自己的一套指令系统,

不同的平台上JVM的指令也不尽相同,但是JVM向上的字节码接口是与平台无关的,JVM接口向下与硬件相关

JVM的角色是中间件,使得Java可以跨平台运行,从而具有可移植性。

五、多线程

所谓线程就是代码执行流,各种任务可以交互执行。多线程就会多个执行流聚合在一起由CPU进行调度。

Java的线程在操作系统的实现模式依系统不同而不同,可能是系统级别的进程或线程,但对于程序员来说并没有影响。

所有实现runnable接口的类都可被启动一个新线程,新线程会执行该实例的run方法,当run方法执行完毕后,线程就结束了。

Java在不同的机器上调用多线程的编码完全相同,将多线程的实现交给了底层的操作系统或线程库来实现。

浅谈和C++相比,Java有哪些技术的优势?除了以上几点以外,Java还具有Web开发的方便之处,以及高性能和解释行,这些都可以在学Java的过程中深入体会。另外你八成应该是上学堂的:有个规律这学校喜欢比搞一些浅谈xxx之类的问题 :   ^_^