篇一 :汇编语言学习心得

汇编学习心得

08网工(一)班 李锐 0804031002

在大三接触汇编语言之前,我们在计算机组成原理课程中就已经有所了解了,但也只是略微明白一些如jmp,mov这样的指令,极度缺乏系统性的学习。 在接触这门课程后,感到汇编语言并不是很容易就可以弄懂的。相比较以前学过的高级语言如C、C++等,电脑等于在迁就人的思维方式,但学汇编,人却必须要去迁就电脑的思维方式,要设身处地地用电脑的角度去思考问题,这就是我们学习汇编语言时遇到的最大的障碍。

另外,在C语言中不到10个语句构成的程序,用汇编语言却要好几十行甚至上百行。这不得不让我们对汇编产生一种恐惧感。事实上,这是完全不必要的。一旦对它的原理掌握后,编写程序就容易多了。另外,学习汇编语言能让我们更加了解计算机内部的组织结构,对我们计算机专业的学生来说,学习汇编也是提升综合能力的关键环节。

汇编的学习不仅仅是学习其语法,而更多的是学习计算机基本的体系结构。其中遇到很多新的概念,名字。如寄存器、中断、寻址方式等。这些概念在刚接触汇编这门课的时候难以理解,但在之后的学习中通过老师的讲解,自己亲手编程的方式也就渐渐清晰明了。

我们在学习之前都需要明确什么是汇编语言。计算机能够直接识别的数据是由二进制数0和1组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。

经过一个学期的学习,我也慢慢摸出了汇编学习的规律。

首先,学习这门语言时如果能联系上以前学过的其他高级语言的知识,则会起到良好的效果。例如C语言程序的运行逻辑结构有顺序(按语句依次执行)、分支结构(IF...THEN...ELSE...),循环结构(FOR...NEXT)三种结构,也通过C语言了解并掌握了什么是子程序,什么是调用。事实上,汇编语言中有关程序结构,子程序等等的知识都是跟C语言十分相似的,只是在编程时用到的语言不同:汇编语言完全面向机器,需要指明数据在寄存器、内存中的流向。 第二,学习汇编语言,首要问题是学习80X86指令系统。如果能将指令系统中的各个助记符、格式等都能完全掌握并灵活运用,大部分工作就已经完成了。指令系统确定了CPU所能完成的功能,是用汇编语言进行程序设计的最基本部分。如果不熟悉汇编指令的功能及其有关规定,那肯定不能灵活使用汇编语言。 指令的种类十分繁杂,但其格式却是统一的。

…… …… 余下全文

篇二 :汇编学习心得体会

《汇编语言程序设计》学习心得和体会 在接触这门课程初始,就感到汇编语言并不是很容易就可以弄懂的。相比较以前学过的程序语言如C、C++等,电脑等于在迁就人的思维方式,但汇编却是接近机器语言的一门语言,我们学习和编写程序时必须要去迁就电脑的思维方式,要设身处地地用电脑的角度去思考问题,这就是我学习汇编语言时感受最深的地方,想起来很简单,写起来相当的不易。

汇编的学习不仅仅是学习其语法,而更多的是学习计算机基本的体系结构。其中遇到很多新的概念,名字。如寄存器、中断、寻址方式等。这些概念在刚接触汇编这门课的时候难以理解,但在之后的学习中通过老师的讲解,自己亲手编程的方式也就渐渐清晰明了。

我们在学习之前都需要明确什么是汇编语言。计算机能够直接识别的数据是由二进制数0和1组成的代码。机器指令就是用二进制代码组成的指令,一条机器指令控制计算机完成一个基本操作。为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。

经过一个学期的学习,我也慢慢摸出了汇编学习的规律。

首先,学习这门语言时如果能联系上以前学过的其他高级语言的知识,最重要的是一些思考问题,实现功能的逻辑的思考,会帮助我们很快的找到编写程序的思路和方向。例如C语言程序的运行逻辑结构有顺序(按语句依次执行)、分支结构(IF...THEN...ELSE...),循环结构(FOR...NEXT)三种结构,也通过C语言了解并掌握了什么是子程序,什么是调用。事实上,汇编语言中有关程序结构,子程序等等的知识都是跟C语言十分相似的,只是在编程时用到的语言不同:汇编语言完全面向机器,需要指明数据在寄存器、内存中的流向。

第二,学习汇编语言,首要问题是学习80X86指令系统。如果能将指令系统中的各个助记符、格式等都能完全掌握并灵活运用,大部分工作就已经完成了。指令系统确定了CPU所能完成的功能,是用汇编语言进行程序设计的最基本部分。如果不熟悉汇编指令的功能及其有关规定,那肯定不能灵活使用汇编语言。

…… …… 余下全文

篇三 :汇编语言实验心得

一.实验内容

1.DEBUG的启动及其基本命令的使用

2.内存操作数与寻址方式

1)利用DEBUG程序中的“E”命令,将两个多字节数“12345678H”和“FEDCBA98H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。

2)分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。

3.顺序程序设计

X、Y、Z、V均为字变量,在X、Y、Z、V字单元中存放是16位带符号数。试编写汇编语言程序完成以下功能:

①计算表达式值(V–(X*Y+Z-720))/X;

②将上述表达式运算结果整数放在SUM1单元,余数放在SUM2单元。

4.分支程序设计

1)设X,Y为字变量,假定不溢出,计算X=|X-Y|。

2)将NUM单元中的一位十六进制数(0~9,A~F),转换为对应的ASCII码值存入ASC单元。

3)已知字节变量X,编程求下列表达式

即:当x>0

当x=0

当x<0

5.循环程序设计

1)定义10个字节型带符号数,求其和。

2)在内存单元DATA中定义一个16位数,统计其16位中1的个数,存入内

存的字单元COUNT。

3)定义10个字型无符号数,编写程序求其最小值。

6.子程序设计

1)设计一个子程序,计算1+2+?+N,其中N为给定的正整数,且N小于100。

2)定义10个字型带符号数,编写子程序求其最大值和统计正数的个数。

3)从键盘接收4位十进制数,将其转换为十六进制数并显示。

二.实验心得

上学期学习计算机组成原理的时候就对汇编有所了解,但通过这学期的学习,使我更加深入了解了其知识体系和计算机组成及内部程序执行的原理。对于各命令的熟练掌握后,自己亲自动手实验更是体会到了各命令的用途及执行的方法。通过各个基本命令可以轻松更改计算机内部寄存器的值和读写内存,磁盘,I/O端口的值,通过更改观察其对计算机的影响变化。

…… …… 余下全文

篇四 :汇编语言学习心得

《汇编语言程序设计》学习总结与心得

班级:09计本(3)班 学号:0 姓名:刘 得分:

本学期学习了汇编语言,汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言,于是汇编语言亦称为符号语言。

在接触汇编语言的时候,对汇编的第一印象就是觉得这种语言非常繁琐和松散,里面有很多细小的知识点,而且有很多规定,必须要根据严格的规则来编写才能够写出正确的程序,譬如一些指令的具体作用,如XLAT指令、CWB指令、LEA指令、OFFSET等的含义和功能,还有大于、小于、等于指令的写法都要记住,不能像高级语言里面用符号“< > =”就能够实现了,正是汇编中的这些规则让我觉得汇编真是特别繁琐,所以在刚刚开始学习汇编的时候经常觉得有些不知所措,特别是对于几种寻址方式,还有各个段的功能,以及各种寄存器的作用都觉得学的很混乱,虽然老师在上课时说的都很详细了,但是在当时好像听懂了,但是很快又弄不清了,还有一些指令的用法会很快就忘记,或者是记混了,但是慢慢接触多了,特别是在做实验的之后,学习得很快,因为要是把学过的知识具体应用到现实中,对于知识的掌握要求就更深一步了,在实验过程中,发现了很多问题,例如一些寻址方式的应用,字符串的定义末尾要加上$符号,在利用AX、BX、CX、DX这几个寄存器的时候注意考虑PUSH进栈对数据进行保护,通过在实验中不断出现错误并改正,对汇编语言的掌握和使用能力都有所提高了。

刚开始对汇编的最大感觉就是觉得用起来很麻烦,不像高级语言那么随意,寄存器就那么几个,用的时候要好好利用,而且还要考虑到计算机内部的工作情况,特别是数据在内存中的存储情况,但是经过学习,发现汇编语言对我们学习好其他语言是非常有用的,原来在C语言中一直不是非常清楚的数据和地址的区别也通过学习汇编而了解得很清楚,通过汇编对CPU里面的工作情况也有了一定的认识,写有些指令的时候要考虑到CPU里面的标志位的改变和利用标志位来实现一些功能,这些在高级语言中是没有的。对于汇编中的指令我很多记不住,由于课件中的程序的注释都是中文的,而课本上的注释都是英文的,刚开始觉得看课件比较好一些,但是后来我发现课本上的英文注释更加容易理解和记忆,和用到的指令是匹配的,因为指令也都是英文缩写方式的,而且都是一些简单的单词,阅读起来并不复杂。

…… …… 余下全文

篇五 :汇编语言学习心得

汇编语言学习体会

前段时间,刚从计算机系统组成与体系结构的稍微学习了汇编语言,只学习了简单的一些指令。通过自学《8086/8088 汇编语言程序设计》,虽然有了一定的了解,但是整体上还是不懂的。还是不能写出一段完整的程序,这次的实验还是对照其它程序套格式过来用的。汇编语言的指令集是很令人头痛的。

不管怎么说,在这本书的学习中,首先主要学习了汇编语言的基本知识,介绍了汇编的背景知识及由来,知道了汇编语言是处在机器语言和高级语言中间的一种低级语言。由于计算机能够直接识别的数据是由二进制数0和1组成的代码。所以用机器语言编写的程序是计算机惟一能够直接识别并执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。在这书的的学习中,最大的收获就是数与编码的学习,完善了以前的学习。

然后介绍了8086计算机的组织构成,汇编语言的学习除了要学习语法外,更重要的是了解计算机基本的体系结构,以及其工作原理。这样才能更好的编写。

接着学了80X86指令系统和寻址方式及后来的汇编语言格式,才真正进入了汇编的指令学习阶段,每一条指令的学习虽然简单但比较多,特别是有些指令的使用场合及错误用法等易犯错、易混淆,例如在编写数据传送指令时,目的操作数和源操作数的类型一定要匹配,CS

1

不能作为目的操作数,offset后只能跟简单地址符号,等等。

指令集学完后就要进行应用,首先就是循环,看了半天老师给的要求也不会,网上搜了下,发现一个用C语言几句话就解决的问题,用汇编语言却好长,并且没有输出,也不知道是否正确。好像可以用dos系统功能调用,但是这方面不懂,所以就从网上下了个软件,可以编译的。

对这些基本的都还没掌握,但是仿照例子写出这次的实验,虽然完成了,但是还有很多不懂的地方,编译方面也看的不清不楚的。在以后的机组实验中,要多多努力才行

…… …… 余下全文

篇六 :汇编语言学习心得

汇编语言学习心得

在接触这门课之前就已对汇编语言有所了解,一方面是在计算机组成原理中有所涉及,虽然那时只知道简单的mov、add、jmp指令,不清楚其具体用法,缺乏系统性的学习;另一方面是在相关书籍中了解到汇编语言写驱动比较好但比较难,当时就觉得汇编是门很牛的语言,很想学习。接触这门课后,感到汇编语言的确不是很容易就可以弄懂的,相比较以前学过的高级语言如C、C++等,电脑等于在迁就人的思维方式,但学汇编,人却必须要去迁就电脑的思维方式,要设身处地地用电脑的角度去思考问题,这就是我们学习汇编语言时遇到的最大的障碍。通过这一学期的学习,对汇编有了初步的掌握,可以说是汇编的入门教程。 首先主要学习了汇编语言的基本知识,介绍了汇编的背景知识及由来,让我知道了汇编语言是处在机器语言和高级语言中间的一种低级语言。由于计算机能够直接识别的数据是由二进制数0和1组成的代码。所以用机器语言编写的程序是计算机惟一能够直接识别并执行的程序,而用其他语言编写的程序必须经过翻译才能变换成机器语言程序,为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用变量代替操作数的存放地址等,这样就形成了汇编语言。 然后介绍了8086计算机组织,汇编的学习不仅仅是学习其语法,而更多的是学习计算机基本的体系结构,学到这还没见到很多的指令和语句,但这是学习汇编前必须要知道和掌握的,只有知道了汇编的实质、如何工作及一些基本概念,才能进行下一步的学习。直到后面终于学了80X86指令系统和寻址方式及后来的汇编语言格式,才真正进入了汇编的指令学习阶段,每一条指令的学习虽然简单但比较多,特别是有些指令的使用场合及错误用法等易犯错、易混淆,例如在编写数据传送指令时,目的操作数和源操作数的类型一定要匹配,CS不能作为目的操作数,offset后只能跟简单地址符号,等等。但总的归纳起来主要掌握三点:

1、要求指令操作数的寻址方式;2、指令对标志位的影响和标志位对指令的影响;

…… …… 余下全文

篇七 :风的汇编语言心得

第一章 基础知识

1. 汇编指令是机器指令的助记符,同机器指令一一对应。

2. 每一种CPU都有自己的汇编指令集。

汇编语言发展至今,由以下三类指令组成: 1汇编指令:机器码的助记符,有对应的机器码; 2伪指令: 没有对应的机器码,由编译器执行,计算机并不执行; 3其他符号:如:+,--,*,/等,由编译器识别,没有对应的机器码。

3. CPU可以直接使用的信息在存储器中存放。

4. 在存储器中指令和数据没有任何区别,都是二进制信息。

5. 存储单元从零开始顺序编号。

6. 一个存储单元可以存储8个bit(用作单位写为“b”),即8位二进制数

7. 1B=8b 1KB=1024b 1MB=1024KB 1GB=1024MB 1TB=1024GB

8. 每一个CPU芯片都有许多管脚,这些管脚和总线相连,也可以说这些管脚引

出总线。一个CPU可以引出总线的宽度标志了这个CPU的不同方面的性能:

V地址总线的宽度决定了CPU的寻址能力; Vv数据总线的宽度决定了CPU与其他器件进行数据传送时的

一次数据传送量;

Vvv控制总线的宽度决定了CPU对系统中其他器件的控制能力;

9. 在每一台PC机中,都有一个主板,主板上有核心器件和一些主要器件,这

些器件通过总线相连。这些器件有:CPU,存储器,外围芯片组,扩展插槽等。扩展插槽上一般插有RAM内存条和各类接口卡。

10. CPU对外部设备都不能直接控制,直接控制这些设备进行工作的是插在扩

展插槽上的接口卡。扩展插槽通过总线和CPU相连,所以接口卡液通过总线同CPU相连。即CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。

11. 随机存储器RAM,可读可写,但是必须带电存储,关机后存储的内容丢失;

只读存储器ROM,只能读取不能写入,关机后其中的内容不丢失。

…… …… 余下全文

篇八 :《汇编语言程序设计》学习总结与心得

其实说实话在学这门课之前自己对汇编语言一点都不了解,只知道它也是一种语言,而且是一门很少用的语言,可能很多人都是这么想的,或许在学这门课之前不少同学也有和我当初一样的思想,大概学学就好,反正以后很少能用到,毕竟现在高级语言这么发达,而且运用起来灵活易懂,像汇编这种低级语言又难又不易学。或许老师是知道我们之前有这种想法,所以第一节课就跟我们讲解了一下了汇编语言在当今这种高速发展的社会的作用和地位,让我们能够正确的认识汇编语言的精华,正确对待这么课。而且还在课堂了百度了汇编语言的招聘信息,或许这才是使我们正确对待汇编的最直接的原因,关系到我们以后的出路,或许我们学好了一门汇编,以后出去找工作的机会不就更广了吗?正是在这种动力的驱使下我才对汇编语言有了一个新的认识,而且决定要把它学好。

在后来的学习中我发现其实汇编不是很难学,其实学汇编就像学其他的高级语言一样,高级语言要求对语言非常了解。在学汇编的过程中,我们最重要的就是要掌握汇编语言中的指令的一些基本用法。当然要能够真正的了解其中的内涵,这样我们在实际的编程中也能够像运用高级语言一样灵活的变通。汇编语言作为一种低级程序设计语言,既然是低级所以应该是最底层的,与我们计算机内部的结构联系应该联系很密切,而且在我们学习中也深刻的了解到了这一点。比如说后来学到的寄存器、中断、还要各种寻址方式以及进栈出栈,好多的就是设计到计算机硬件。前面几章都是对计算机内部结构和一些常用的指令以及寻址方式的寻址方式。到后面学到子程序以及宏的作用才真正发现到其实跟高级语言差别不大。以C语言为例,C语言不也是由一个一个的函数组成的吗?没想到想汇编这样的低级语言也可以这样。在汇编语言的子程序和宏中,我个人更感觉宏的运用更像我们高级语言的子函数,通过定义好的宏,我们在后面直接调用就可以了。尤其是宏带参数的宏跟C语言中带参数的函数真的很像,根据参数的不同调用宏就能得到不同的结果。而汇编中的子程序没有这个传递参数这个功能。在调用子程序的时候要注意各寄存器中的内容。子程序是在程序执行期间由主程序调用的,它只占有它自身大小的一个空间,他不仅是源程序级别 简化,形成的目标代码较短;而宏调用则是在汇编期间展开的,每调用依次进把宏定义体展开一次,它是源程序级的简化。因而它占有的存储空间与调用次数有关,调用次数越多则占有的存储空间越大。如果宏调用次数较多的话,则其空间上的开销也是应该考虑的因素

…… …… 余下全文