×

汇编语言

汇编语言有哪些?汇编语言有什么用

admin admin 发表于2022-09-07 06:28:42 浏览91 评论0

抢沙发发表评论

本文目录

汇编语言有哪些


一、通用数据传送指令

  1. MOV 传送字或字节

  2. MOVSX 先符号扩展,再传送

  3. MOVZX 先零扩展,再传送

  4. PUSH 把字压入堆栈

  5. POP 把字弹出堆栈

  6. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈

  7. POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈

  8. PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈

  9. POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈

  10. BSWAP 交换32位寄存器里字节的顺序

  11. XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数)

  12. CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX )

  13. XADD 先交换再累加.( 结果在第一个操作数里 )

  14. XLAT 字节查表转换

  15. ── BX 指向一张 256 字节的表的起点, AL 为表的索引值 (0-255,即0-FFH); 返回 AL 为查表结果. ( [BX+AL]-》AL )

二、输入输出端口传送指令

  1. IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )

  2. OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )

  3. 输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时, 其范围是 0-65535

三、目的地址传送指令

  1. LEA 装入有效地址. 例: LEA DX,string ;把偏移地址存到DX.

  2. LDS 传送目标指针,把指针内容装入DS. 例: LDS SI,string ;把段地址:偏移地址存到DS:SI

  3. LES 传送目标指针,把指针内容装入ES. 例: LES DI,string ;把段地址:偏移地址存到ES:DI

  4. LFS 传送目标指针,把指针内容装入FS. 例: LFS DI,string ;把段地址:偏移地址存到FS:DI

  5. LGS 传送目标指针,把指针内容装入GS. 例: LGS DI,string ;把段地址:偏移地址存到GS:DI

  6. LSS 传送目标指针,把指针内容装入SS. 例: LSS DI,string ;把段地址:偏移地址存到SS:DI

四、标志传送指令

  1. LAHF 标志寄存器传送,把标志装入AH

  2. SAHF 标志寄存器传送,把AH内容装入标志寄存器

  3. PUSHF 标志入栈

  4. POPF 标志出栈

  5. PUSHD 32位标志入栈

  6. POPD 32位标志出栈

一、基本简介

1.汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。-汇编语言

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

二、主要特点

1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。

2.保持了机器语言的优点,具有直接和简捷的特点。

3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。

4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。

5.经常与高级语言配合使用,应用十分广泛。

(1)简捷性 

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

(2)执行过程

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

(3)独特性

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

四、优点

1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。

2.保持了机器语言的优点,具有直接和简捷的特点。

3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。

4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。

5.经常与高级语言配合使用,应用十分广泛。

五、缺点

同时还应该认识到,汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,因此不可避免地存在一些缺点:

1.编写的代码非常难懂,不好维护;

2.很容易产生bug,难于调试;

3.只能针对特定的体系结构和处理器进行优化;

4.开发效率很低,时间长且单调。


汇编语言有什么用


1.汇编语言 汇编语言是最接近于机器语言的编程语言。如果说机器语言是计算机操作的本质那么汇编语言就是最最接近本质的语言。汇编语言操作直接面向硬件。所以我们在使用汇编语言的时候,我们能够感知计算机的运行过程和原理,从而能够对计算机硬件和应用程序之间的联系和交互形成一个清晰的认识。这也是最能够锻炼编程者编程思维逻辑的,只有这样,学习者才能形成一个软、硬兼备的编程知识体系,这是任何高级语言都无法给予的,相对于繁复的高级语言,汇编语言指令集合更简约,指令操作更直接,从汇编开始学习更符合循序渐进的学习原理。所以,对于计算机技术初学者或者自学者,汇编语言重要性无可替代
2.汇编语言之于高级语言,不否认在应用层面高级语言占据了软件开发市场的绝大部分。也正是这种现象误导了学习者甚者是教育者,所以目前高校计算机专业的现状是,专业课程中C语言、C++、Java等高级语言一应俱全而毕业的学生却连简单的程序都不能编写。为什么?听不懂、学不会。这就是缺乏基础造成的。汇编语言才是计算机技术的基础,而不是常说的C语言。之所以说汇编重要,其一个重要的原因就是,汇编语言能够让你更好的理解高级语言,尤其是高级语言中的C语言。汇编语言对于内存的操作都是基于内存地址的,而C语言中最令人头疼的指针概念,说白了就是内存的地址。指针的学习和应用中最头疼的就是在指针这个抽象的概念和实际的内存单元之间建立思维映射,而这些恰恰是我们在汇编语言学习中频繁做的一件平常事。另外,对于C语言中的数据类型、形参实参、函数调用、全局变量、局部变量等概念及操作,我们都可以用汇编语言中的一些操作相关联把这些抽象的概念和过程通过汇编语言形成一个具体的映像,深度剖析这样我们才能真正的学会、学好C语言。
有了汇编和C的基础,那些所谓的面向对象的语言学习起来就更为顺畅了,奉劝那些好高骛远的学习者,踏踏实实的从汇编开始吧。古云:磨刀不误砍柴工啊!
3.汇编语言之于应用 很多学习者放弃对于汇编语言的学习,是因为高级语言的开发更容易找到工作。这个理由也是我见到过的最现实的。但是,这里面明显存在着认识误区。首先,我们的学习是一个系统过程,我们的知识结构不是一个单一课程所能够建立的。所以,学习汇编的目的并不是非要用汇编去挣饭钱。因为汇编语言对于一个编程人员所应该具备的基本素质的培养和形成得意义是非常重大的,这在前文中已经分析了,不再赘述;其次,汇编本身也是很重要的应用技术。由于学习者,尤其是在校的学生,平时接触的最多的是纯软件的东西。所以,觉得五花八门的软件才是计算机技术应用的舞台。那么这些人最终会成为那位博主提到的那些工作后才意识到汇编的作用的“师兄”。汇编的操作由于跟硬件紧密相关。所以,很多硬件设施的嵌入式编程使用的都是使用的汇编语言,因为汇编语言更直接、更有效率。我们现在的数码产品很多,而这些数码产品赖以生存的芯片、主板等。都包含了嵌入式程序,而这些程序中。汇编语言的使用是相当重要的。
-汇编语言

什么是汇编语言


汇编语言, 即第二代计算机语言,用一些容易理解和记忆的字母,单词来代替一个特定的指令,比如:用“ADD”代表数字逻辑上的加减,“ MOV”代表数据传递等等,通过这种方法,人们很容易去阅读已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便。但计算机的硬件不认识字母符号,这时候就需要一个专门的程序把这些字符变成计算机能够识别的二进制数。因为汇编语言只是将机器语言做了简单编译,所以并没有根本上解决机器语言的特定性,所以汇编语言和机器自身的编程环境息息相关,推广和移植很难,但是还是保持了机器语言优秀的执行效率,因为他的可阅读性和简便性,汇编语言到现在依然是常用的编程语言之一。 汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
发展历程
编辑 语音
编程语言
自从1946年世界上第一台电子计算机问世,人类和机器的交流方式和语言就成为了软件工程师和计算机从业者的主要研究方向,更有效更简便的编程语言成为了软件工程师的新宠儿,伴随着计算机的飞速发展,计算机的硬件升级速度也越来越快,对编程语言的要求也日益严格。在过去的几十年,编程语言有了长足的发展,至今已经有四代语言问世。大量的编程语言为了满足不同领域的编程要求和软件功能,经历 了被修改,被取代,被发展等过程,最终发展成了现在编程语言的多样化。尽管人们多次试图寻找一个能够适应所有编程环境的通用语言,但 是却没有一次成功。程序设计语言正在与现代科技日益飞跃,人类的智慧在日益彰显。
机器语言
计算机的硬件作为一种电路元件,它的输出和输入只能是有电或者没电,也就是所说的高电平和低电平,所以计算机传递的数据是由“0” 和“1”组成的二进制数,所以说二进制的语言是计算机语言的本质。计算机发明之初,人们为了去控制计算机完成自己的任务或者项目,只能去编写“0”、“ 1”这样的二进制数字串去控制电脑,其实就是控制计算机硬件的高低电平或通路开路,这种语言就是机器语言。直观上看,机器语言十分晦涩难懂,其中的含义往往要通过查表或者手册才能理解, 使用的时候非常痛苦,尤其当你需要修改已经完成的程序时,这种看起来无序的机器语言会让你无从下手,也很难找到程序的错误。而且,不同计算机的运行环境不同,指令方式操作方式也不尽相同,所以当你在这种机器语言就有了特定性,只能在特定的计算机上执行,而一旦换了机器就需要重新编程,这极大的降低了程序的使用和推广效率。但由于机器语言具有特定性,完美适配特定型号的计算机,故而运行效率远远高过其他语言。机器语言,也就是第一代编程语言。
汇编语言
不难看出机器语言作为一种编程语言, 灵活性较差可阅读性也很差,为了减轻机器语言带给软件工程师的不适应,人们对机器语言进行了升级和改进:用一些容易理解和记忆的字母,单词来代替一个特定的指令。通过这种方法,人们很容易去阅读 已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便,这种语言就是我们所说的汇编语言, 即第二代计算机语言。
比起机器语言,汇编语言具有更高的机器相关性,更加便于记忆和书写,但又同时保留了机器语言高速度和高效率的特点。汇编语言仍是面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序不易被移植,故不像其他大多数的高级计算机语言一样被广泛应用。所以在高级语言高度发展的今天,它通常被用在底层,通常是程序优化或硬件操作的场合。
高级语言
在编程语言经历了机器语言,汇编语言等更新之后,人们发现了限制程序推广的关键因素——程序的可移植性。需要设计一个能够不依赖于计算机硬件,能够在不同机器上运行的程序。这样可以免去很多编程的重复过程,提高效率,同时这种语言又要接近于数学语言或人的自然语言。在计算机还很稀缺的50年代,诞生了第一个高级编程语言。当时计算机的造价不菲,但是每天的计算量又有限,如何有效的利用计算机有限的计算能力成为了当时人们面对的问题。同时,因为资源的稀缺, 计算机的运行效率也成为了那个年代工程师追寻的目标。为了更高效的使用计算机,人们设计出了高级编程语言,来满足人们对于高效简洁的编程语言的追求。
-汇编语言

什么是汇编和汇编语言


汇编语言是一种低级计算机编程语言,说“低级“并不是指语言的功能和复杂程度,而是它出现在计算机发展史的早期,但现在仍广泛应用于计算机开发领域,应为它是绝大多数语言的基础.再者,它是一种面向机器的语言,即它运行与操作都与计算机硬件密切相关.
C语言是一种高级语言,它有利于人为操作,近于面向对象与面向机器之间(VB就是一种面向对象的编程语言),它的功能更加强大,可移植性高,是当今最广泛的语言之一.
DOS汇编是说汇编语言的操作界面是DOST系统,这也说明是汇编是更低级一些,但执行速度是其它语言无法相比的,就是可移植性较差.
-汇编语言

汇编语言是什么


汇编语言(assembly
language)是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言”作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如masm,
tasm等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。
在汇编语言中,用助记符(memoni)代替操作码,用地址符号(symbol)或标号(label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。
使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言编译器把汇编程序翻译成机器语言的过程称为汇编。
汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。
汇编语言的特点:
1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。
2.保持了机器语言的优点,具有直接和简捷的特点。
3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、cpu、i/o端口等。
4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。
5.经常与高级语言配合使用,应用十分广泛。
汇编语言的应用:
1.70%以上的系统软件是用汇编语言编写的。
2.某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。
3.某些高级绘图程序、视频游戏程序是用汇编语言编写的。
汇编语言是我们理解整个计算机系统的最佳起点和最有效途径
人们经常认为汇编语言的应用范围很小,而忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。
所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。
所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。
机器的逻辑功能,软件系统功能构筑其上,硬件系统功能运行于下。
汇编语言直接描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。
学习汇编语言,向上可以理解软件,向下能够感知硬件,是我们理解整个计算机系统的最佳起点和最有效途径。
-汇编语言

汇编语言是一种( )


汇编语言是一种面向机器的程序设计语言。

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。

在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。-汇编语言

扩展资料

1、汇编语言和机器语言的关系:机器语言是一种数字语言,只有计算机的处理器(CPU)才能理解它。汇编语言同机器语言是一对一的关系:一条汇编指令对应一条机器语言指令。

2、汇编语言和高级语言C++、java等的关系:C++、java等高级语言与汇编语言和机器语言之间是一对多的关系。一条简单的C++语句会被扩展成多条汇编语言或机器语言指令。

3、汇编语言应用场景:需要高度优化的程序、一些驱动程序、一些嵌入式程序等。

参考资料来源:百度百科-汇编语言


汇编语言是一种什么语言


汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。

在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。

特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

不难看出机器语言作为一种编程语言, 灵活性较差可阅读性也很差,为了减轻机器语言带给软件工程师的不适应,人们对机器语言进行了升级和改进:用一些容易理解和记忆的字母,单词来代替一个特定的指令。

通过这种方法,人们很容易去阅读 已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便,这种语言就是我们所说的汇编语言, 即第二代计算机语言。


汇编语言编写电子秒表代码


秒表可以用定时器来实现,举例如下:

KEYVAL EQU 30H

DAT EQU 33H

SCANLED EQU 39H

CLK EQU 77H

SEC EQU 78H

SEC1 EQU 79H

SEC2 EQU 7AH

DOT BIT 00H

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP EXTINT0

ORG 000BH

LJMP T0ISR ;50ms定时

ORG 001BH

LJMP T1ISR ;扫描显示

ORG 0030H

MAIN:

MOV SP,#5FH

MOV TMOD,#11H

MOV TH0,#03CH

MOV TL0,#0B0H

MOV TH1,#0ECH

MOV TL1,#078H

MOV KEYVAL,#2

MOV 33H,#10H

MOV 34H,#10H

MOV 35H,#10H

MOV 36H,#10H

MOV CLK,#0

SETB IT0

SETB EX0

CLR TR0

CLR ET0

MOV R2,#0

SETB TR1

SETB ET1

SETB EA

LOOP:

MOV A,KEYVAL

LOOP1:

JNZ LOOP2 ;启动

SETB TR0

SETB ET0

SJMP LOOP

LOOP2:

DEC A

JNZ LOOP3 ;暂停

CLR TR0

CLR ET0

SJMP LOOP

LOOP3:

DEC A

JNZ LOOP ;清零

MOV 36H,#0

MOV 35H,#0

MOV 34H,#0

MOV 33H,#0

SJMP LOOP

EXTINT0:

PUSH ACC

INC KEYVAL

MOV A,KEYVAL

CJNE A,#3,EXT00

EXT00:

JC EXT01

MOV KEYVAL,#0

EXT01:

POP ACC

RETI

T0ISR:

PUSH ACC

CLR TR0

MOV TH0,#3CH

MOV TL0,#0B0H

SETB TR0

INC CLK

MOV A,CLK

CJNE A,#2,T0ISRE

MOV CLK,#0

INC 36H

MOV A,36H

CJNE A,#10,T0ISRE

MOV 36H,#0

INC 35H

MOV A,35H

CJNE A,#10,T0ISRE

MOV 35H,#0

INC 34H

MOV A,34H

CJNE A,#6,T0ISRE

MOV 34H,#0

INC 33H

MOV A,33H

CJNE A,#10,T0ISRE

MOV 33H,#0

T0ISRE:

POP ACC

RETI

T1ISR:

PUSH ACC

CLR TR1

MOV TH1,#0ECH

MOV TL1,#78H

SETB TR1

MOV DPTR,#LEDTAB

T100:

MOV R0,#DAT

MOV A,SCANLED

ADD A,R0

MOV R0,A

MOV A,SCANLED

JNZ T101

MOV P2,#01H

SETB DOT

SJMP T1DIS

T101:

DEC A

JNZ T102

MOV P2,#02H

CLR DOT

SJMP T1DIS

T102:

DEC A

JNZ T103

MOV P2,#04H

SETB DOT

SJMP T1DIS

T103:

MOV P2,#08H

CLR DOT

T1DIS:

MOV A,@R0

MOVC A,@A+DPTR

JNB DOT,T1DIS1

ORL A,#01H

T1DIS1:

CPL A

MOV P0,A

INC SCANLED

MOV A,SCANLED

CJNE A,#4,T1END

MOV SCANLED,#0

T1END:

POP ACC

RETI

LEDTAB: DB 0FCH ;“0“ 00H

DB 60H ;“1“ 01H

DB 0DAH ;“2“ 02H

DB 0F2H ;“3“ 03H

DB 66H ;“4“ 04H

DB 0B6H ;“5“ 05H

DB 0BEH ;“6“ 06H

DB 0E0H ;“7“ 07H

DB 0FEH ;“8“ 08H

DB 0F6H ;“9“ 09H

DB 0EEH ;“A“ 0AH

DB 3EH ;“B“ 0BH

DB 9CH ;“C“ 0CH

DB 7AH ;“D“ 0DH

DB 9EH ;“E“ 0EH

DB 8EH ;“F“ 0FH

DB 00H ;“ “ 10H

END


单片机汇编语言流水灯程序延时0.5秒 一共四个灯循环


4只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。
;用最直接的方式实现流水灯
ORG 0000H
START:MOV P1,#01111111B ;最下面的LED点亮
LCALL DELAY ;延时60秒
LCALL DELAY ;延时60秒
MOV P1,#10111111B ;最下面第二个的LED点亮
LCALL DELAY ;延时60秒
LCALL DELAY ;延时60秒
MOV P1,#11011111B ;最下面第三个的LED点亮 (以下省略)
LCALL DELAY
LCALL DELAY ;延时60秒
MOV P1,#11101111B
LCALL DELAY
LCALL DELAY ;延时60秒
MOV P1,#11110111B
LCALL DELAY
LCALL DELAY ;延时60秒
MOV P1,#11111011B
LCALL DELAY ;延时60秒
LCALL DELAY ;延时60秒
LCALL DELAY ;延时60秒
LCALL DELAY ;延时60秒
LCALL DELAY ;完成第一次循环点亮,延时约0.25秒
AJMP START ;反复循环
;延时子程序,12M晶振延时约250毫秒
DELAY: ;大约值:2us*256*256*2=260ms,也可以认为为250ms
PUSH PSW ;现场保护指令(有时可以不加)
MOV R4,#240
L3: MOV R2 ,#00H
L1: MOV R3 ,#00H
L2: DJNZ R3 ,L2 ;最内层循环:(256次)2个周期指令(R3减一,如果比1大,则转向L2)
DJNZ R2 ,L1 ; 中层循环:256次
DJNZ R4 ,L3 ;外层循环:240次
POP PSW
RET
END
-汇编语言

汇编语言编程


汇编语言中EAX 与 EBX 相乘movx,eax;EAX 的值送入 X寄存器register是 CPU 中被命名的存储位置,用于保存操作的中间结果。这个例子的重点不是说明 C++ 与汇编语言哪个更好,而是展示它们的关系。汇编语言可移植吗。一种语言,如果它的源程序能够在各种各样的计算机系统中进行编译和运行,那么这种语言被称为是可移植的portable。例如,一个 C++ 程序,除非需要特别引用某种操作系统的库函数,否则它就几乎可以在任何一台计算机上编译和运行。Java 语言的一大特点就是,其编译好的程序几乎能在所有计算机系统中运行。汇编语言不是可移植的,因为它是为特定处理器系列设计的。目前广泛使用的有多种不同的汇编语言,每一种都基于一个处理器系列。对于一些广为人知的处理器系列,汇编语言指令会直接与该计算机体系结构相匹配,或者在执行时用一种被称为微代码解释器的处理器内置程序来进行转换。为什么要学习汇编语言。
-汇编语言