汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语合中,用助记符(Memoni)代替 *** 作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。
因为汇编语言是直接对硬件进行 *** 作,所以能控制硬件,比如
MOV
A,#17H
就是直接对硬件的寄存器A进行 *** 作,所以能控制硬件。
1、汇编程序
把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向机器的语言,由汇编执行指令和汇编伪指令组成。
采用汇编语言编写程序虽不如高级程序设计语言简便、直观,但是汇编出的目标程序占用内存较少、运行效率较高,且能直接引用计算机的各种设备资源。它通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。
2、解释程序
解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。
3、编译程序
编译程序也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。
它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
扩展资料:
工作过程
1、汇编程序
输入汇编语言源程序。检查语法的正确性,如果正确,则将源程序翻译成等价的二进制或浮动二进制的机器语言程序,并根据用户的需要输出源程序和目标程序的对照清单;如果语法有错,则输出错误信息,指明错误的部位、类型和编号。最后,对已汇编出的目标程序进行善后处理。
2、解释程序
由总控程序完成初始化工作。依次从源程序中取出一条语句进行语法检查,如有错,输出错误信息;如果通过了语法检查,则根据语句翻泽成相应的指令并执行它。检查源程序是否已经全部解释执行完毕,如果未完成则继续解释并执行下一条语句,直到全部语句都处理完毕。
3、编译程序
先进行词法分析与语法分析,然后生成中间代码,接着对程序进行多种等价变换来代码优化,最后生成目标代码。
参考资料来源:百度百科—汇编程序
参考资料来源:百度百科—解释程序
参考资料来源:百度百科—编译程序
呵呵,这是MCS-51单片机的汇编语言,很多人都不懂的。
程序实现了(50H)-(60H)->(40H)的BCD码减法运算;
并且对源数据的地址指针进行了修正。
BCD码的运算之后,应(使用DA A指令)进行十进制调整,将运算结果修正为BCD码;
只是MCS-51单片机的DA A指令只能放在加法之后,它对减法不起作用。
为此,BCD码的减法必须变换成加法,才能用DA A指令进行十进制调整。
借用手表倒拨15分,和正拨45分,效果相同的方法,可将:
(50H)-(60H)
等效变换为:
(50H)+〔100 -(60H)〕
式中的100,又等效写成9AH,不信,你对它DA A试试,马上就是100H,这就是100的BCD码,你说它能写成别的数吗。
1计算U=(X+(YZ-100))/W
其中:X,Y,Z,W均为十六位有符号数。
程序如下:
DATA
SEGMENT
X
DW
10
;16位变量
Y
DW
20
Z
DW
30
W
DW
40
U
DW
,
DATA
ENDS
CODE
SEGMENT
ASSUME
CS:CODE,DS:DATA
START:
MOV
AX,DATA
MOV
DS,AX
MOV
AX,Y
IMUL
Z
;计算YZ,内容放在DX,AX中
MOV
CX,AX
MOV
BX,DX
SUB
CX,100
;计算YZ-100
SBB
BX,
0
MOV
AX,X
CWD
;将X符号扩展,形成DX:AX中的双字
ADD
AX,CX
;计算X+(YZ-100),内容放在DX,AX中
ADC
DX,BX
IDIV
W
;计算(X+(YZ-100))/W
MOV
U,AX
MOV
U+2,DX
MOV
AH,4CH
INT
21H
CODE
ENDS
END
START
1:总的来说就是执行程序的各种方法成为psp。
2:PSP是256个字节,当程度生成了可执行文件以后,在执行的时候,先将程序调入内存,这个时候DS中存入程序在内存中的段地址,比如说程序占用多大空间等等,这就是PSP。
3:一般PSP占256个字节,然后才是真正的程序地址,将CS指向这里,为什么一般CS要比DS大10H,就是因为这个原因。
4:DS存放的是程序段地址,真正要执行的地址是DS再加上256个字节,真正的地址是化简一下,真正的地址又可以写成化成十六制。
5:段前缀是 *** 作系统在执行程序时为程序所建立的一个信息块, 里面包括了传递给待运行程序的命令行参数, 程序运行结束时返回DOS所需的地址等有用的信息。
6:COM格式比较特殊,数据段,堆栈段集中在一个段里,连PSP也集中在这个段里, EXE文件在运行时DS/ES的初值设为PSP的段地址,可以直接用偏移0-100H访问PSP的内容。
程序都是用语言写成的,汇编程序就是一种程序;汇编程序语言就是用来写汇编程序的一种语言,写汇编程序的语言有很多种,不同的单片机的汇编程序语言就不同,但是他们都可以用来写汇编程序。明白了吧
以上就是关于汇编语言是用什么语言编写出来的全部的内容,包括:汇编语言是用什么语言编写出来的、请问汇编程序, 解释程序, 编译程序分别指、汇编程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)