汇编语言是什么意思,主要是哪些语言,这方面权威的书介绍2本!

汇编语言是什么意思,主要是哪些语言,这方面权威的书介绍2本!,第1张

分类: 电脑/网络 >> 程序设计 >> 其他编程语言

解析:

它就是一种语言

汇编语言(Assembly Language)是面向机器的程序设计语言。

在汇编语合中,用助记符(Memoni)代替 *** 作码,用地址符号(Symbol)或标号(Label)代替地址妈。这样用符号代替机器语盲的二进制码,就把机器语音变成了汇编语言。于是汇编语言亦称为符号语言。

使用汇编语言编写的程序,机器个能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言把汇编程序翻译成机器语言的过程称为f汇编。

汇编语言比机器语言易于读写、易于调试和修改,同时也具有机器语言执行速度快,占内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。

■对于不同型号的计算机,有着不同的结构的汇编语言

汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。

汇编语言是面向具体机型的,它离不开具体计算机的指令系统,因此,对于不同型号的计算机,有着不同的结构的汇编语言,而且,对于同一问题所编制的汇编语言程序在不同种类的计算机间是互不相通的。

汇编语言中由于使用了助记符号,用汇编语言编制的程序输入计算机,计算机不能象用机器语言编写的程序一样直接识别和执行,必须通过预先放入计算机的"汇编程序"的加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。用汇编语言等非机器语言书写好的符号程序称为源程序,运行时汇编程序要将源程序翻译成目标程序。目标程序是机器语言程序,它一经被安置在内存的预定位置上,就能被计算机的CPU处理和执行。

汇编语言像机器指令一样,是硬件 *** 作的控制信息,因而仍然是面向机器的语言,使用起来还是比较繁琐费时,通用性也差。但是,汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少,运行速度快,有着高级语言不可替代的用途。

《微机原理及汇编语言教程》

学习编程依然是一个高频话题主要是程序员薪资高,大家都想计入这个行业,但是由于自己没有编程基础,所以发起了这个讨论,学习编程需要什么基础吗我觉得学习编程最重要的是入门,如果你入门的时候有一个好的方法和思路,打下比较扎实的基础,对今后的编程工作是很有益处的。天通苑电脑培训认为即使在学习新的编程语言也无所谓,因为它们有很多相通之处,可以相互借鉴。

1、英语基础

虽然对于初级程序员来说,英语只需要写简单的词汇就可以,但是如果想要走的更远,还是要去学习和掌握。

我极力推荐英语是因为在学习IT技术上,没有专业文档的阅读能力是不可想象的,中文的翻译往往在猴年马月才会出来,而现在的许多出版社干脆就直接把英文印刷上去,学习的方法是强迫自己看原版的教材,开始会看不懂,用多了自然熟练,吃得苦下得狠心绝对是任何行业都需要的品质。

2、计算机体系结构和汇编语言

关于体系结构的书遍地都是,而且也大同小异,倒是汇编有一本非常好的书《80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著),你需要着重学习386后保护模式的程序设计。否则你在学习现代 *** 作系统底层的一些东西的时候会觉得是在看天书。

3、计算机 *** 作系统原理

我们的开发总是在特定的 *** 作系统上进行,如果不是,只有一种可能:你在自己实现一个 *** 作系统,无论如何, *** 作系统原理是必读的。这就象我们为一个芯片制作外围设备时,芯片基本的工作时序是必需了解的。

4、数据结构和算法

这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的。很多人喜欢买C++版的,但我觉得没有必要,C++的语法让算法实现过程变得复杂多了,而且许多老师喜欢用模块这一东西让算法变得更复杂,倒是在学完了C版的书以后再来浏览一下C++的版的书是最好的。

5、软件工程

这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。

1 首先题目就有问题,不可能“接收从键盘输入的字符,以CTR+C 结束”。对于命令提示符来说,按下CTRL+C,就会强行退出这个程序,所以不可能以CTRL+C结束的。应该是按回车结束输入。

2 DATA里有中文标点符号。

3 输入字符后,按下回车,在C语言里运行的时候会自动换行,但是在汇编里不会,所以你要自己换行。

4 用MOV AH, 0AH; INT 21H中断输入后,输入的有效字符数存放在BUF1单元里,所以循环的时候应该把CX设置为BUF1单元里的值,而不是COUNT

5 输入的有效字符从BUF2单元开始存储,所以做大小写转换的时候,应该从BUF2单元开始,而不应该从BUF单元开始

6 61H和7AH都是小写字母,所以跳转指令中不应该有E。同时,有符号、无符号不要混用,所以JBE改为JB,JGE改为JA。

7 输入字符时,是以回车符作为结束;而输出字符时,是以'$'作为结束,所以对输入的字符,你要把最后一个回车符转为‘$'。

修改后的程序如下:

DATA SEGMENT

MESS1 DB 'INPUT: ',13,10,'$' 

NEWLINEDB 13, 10, '$' ;这行是专门用来换行的

MESS2 DB 'OUTPUT:',13,10,'$'

BUF DB 20

BUF1 DB

BUF2 DB 20 DUP()

COUNT EQU $-BUF

DATA ENDS

CODE SEGMENT 

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX 

MOV SI, 0

LEA DX,MESS1

MOV AH,09H

INT 21H

MOV DX,OFFSET BUF

MOV AH,0AH

INT 21H

LEA DX, NEWLINE ;专门用来换行

MOV AH, 9

INT 21H

MOV CL, BUF1

MOV CH, 0 ;BUF1单元中存放的是有效输入字符数

LOOP1:MOV AL,BUF2[SI] ;从BUF2单元开始才是有效字符

CMP AL,61H

JB NEXT ;JBE改为JB

CMP AL,7AH

JA NEXT ;JGE改为JA

SUB AL,20H

MOV BUF2[SI],AL ;从BUF2单元开始才是有效字符

NEXT: INC SI

LOOP LOOP1

MOV BUF2[SI], '$' ;循环结束,把当前的字符修改为'$'

LEA DX,MESS2

MOV AH,09H

INT 21H

MOV DX,OFFSET BUF2 ;从BUF2单元开始才是有效字符

MOV AH,09H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

END START

汇编与c的区别就是汇编对硬件的依赖性非常强,c相对比较灵活。

个人建议多学c了解汇编,了解的要求就是能读懂,不一定会写。

闲话少说,扯入正题。

首先,汇编对芯片依赖性很强,所以,你首先要下载这个芯片的详细资料 了解每一个寄存器的作用。

其次,记住常用的汇编助记符,add del mov乱七八糟的,51汇编中寻址有n多种要着重理解。

再次,将c中简单的程序用汇编写出来,实验。(这个过程比用c吃力的多)

其实,以上每个过程都非常吃力,汇编不是随随便便就玩的转的,其实做到了前两者就很好了,那样就能看懂汇编了。

第一步做好了:你大脑中会有一个寄存器表,它没一个字节每一个位是做什么的,你都明码的

第二部做好了:你就不用翻看书本看看这个命令到底是做啥子的

第三步,不好意思 我水平有限第三步没做好,不知道要做到什么程度。当你做到第三步的时候,你就知道了呵呵

以上就是关于汇编语言是什么意思,主要是哪些语言,这方面权威的书介绍2本!全部的内容,包括:汇编语言是什么意思,主要是哪些语言,这方面权威的书介绍2本!、学习编程需要什么基础吗、汇编语言顺序程序设计:从键盘输入一个字符串,讲其中的小写字母转换为大写字母,然后原样输出。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9589349.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存