汇编语言
- 格式:doc
- 大小:65.50 KB
- 文档页数:8
汇编语言是一种什么程序设计语言汇编语言,也称为汇编程序设计语言,是一种低级的程序设计语言,用于编写计算机程序。
它与机器语言一一对应,使用助记符(mnemonics)表示计算机的指令和操作码(opcode),并且能够直接控制计算机硬件。
汇编语言是一种面向机器的语言,与高级语言相比,更加接近计算机底层的指令集和硬件结构。
使用汇编语言编程可以对计算机进行细粒度的控制,使程序在执行效率和内存管理方面具有更高的优势。
与高级语言相比,汇编语言具有以下特点:1. 直接操作硬件:汇编语言充分利用了计算机的底层硬件资源,可以直接访问寄存器、内存地址和输入输出设备等,对硬件资源有较好的掌控能力。
2. 高效性:由于汇编语言可以直接操作硬件,在性能要求较高的场景下,能够比高级语言更加高效地利用计算机的资源。
3. 灵活性:汇编语言具有更高的灵活性,可以编写特定的指令序列来实现特定的功能,适用于一些对实时性要求较高、底层接口较复杂的应用场景。
然而,汇编语言也存在一些局限性和不足之处:1. 可读性差:汇编语言以助记符和操作码为基础,相较于高级语言,可读性较差,需要开发者具备深入的底层计算机知识。
2. 开发效率低:由于汇编语言编写的代码需要详细地指明操作码和寄存器等硬件细节,编写复杂程序会消耗更多的时间和精力。
3. 可移植性差:汇编语言对于不同的计算机和处理器架构存在差异,不同的平台需要编写不同的汇编语言代码,因此可移植性较差。
总结而言,汇编语言是一种底层的程序设计语言,具有直接操作硬件、高效性和灵活性等特点。
但由于可读性差、开发效率低和可移植性差等限制,现在在软件开发领域中使用较为有限,更多地被用于编写底层驱动程序、操作系统和嵌入式系统等领域。
汇编语言汇编语言实质上是机器语言的符号表示,即用助记符(指令功能的英文缩写)代替了机器语言指令的二进制代码。
用汇编语言按着规定的语法规则编写的程序称为汇编语言源程序(*.asm)。
汇编语言源程序中的汇编指令与指令的机器码(目标代码)是一一对应的。
汇编语言2高级语言是面向过程的语言,它不依赖于特定的机器,独立于机器,高级语言编写的程序由一系列编程语句和相应的语法规则构成,编程方法更适合于人们的思维习惯,易于理解和阅读,程序本身具有可移植性,通用性强高级语言的缺点是编译程序和解释程序复杂,占用内存空间大,与汇编语言程序相比,经编译后产生的目标程序长,执行速度慢高级语言3汇编语言上机处理过程4汇编语言汇编语言的程序格式伪指令程序设计基本方法5汇编语言的程序格式汇编语言程序的结构汇编语言语句类型及格式汇编语言的数据与表达式6源程序的一般格式STACK SEGMENT┇STACK ENDSDATA SEGMENT┇DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:…┇CODE ENDSEND START7例题一个两字相加的程序。
DATA SEGMENT ;定义数据段DATA1 DW 1234H ;定义被加数DATA2 DW 5678H ;定义加数DATA ENDS ;数据段结束ESEG SEGMENT ;定义附加段SUM DW 2 DUP(?);定义存放结果区ESEG ENDS ;附加段结束CODE SEGMENT ;定义代码段;下面的语句说明程序中定义的各段分别用哪个段寄存器寻址ASSUME CS:CODE, DS:DATA,ES:ESEGSTART:MOV AX,DSEG ;START为程序开始执行的启动标号MOV DS,AX ;初始化DSMOV AX,ESEGMOV ES,AX ;初始化ESLEA SI,SUM ;存放结果的偏移地址送SIMOV AX,DATA1 ;取被加数ADD AX,DATA2 ;两数相加MOV ES:[SI],AX ;和送附加段的SUM单元中HLTCODE ENDS ;代码段结束END START ;源程序结束8源程序的结构特点汇编语言程序通常由若干段组成,段由伪指令SEGMENT与ENDS定义,各段顺序任意,段的数目按需要确定,原则上不受限制。
汇编语言例子汇编语言什么是汇编语言汇编语言(Assembly Language)是一种低级机器语言的抽象表示,它使用特定的助记符来代表机器指令,而不是直接书写二进制代码。
通过汇编语言,程序员可以更容易地理解、编写和调试与硬件相关的程序。
汇编语言的基本特点•与机器语言一一对应:汇编语言的指令和机器指令之间存在一一对应的关系,每个汇编指令对应一个特定的机器指令。
•与硬件密切相关:汇编语言直接操作底层硬件,程序员需要了解计算机的底层架构和寄存器的使用。
•可读性较高:相比于机器码,汇编语言使用助记符和符号,更易于阅读和理解。
汇编语言的应用领域•嵌入式系统开发:由于汇编语言可以直接操作底层硬件,因此在嵌入式系统开发中经常使用汇编语言编写关键部分的代码。
•驱动程序开发:由于驱动程序需要和硬件进行直接的交互,所以在某些特定的情况下,使用汇编语言可以提高驱动程序的性能。
•反汇编和逆向工程:通过反汇编工具,可以将目标文件或可执行文件转换为汇编语言代码,这对于进行逆向工程和软件破解非常有用。
汇编语言的常见指令和示例•mov指令:用于将数据从一个地方移动到另一个地方,常用于寄存器之间或内存和寄存器之间的数据传输。
例如:mov eax, ebx表示将ebx的值移动到eax寄存器中。
•add指令:用于执行加法操作,常用于寄存器之间或内存和寄存器之间的数据相加。
例如:add eax, ebx 表示将eax寄存器中的值与ebx寄存器中的值相加,并将结果存储回eax寄存器。
•jmp指令:用于无条件跳转到指定的地址,用于实现程序的控制流程。
例如:jmp 0x100 表示无条件跳转到地址0x100处执行。
•cmp指令:用于比较两个操作数的大小关系,并根据比较结果设置标志位(如ZF、SF等)来影响后续的条件跳转指令。
例如:cmp eax, ebx 表示比较eax和ebx的值。
•inc和dec指令:分别用于将操作数的值增加1或减去1。
汇编语言术语
汇编语言(Assembly Language)是一种低级程序设计语言,
它使用与特定计算机体系结构密切相关的符号指令来编写程序。
以下是一些汇编语言的术语:
1. 指令(Instruction):汇编程序的基本执行单位,用于执行
特定的操作,如加法、乘法等。
2. 操作码(Opcode):指令中用来表示操作类型的字段,例
如ADD表示加法。
3. 寄存器(Register):用于存储临时数据和操作结果的内存
单元,汇编语言通常具有特定数量和名称的寄存器。
4. 内存(Memory):计算机中用于存储数据和程序的主要组件,汇编语言中的指令通常使用内存地址来操作内存中的数据。
5. 立即数(Immediate Value):指令中直接给出的数值,用于指定操作数或操作。
6. 标志位(Flag):特定位用于记录计算机状态的标志,例如
进位标志、零标志等。
7. 标签(Label):用于标识程序中某个位置的符号。
8. 跳转指令(Jump Instruction):用于改变程序执行流程的指令,根据条件或无条件跳转到指定的地址。
9. 子程序(Subroutine):一段独立的代码,可在程序中被多次调用执行。
10. 指令集架构(Instruction Set Architecture,ISA):一组支持特定计算机体系结构的指令集合,包括该体系结构所支持的操作和寄存器。
汇编语言的类型汇编语言是一种低级语言,它是由机器指令和汇编指令组成的。
汇编语言是一种直接操作计算机硬件的语言,它可以直接控制计算机的各种硬件资源,如CPU、内存、I/O等。
汇编语言的类型主要有以下几种:1. x86汇编语言x86汇编语言是一种基于Intel x86架构的汇编语言,它是目前最为流行的汇编语言之一。
x86汇编语言可以直接操作CPU的寄存器、内存和I/O端口等硬件资源,它可以实现高效的程序设计和优化。
x86汇编语言的语法比较复杂,需要掌握大量的指令和寄存器,但是它可以实现非常高效的程序设计和优化。
2. ARM汇编语言ARM汇编语言是一种基于ARM架构的汇编语言,它是嵌入式系统和移动设备上最为流行的汇编语言之一。
ARM汇编语言可以直接操作CPU的寄存器、内存和I/O端口等硬件资源,它可以实现高效的程序设计和优化。
ARM汇编语言的语法比较简单,但是需要掌握大量的指令和寄存器。
3. MIPS汇编语言MIPS汇编语言是一种基于MIPS架构的汇编语言,它是嵌入式系统和网络设备上常用的汇编语言之一。
MIPS汇编语言可以直接操作CPU的寄存器、内存和I/O端口等硬件资源,它可以实现高效的程序设计和优化。
MIPS汇编语言的语法比较简单,但是需要掌握大量的指令和寄存器。
4. AVR汇编语言AVR汇编语言是一种基于AVR架构的汇编语言,它是嵌入式系统和单片机上常用的汇编语言之一。
AVR汇编语言可以直接操作CPU 的寄存器、内存和I/O端口等硬件资源,它可以实现高效的程序设计和优化。
AVR汇编语言的语法比较简单,但是需要掌握大量的指令和寄存器。
5. PowerPC汇编语言PowerPC汇编语言是一种基于PowerPC架构的汇编语言,它是IBM和苹果电脑上常用的汇编语言之一。
PowerPC汇编语言可以直接操作CPU的寄存器、内存和I/O端口等硬件资源,它可以实现高效的程序设计和优化。
PowerPC汇编语言的语法比较复杂,需要掌握大量的指令和寄存器,但是它可以实现非常高效的程序设计和优化。
汇编语言的类型汇编语言是一种底层的编程语言,它与计算机硬件密切相关,常用于控制硬件的操作。
汇编语言的类型也有多种,下面将分别介绍。
1. x86汇编语言x86汇编语言是一种广泛使用的汇编语言,主要用于Intel和AMD 处理器。
它是一种基于寄存器的汇编语言,通过寄存器来访问内存和其他设备。
x86汇编语言非常灵活,可以用来编写各种类型的应用程序,包括操作系统、驱动程序、安全软件等。
2. ARM汇编语言ARM汇编语言是一种使用ARM处理器的汇编语言。
ARM处理器是一种低功耗的处理器,广泛应用于移动设备和嵌入式系统。
ARM 汇编语言是基于寄存器的汇编语言,也可以通过其他方式来访问内存和其他设备。
ARM汇编语言通常用于编写嵌入式系统的驱动程序和操作系统。
3. MIPS汇编语言MIPS汇编语言是一种使用MIPS处理器的汇编语言。
MIPS处理器是一种高性能的处理器,常用于路由器、交换机和数字信号处理器等。
MIPS汇编语言是基于寄存器的汇编语言,也可以通过其他方式来访问内存和其他设备。
MIPS汇编语言通常用于编写嵌入式系统的驱动程序和操作系统。
4. AVR汇编语言AVR汇编语言是一种使用AVR微控制器的汇编语言。
AVR微控制器是一种低功耗的微控制器,广泛应用于嵌入式系统、电子设备和工业控制等领域。
AVR汇编语言主要基于寄存器,也可以通过其他方式来访问内存和其他设备。
AVR汇编语言通常用于编写嵌入式系统的驱动程序和操作系统。
5. SPARC汇编语言SPARC汇编语言是一种使用SPARC处理器的汇编语言。
SPARC处理器是一种高性能的处理器,常用于服务器和超级计算机等。
SPARC汇编语言主要基于寄存器,也可以通过其他方式来访问内存和其他设备。
SPARC汇编语言通常用于编写操作系统和高性能计算程序等。
总结汇编语言的类型有很多种,不同的汇编语言适用于不同的处理器和应用场景。
汇编语言虽然比高级语言难以学习和使用,但它可以直接控制硬件,因此在某些特定的应用领域中有着不可替代的作用。
汇编语言的名词解释汇编语言是一种低级编程语言,用于编写计算机程序。
它是一种符号化的机器语言表示形式,通过汇编程序翻译成机器指令,以便能够被计算机执行。
在汇编语言中,使用各种名词来描述不同的概念和操作。
1. 汇编语言 (Assembly language)汇编语言是一种使用助记符(Mnemonics)和符号(Symbol)来代替二进制代码的编程语言。
它直接对应于计算机的指令集体系结构,可以通过助记符和符号来描述计算机的操作、寄存器、内存地址等信息。
2. 指令 (Instruction)指令是汇编语言中最基本的单位,用于指示计算机执行某种操作。
指令通常以助记符的形式表示,例如MOV、ADD、JMP等。
一个指令包含操作码(Opcode)和操作数(Operand),操作码表示需要执行的操作,操作数则提供了操作所需的数据或地址。
3. 寄存器 (Register)寄存器是用于存储和操作数据的高速内存单元。
汇编语言使用寄存器来进行计算、传输数据和控制程序流程等操作。
通常,寄存器具有特定的名称和功能,例如AX、BX、CX等通用寄存器,以及SP、BP、SI、DI等特殊用途寄存器。
4. 内存地址 (Memory Address)内存地址指示了计算机内存中存储数据的位置。
在汇编语言中,使用内存地址来读取和存储数据。
内存地址可以通过直接给出地址值或使用标号(Label)来表示。
5. 标志位 (Flag)标志位是用于记录计算机运算过程中的条件结果的特殊寄存器。
在汇编语言中,标志位可用于控制程序的跳转、判断条件和处理中断等操作。
6. 宏指令 (Macro)宏指令是一种能够扩展和简化程序的代码片段。
它可以在汇编语言中定义和调用,类似于高级编程语言中的函数或宏定义。
宏指令能够减少代码重复和提高程序的可维护性。
7. 伪指令 (Pseudo-Instruction)伪指令是汇编语言中的一种特殊指令,用于给汇编程序提供附加的信息和指导。
精选10个汇编语言程序案例集
1. 汇编语言编写的计算器程序,这个程序可以接受用户输入的两个数字,然后执行加减乘除等运算,并将结果输出到屏幕上。
2. 文件复制程序,这个程序可以使用汇编语言编写,实现将一个文件的内容复制到另一个文件中的功能。
3. 简单的操作系统内核,使用汇编语言编写一个简单的操作系统内核,可以包括基本的文件管理和进程调度功能。
4. 汇编语言写的游戏,例如经典的贪吃蛇游戏或者俄罗斯方块游戏,这些游戏可以使用汇编语言编写。
5. 串口通信程序,使用汇编语言编写一个可以通过串口进行通信的程序,可以实现数据的发送和接收。
6. 硬件驱动程序,编写一个简单的汇编语言程序,可以控制硬件设备,例如控制LED灯的亮灭。
7. 汇编语言编写的加密解密算法,实现一个简单的加密解密算
法,例如凯撒密码或者简单的异或运算。
8. 简单的图形界面程序,使用汇编语言编写一个简单的图形界面程序,可以实现基本的窗口和按钮等功能。
9. 汇编语言编写的网络通信程序,实现一个简单的网络通信程序,可以进行基本的数据传输和接收。
10. 汇编语言编写的嵌入式系统程序,例如可以编写一个控制LED灯的嵌入式系统程序,可以通过按键控制LED的亮灭。
汇编语言复习题一、简答题1、存储器地址为什么要分段?物理地址是如何形成的?2、IBM PC机的寻址方式(与数据有关的寻址方式)有几种?各举一例说明。
3、80x86微机的存储器中存放信息如下图所示。
试读出30022H与30024H字节单元的内容与30021H和30022H字单元的内容。
4、现有(DS)=2000H,(BX)=0100H,(SI)=0002H, (20100)= 12H, (20101)=34H, (20102)= 56H, (20103)=78H, (21200)=2AH, (21201)= 4CH, (21202)=B7H, (21203) = 65H,试说明下列各条指令执行完后AX的内容。
1)MOV AX,1200H2)MOV AX,BX3)MOV AX,[1200H]4)MOV AX,[BX]5)MOV AX,1100[BX]5、完成下列各式补码数的运算,并根据结果设置标志位SF,CF,ZF,OF,指出运算结果是否有效1)01001001b+10011101b2)01000001b-10101011b6、有符号定义语句如下:BUFF DB 1,2,3,’123’EBUFF DB 0L EQU EBUFF-BUFF问L的值为多少?为什么?答案:1、IBM PC系列机的字长为16位,能够访问的最大存储空间64KB,而在IBM PC 内存为1MB的情况下,访问这1MB的存储空间需要20位。
为了解决字长为16位的机器访问1MB的存储空间,将1MB空间每16B分为一段,共64K段,以16位段地址:16位偏移地址的形式组成,物理地址通过如下方式计算:物理地址=段地址×10h + 偏移地址2、IBM PC机的寻址方式有7种:1)立即寻址:MOV AX, 1234H;2)寄存器寻址:MOV AX, BX;3)直接寻址:MOV AX, [1234H];4)寄存器间接寻址:MOV AX, [BX];5)寄存器相对寻址:MOV AX, 20H[BX];6)基址变址寻址:MOV AX, [BX][SI];7)相对基址变址寻址:MOV AX, 100H[BX][SI];3、解:(30022H)= 12H(30024H) = 56H(30021H) = 12CDH(30022H) = 3412H4、解:1)MOV AX,1200H解:(AX)=1200H2)MOV AX,BX解:(AX)= 0100H3)MOV AX,[1200H]解:物理地址=(DS)×10H+1200H(AX) = 4C2AH4)MOV AX,[BX]解:物理地址=(DS)×10H+0100H=20100H(AX)=3412H5)MOV AX,1100[BX]解:物理地址=(DS)×10H+0100H+1100H=21200H(AX)=4C2AH5、(1)01001001b+10011101b解:01001001+10011101————————11100110 由此可得:SF=1 CF=0 ZF=0 OF = 0 计算结果有效(2)01000001b-10101011b解:01000001-10101011————————=>01000001+01010101————————10010110由此可得:SF=1 CF=1 ZF=0 OF=1减法计算中,被减数、减数符号相反,结果符号与减数相同,OF=1计算结果无效6、有符号定义语句如下:BUFF DB 1,2,3,’123’EBUFF DB 0L EQU EBUFF-BUFF问L的值为多少?为什么?解:根据数据段的定义,BUFF长度定义为6个字节,分别存放1,2,3,‘1’,‘2’,‘3’,而后紧接着为EBUFF的地址,故L值为6二、程序题1、 MOV BL,64HMOV CL,03HXOR AX,AXAGAIN:ADD AL,BLADC AH,0DEC CLJNZ AGAIN问:(1)该程序段完成的功能是:(2)AX=________。
2、已知数据段中定义DAT1 DB 12H,34H,56H,78HMOV CX,0MOV AX,WORD PTR DAT1MOV CL,DAT1+3当程序段执行完后AX=________,CX=________。
3、 DA1 DB 83H,72H,61H,94H,5AH┇MOV CX,WORD PTR DA1AND CX,0FHMOV AL,DA1+3SHL AL,CL上述指令序列执行后,AL=_______,CL=_______。
4、某程序欲用单个字符显示的2号功能调用去显示STRING中的字符串‘COMPUTER’(不显示字符‘$’!).试在空白处填上适当的一条指令。
STRING DB‘COMPUTER’,‘$’MOV BX,0FFSET STRINGLOP:MOV DL,[BX]MOV AH,02HINT 21H________________________________________JNE LOP答案:1、AX=012CH,将AX内容乘3送BX中2、AX=3412H,CX=0078H3、AL=0A0H,CL=03H4、INC BXCMP [BX],24H三、选择题1.检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是()A.JNC LOP1 B.JA LOP1C.JC LOP1 D.JGE LOP12.在下列串操作指令中,同时使用源串和目的串地址指针的指令是()A.STOSW B.LODSW C.SCASW D.CMPSW3.设AL=0AH,下列指令执行后能使AL=05H的是()A.NOT AL B.AND AL,0FHC.XOR AL,0FH D.OR AL,0FH4.DA1 DW‘AB’,‘CD’,‘EF’,‘GH’()┇MOV AX,DA1+3指令执行后AX中的内容是A.‘EF’ B.‘CD’ C.‘BC’ D.‘FC’5.使用DOS系统功能调用时,使用的软中断指令是()A.INT 21 B.INT 10H C.INT 16H D.INT 21H6.CPU要访问的某一存储单元的实际地址称()A.段地址 B.偏移地址 C.物理地址 D.逻辑地址7.某存储单元的物理地址是12345H,可以作为它的段地址有()A.2345H B.12345H C.12340H D.1234H8.执行后使BX=0的同时也使CF=0,OF=0的指令是()A.XOR BX,BX B.OR BX,BXC.AND BX,BX D.CMP BX,BX9.AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是()A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位B.指令OR DX,1000H执行后,将DX最高位置1,其余各位置0C.指令AND AX,OFH执行后,分离出AL低四位D.NOT AX,执行后,将AX清010.在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是()A.DAA校正指令的功能已自动加在AH中B.进位值在AF中,校正后根据AF内容再加在AH中C.进位值在CF中,校正后根据CF内容再加在AH中D.进位值在AL最高位上,校正后根据AL最高位内容再加在AH中答案:1.C 2.D 3.C 4.D 5.B6.C 7.D 8.A 9.C 10.C四、名词解释题1、机器语言2、汇编语言3、堆栈4、物理地址5、汇编程序6、SP:7、IP:答案:1、机器语言:能被计算直接识别的恶语言;2、汇编语言:用指令的助记符、符号地址、标号等符号书写程序的语言;3、堆栈:以后进先出(或先进后出)方式工作的存储空间;4、物理地址:唯一代表存储空间中每个字节单元的地址;5、汇编程序:把汇编语言程序翻译成机器语言的系统程序。
6、SP:保存当前栈顶地址的寄存器;7、IP:指示下一条要执行指令的地址的寄存器五、编程题1、试编制一程序段,用串操作指令实现以DA_BY为首址的20H个字节单元中存放相同字符‘Y ’(设DA_BY 存储区已有ES 指向)。
2、试编制一源程序,统计DA1字单元中含0的个数,如统计的个数为 奇数,则将进位位置1,否则进位位清0。
DATA SEGMENTDA1 DW XXXXDATA ENDS3、已知在N 到N+i 的存储区内有一ASCII 码字符串(共i+1个),试编写一个汇编语言程序,将此字符串传送到NI 到NI+i 单元中,并使字符串的顺序与原顺序相反。
(只写出关键代码段即可)1、编写程序,求解sum= ∑=1001i ai =a1+a2+…+a100,要求写出完整程序。
2、试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
只写关键代码段即可。
3、试编写一程序,比较两个字符串STRING1与STRING2所含有的字符是否完全相同,若相同则显示“MATCH ”,如不同则显示“NO MATCH ”,字符串内容自定义,要求写出完整的程序。
答案:1、 LEA DI ,DA_BYMOV CX ,32MOV AL ,‘Y ’CLDREP STOSB 。
1、 CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,DA1MOV CX,16XOR BL,BLAGAIN: MOV AL,[SI]HL AL,1JC NEXTINC BLNEXT:INC SILOOP AGAINTEST BL,01HJNE L1CLCJMP DONEL1: STCDONE: MOV AH,4CHINT 21HCODE ENDSEND START3、解:LEA SI,NLEA DI,NIADD DI,IMOV CX, IADD CX,1MOVE:CLDLODSBSTDSTOSBLOOP MOVE4、解:DATA SEGMENTARR DW a1, a2, a3, a4, a5, a6, …, a100 SUM DW ?DATA ENDSCODE SEGMENTASSUME DS: DATA, CS: CODESTART:MOV AX, DATAMOV DS, AXLEA BX, ARRMOV CX, 100MOV AX, 0AGAIN:ADD AX, [BX]ADD BX, 2LOOP AGAINMOV AX, 4C00HINT 21HCODE ENDSEND START5、解:BEGIN:MOV AH, 01HINT 21HCMP AL,’a’JB FINCMP AL,’z’JA FINSUB AL, 20HMOV DL, ALMOV AH, 02HINT 21HJMP BEGINFIN:RET6、解:DATA SEGMENTSTRING1 DB ‘HERE YOU ARE’STRING2 DB ‘HERE YOU AER’YES DB ‘MATCH’, 0DH, 0AH, ’$’NO DB ‘NO MATCH’, 0DH, 0AH, ‘$’DATA ENDSCODE SEGEMTNASSUME CS:CODE, DS: DTATSTART:MOV AX, DATAMOV DS, AXBEGIN:LEA AL, STRING1LEA DL, STRING2MOX CX, STRING2 – STRING1REP CMPSBJNE DISPNOMOV AH, 09HLEA DX, YESINT 21HJMP EXITDISPNO:MOV AH, 09HLEA DX, NOINT 21HEXIT:MOV AX, 4C00HINT 21HCODE ENDSEND START。