汇编语言的基本语法

合集下载

as86汇编语法

as86汇编语法

as86汇编语法as86汇编语法简介汇编语言是一种底层编程语言,用于直接与计算机硬件交互。

在汇编语言中,每个指令都与计算机硬件的机器指令相对应,使开发人员能够更接近计算机的底层运行。

as86汇编语法是一种早期的汇编语言语法,常用于编写操作系统和底层软件。

一、as86汇编语言的基本语法as86汇编语言采用标签和指令的组合来编写程序。

标签是由冒号(:)结尾的标识符,用于标记一个程序段的入口点或特定代码块。

指令是执行具体操作的指令集,如数据传输、算术运算等。

二、数据定义和存储在as86汇编语言中,使用DW(Define Word)定义一个字(16位)变量。

例如,定义一个名为data的字变量,可以使用以下语句:data DW 1234h在这个例子中,data是变量名,DW用于定义字变量,而1234h表示一个16进制的值。

另外,使用DB(Define Byte)可以定义一个字节(8位)变量。

三、寻址方式在as86汇编语言中,有多种寻址方式可供选择,包括直接寻址、寄存器间接寻址和相对寻址。

1. 直接寻址:直接寻址是最简单的寻址方式,通过给出变量的内存地址直接访问其内容。

例如:MOV AX, [data]这条指令将data变量的值加载到AX寄存器中。

2. 寄存器间接寻址:寄存器间接寻址通过给出一个寄存器的值作为地址,来获取变量的内容。

例如:MOV AX, BX这条指令将BX寄存器的值加载到AX寄存器中。

3. 相对寻址:相对寻址是相对于某个基址进行偏移的寻址方式。

例如:MOV CX, [BX+SI]这条指令将BX+SI地址处的内容加载到CX寄存器中。

四、控制结构控制结构允许程序根据条件执行特定的指令块。

在as86汇编语言中,典型的控制结构包括条件跳转和无条件跳转。

1. 条件跳转:条件跳转根据条件是否满足来选择跳转到某个标签所在的位置执行。

例如:CMP AX, BXJZ equal在这个例子中,如果AX和BX的值相等,则跳转到equal标签处执行。

6502汇编语言

6502汇编语言

6502汇编语言【原创实用版】目录1.6502 汇编语言简介2.6502 汇编语言的基本语法3.6502 汇编语言的应用领域4.6502 汇编语言的发展历程正文一、6502 汇编语言简介6502 汇编语言,是一种针对 6502 微处理器的编程语言。

6502 微处理器是一款经典的 8 位处理器,广泛应用于计算机、游戏机、家用电器等领域。

汇编语言作为一种低级编程语言,可以直接操作硬件,具有运行速度快、资源占用低的特点。

二、6502 汇编语言的基本语法6502 汇编语言的基本语法包括以下几个方面:1.寄存器:6502 微处理器具有 8 个通用寄存器,分别为 A、B、C、D、E、F、G、H。

2.常用指令:6502 汇编语言包括数据传送、算术运算、逻辑运算、转移控制等常用指令。

3.标签和地址:6502 汇编语言使用标签和地址来标识程序的执行顺序。

4.程序结构:6502 汇编语言的程序结构包括顺序、分支、循环等结构。

三、6502 汇编语言的应用领域6502 汇编语言主要应用于以下几个领域:1.电子游戏:6502 汇编语言曾广泛应用于 8 位游戏机的游戏程序开发,如任天堂的红白机等。

2.嵌入式系统:6502 微处理器作为经典的 8 位处理器,在嵌入式系统领域有着广泛的应用,如家电控制、工业自动化等。

3.教育教学:学习 6502 汇编语言有助于理解计算机底层原理,提高编程能力。

四、6502 汇编语言的发展历程6502 汇编语言的发展历程可以追溯到 20 世纪 70 年代,随着6502 微处理器的推出,逐渐成为一种流行的编程语言。

进入 80 年代,随着家用电脑和游戏机的普及,6502 汇编语言迎来了它的黄金时期。

MASM汇编语言

MASM汇编语言

MASM汇编语言汇编语言是一种低级语言,常用于编写底层系统软件、驱动程序和性能要求较高的应用程序。

MASM(Microsoft Macro Assembler)是微软推出的一款著名的汇编语言工具。

本文将介绍MASM汇编语言的基本概念、语法结构以及一些常用指令。

一、什么是汇编语言汇编语言是一种与计算机硬件相关的低级语言,其语法与计算机底层的机器语言相对应。

与高级语言相比,汇编语言更接近计算机硬件的运行方式。

通过编写汇编程序,可以直接控制和操纵计算机的底层资源。

二、MASM汇编语言的基本语法MASM汇编语言采用英文和数字的组合来表达指令和操作数。

汇编程序由汇编指令、伪指令、标号和数据定义等组成。

1. 汇编指令汇编指令是汇编程序的核心部分,用于执行特定的计算和操作。

每条汇编指令由一个助记符(mnemonic)和零个或多个操作数组成。

例如,下面是一个简单的MASM汇编程序示例:```MOV AX,1 ; 将1赋值给寄存器AXADD AX,2 ; 将AX寄存器和2相加```2. 伪指令伪指令是用来辅助汇编程序的指令,不被计算机执行。

它们用于定义变量、常量、字符串等。

例如,下面是一个包含伪指令的MASM汇编程序示例:```DATA SEGMENTMSG DB 'Hello, World!',0DATA ENDSCODE SEGMENTSTART:MOV AH,09HMOV DX,OFFSET MSGINT 21HMOV AH,4CHINT 21HCODE ENDSEND START```在上述示例中,`DATA SEGMENT`和`DATA ENDS`之间定义了一个数据段,其中`MSG DB 'Hello, World!',0`定义了一个字符串常量。

`CODE SEGMENT`和`CODE ENDS`之间定义了一个代码段,其中包含程序的执行逻辑。

3. 标号标号是汇编程序中用来表示内存位置或指令地址的符号。

汇编语言语法介绍

汇编语言语法介绍

汇编语言语法介绍汇编语言是一种底层编程语言,主要用于编写特定硬件体系结构的程序。

与高级语言相比,汇编语言更接近机器语言,更加直接控制硬件。

本文将介绍汇编语言的基本语法,包括指令、寄存器、标志位等内容。

一、指令集汇编语言通过一系列指令来完成特定的任务。

指令是汇编程序的最基本单元,它们直接对应着机器语言指令。

指令可以完成诸如数据传输、算术运算、逻辑运算等操作。

每个机器体系结构都拥有自己的指令集,汇编语言程序需要按照特定的指令集编写。

二、寄存器寄存器是汇编语言中的一种特殊内存单元,可以暂时存放数据或者指令。

不同的机器体系结构有不同的寄存器个数和名称,常见的有通用寄存器、指令指针、栈指针等。

在编写汇编语言程序时,我们可以通过操作寄存器来实现数据的存取和处理。

三、标志位标志位是一组单个位的寄存器,用于存储特定的状态信息。

例如,进位标志位可以记录运算是否产生了进位。

在条件判断和程序控制中,我们可以使用标志位来决策是否执行某个操作或者跳转到某个位置。

四、语法规则汇编语言有一套自己的语法规则,下面是一些常见的规则和语法:1. 指令和操作数都在同一行,用空格或者制表符进行分隔。

2. 指令和操作数的顺序往往对应着操作的先后顺序。

3. 注释可以使用分号(;)进行标记,位于指令之后或者单独一行。

4. 标号用于标识某个地址或者位置,通常以字母或者下划线开头。

5. 数据的定义可以使用众多的伪指令,如DB、DW、DD等。

6. 指令可以按照标准格式进行组织,包括标号、指令、操作数和注释。

五、示例程序下面是一个简单的示例程序,用于将两个数相加并存储结果。

```MOV AX, 5 ; 将值5移动到寄存器AXMOV BX, 3 ; 将值3移动到寄存器BXADD AX, BX ; 将AX和BX的值相加MOV CX, AX ; 将结果存储在寄存器CX中```六、总结汇编语言是一种底层的编程语言,需要直接操作硬件。

本文介绍了汇编语言的基本语法,包括指令、寄存器、标志位等内容。

汇编语言语法

汇编语言语法

AH送标志指令SAHF
语句格式:PUSHF 功能:将标
功能: 将栈顶内容弹出送入标志寄存器中。即 ↑(SP)→FLAGS。 POPF指令与PUSHF指令互为逆过程。

标志寄存器出栈指令POPF




汇编语言语法
北京理工大学
寻址方式 基本概念 1. 指令系统与指令格式 计算机可以执行的各种操作命令称为指令。 通常一条指令对应一种基本操作,例如加、减、 传送、移位等。计算机所能执行的全部命令的集 合即为该计算机的指令系统。 计算机指令是完成特定操作的命令,CPU能 直接识别和执行的指令是用二迚制代码表示的, 这种代码称为机器代码。
寻址及寻址方式的概念
立即寻址 立即寻址方式中,指令操作码和操作数都在存 储器代码段中。 汇编格式:n(n为立即操作数,是用8位或16位 二迚制补码表示的有符号数) 功能:操作数存放在 存储器,指令下一单元的 内容为立即操作数n。 图形表示如右:

1.
8086指令系统的寻址方式
寄存器寻址方式的操作数在指令指明的寄存器中。 汇编格式:R 其中R表示寄存器名。 功能:操作数直接存放在寄存器R中。
地址传送指令
语句格式:LDS OPD,OPS 功能:将主存中指定字单元数据送入指定存储器, 下一字单元数据送DS寄存器

传送有效地址及数据段首址指令LDS
语句格式:LES OPD,OPS 功能:将主存某字单元内容送指定寄存器。即 (OPS)→OPD,(OPS+2)→ES。

传送有效地址及附加数据段指令LES
指令系统

计算机中的指令有些不需要操作数,大多数指令 采用一个或两个操作数。一般来说,操作数可以 跟随在指令操作码之后,称为立即数;操作数也 可以存放在CPU内部的寄存器中,称为寄存器操 作数;绝大多数的操作数存放在内存储器中,称 为存储器操作数。指令指定操作数的位置,即给 出地址信息,在执行时需要根据这个地址信息找 到需要的操作数。这种寻找操作数的过程称为寻 址,而寻找操作数的方法称为寻址方式。

汇编语法大全

汇编语法大全

汇编语法大全汇编语言是一种底层的计算机语言,可以用来编写应用程序、驱动程序和嵌入式系统等。

其语法简洁、效率高,但也较为复杂。

下面是汇编语法大全,希望对大家能有所帮助。

1. 注释语句注释语句是程序员为了方便自己和他人阅读代码而添加的语句。

汇编语言中,使用分号(;)表示注释语句,写在行尾。

示例:mov ax, bx ;将bx寄存器的值赋给ax寄存器2. 标号语句标号语句用来表示程序中的一个位置,在汇编程序中可以用它来实现跳转、条件执行等功能。

标号语句必须在第一行,以字母开头,由数字、字母和下划线组成,长度不超过32个字符。

3. 数据定义语句数据定义语句用来为变量、常量分配存储空间,可以为它们指定初值。

汇编语言中,数据定义语句有三种形式:db、dw、dd。

db:定义一个字节(8位)长度的数据,可以用来存储字符、布尔型变量等。

data1 db 'A' ;定义一个字符型变量,初值为'A'4. 操作数表示操作数即指令中被操作的对象,可以是通用寄存器、内存单元、立即数等。

汇编指令中,操作数的表示方法主要有以下几种:寄存器表示法:使用寄存器的名称表示操作数,如AL、AX、DX等。

立即数表示法:表示一个常量数值,用于参与运算或存储到内存中,如100、0AH等。

内存变量表示法:使用内存变量的地址表示操作数,如[2000H]、[BX]等。

mov al, 02h ;将立即数02h赋给AL寄存器mov byte ptr ds:[bx], al ;将AL寄存器的值存储到2000h地址所指向的内存单元中5. 寻址方式汇编语言中,寻址方式用于表示操作数在内存中的地址。

汇编语言提供了多种寻址方式,例如寄存器间接寻址、基址变址寻址、相对寻址等。

寄存器间接寻址寄存器间接寻址是指操作数的地址存储在一个寄存器中。

例如,[BX]表示将BX寄存器中的值作为地址,访问该地址存储的数据。

基址变址寻址相对寻址相对寻址是指让程序计算出偏移量以便于寻址,这种寻址方式用于程序中的跳转指令。

ARM汇编语言的语法知识

指令执行的条件码 加载的目标寄存器 地址表达式
地址表达式expr的取值范围: 当地址值不是字对齐时,其取值范围为-64K~64K; 当地址值是字对齐时,其取值范围为-256K~256K; 当地址值是16字节对齐时,其取值范围将更大; 该地址必须与ADRL伪指令在同一个代码段中 .
• ARM伪指令——大范围的地址读取
指令执行的条件码 加载的目标寄存器 地址表达式
地址表达式expr的取值范围: 当地址值不是字对齐时,其取值范围为-255~255字节; 当地址值是字对齐时,其取值范围为-1020~1020字节; 当地址值是16字节对齐时,其取值范围将更大; 该地址必须与ADR伪指令在同一个代码段中.
• ARM伪指令——中等范围的地址读取
;单元,并初始化为0
• ARM汇编语言伪指令----数据定义伪操作
MAP MAP用于定义一个结构化的内存表的首地址.此时,内存 表的位置计数器设置成该地址值.该伪操作可以用"^"代替.
MAP伪操作举例
LTORG伪操作通常放在无条件跳转指令之后,或者子程
序返回指令之后,这样处理器就不会错误地将数据池中的
数据当做指令来执行.
用LTORG伪指令定义数据缓冲池举例
Funel
;子程序
LDR R1, =0x8000;将0x8000加载到R1
MOV PC, LR
LTORG
;定义数据缓冲池,存放0x8000
Data SPACE 40 ;从当前位置开始分配40字节的内存
使用示例:
height DN width SN lower FN
6 ;将VFP双精度寄存器6名称定义为height 16 ;将VFP单精度寄存器16名称定义为width 6 ;将浮点寄存器6名称定义为lower

assembly汇编

assembly汇编摘要:一、汇编语言简介二、assembly 汇编的特点三、assembly 汇编的应用领域四、assembly 汇编的基本语法五、assembly 汇编的实践案例正文:一、汇编语言简介汇编语言,也称为机器语言,是一种用来直接控制计算机硬件的语言。

它是一种低级的编程语言,其指令直接对应于计算机的机器指令。

在汇编语言中,程序员需要使用计算机处理器能够理解的指令来编写程序。

而assembly 汇编(简称assembly)是一种汇编语言的实现方式,它使用助记符来代替机器指令的操作码和操作数,使得程序员能够用更容易理解的方式编写机器语言程序。

二、assembly 汇编的特点1.面向底层硬件:assembly 汇编语言直接操作计算机硬件,能够实现对计算机的精确控制。

2.灵活性高:assembly 汇编语言可以针对不同的计算机体系结构进行编写,具有较强的适应性。

3.执行效率高:由于assembly 汇编语言直接操作硬件,其执行效率往往高于高级语言。

4.编写难度大:由于assembly 汇编语言需要程序员直接使用机器指令,因此对程序员的技术要求较高。

三、assembly 汇编的应用领域1.系统编程:assembly 汇编语言在操作系统、驱动程序等底层系统编程领域有广泛的应用。

2.嵌入式系统:由于嵌入式系统对运行速度和资源占用要求较高,assembly 汇编语言在这些领域具有优势。

3.游戏开发:在游戏开发中,assembly 汇编语言可以用于优化关键性能代码,提高游戏运行速度。

4.安全领域:在计算机病毒、恶意软件等领域,assembly 汇编语言由于其隐蔽性和执行效率,被广泛应用。

四、assembly 汇编的基本语法assembly 汇编语言的基本语法包括指令、操作数和地址。

1.指令:assembly 汇编语言的指令由操作码和操作数组成,例如:MOV A, 1。

2.操作数:操作数可以是寄存器(如A、B 等)、内存地址(如[data])或立即数(如1、0 等)。

汇编语言的基本语法

汇编语言的基本语法在计算机科学领域中,汇编语言是一种低级语言,用于编写计算机程序。

它直接操作计算机硬件,比高级语言更接近计算机底层。

汇编语言的使用需要对其基本语法有一定的了解。

本文将介绍汇编语言的基本语法,以帮助读者更好地理解和使用这种语言。

一、数据传送指令在汇编语言中,数据传送是最基本的操作之一。

它用于将一个数据从一个位置传送到另一个位置。

数据传送指令由源操作数和目的操作数组成,示例如下:MOV 目的操作数,源操作数其中,目的操作数是要传送数据的目标位置,源操作数是数据的来源位置。

例如,将一个常量值传送给寄存器AX的指令可以写成:MOV AX,1000H这条指令将十六进制常量1000H传送给寄存器AX。

二、算术指令在汇编语言中,算术指令用于对数据进行算术运算。

常见的算术运算包括加法、减法、乘法和除法。

以下是一些常用的算术指令示例:ADD 目的操作数,源操作数 ; 相加SUB 目的操作数,源操作数 ; 相减MUL 目的操作数,源操作数 ; 乘法DIV 目的操作数,源操作数 ; 除法其中,目的操作数是要进行运算的操作数存储位置,源操作数是用于运算的数据来源。

三、跳转指令在程序执行过程中,跳转指令用于改变程序的执行顺序。

它根据条件选择不同的路径执行,或者直接跳转到指定的地址。

常见的跳转指令有以下几种形式:JMP 目标地址 ; 无条件跳转JE 目标地址 ; 相等时跳转JNE 目标地址 ; 不相等时跳转JG 目标地址 ; 大于时跳转JGE 目标地址 ; 大于等于时跳转JL 目标地址 ; 小于时跳转JLE 目标地址 ; 小于等于时跳转这些指令根据前面的条件判断进行跳转。

四、循环指令在汇编语言中,循环指令用于重复执行一段程序。

常见的循环指令有以下两种形式:LOOP 目标地址 ; 循环指令,计数器减1并跳转JCXZ 目标地址 ; 循环指令,计数器为0时跳转这些指令根据指定的条件进行重复执行,直到条件不满足为止。

经典汇编语言教程

经典汇编语言教程一、汇编语言概述汇编语言是一种低级语言,它直接操作计算机的硬件资源。

本节将介绍汇编语言的定义、特点以及与高级语言的对比。

二、汇编语言的基本语法在本节中,我们将介绍汇编语言的基本语法规则,包括数据类型、变量定义、标号等。

同时还会介绍一些常用的指令和寻址方式。

三、汇编语言的数据处理指令本节将详细介绍汇编语言中的数据处理指令,包括算术运算、逻辑运算、移位操作等。

同时还会介绍如何使用寄存器和内存进行数据处理。

四、汇编语言的程序控制指令在这一节中,我们将介绍汇编语言中的程序控制指令,包括条件跳转、循环控制、函数调用等。

同时还会介绍一些常用的标志位和标志位操作指令。

五、汇编语言的输入输出操作本节将介绍汇编语言中的输入输出操作,包括键盘输入、屏幕输出、文件读写等。

同时还会介绍一些常用的输入输出指令和中断处理。

六、汇编语言的调试技巧在这一节中,我们将介绍汇编语言的调试技巧,包括使用调试器、查看寄存器和内存、设置断点等。

同时还会介绍一些常见错误和调试方法。

七、汇编语言的优化技巧本节将介绍汇编语言的优化技巧,包括减少指令数量、提高指令执行速度、优化内存使用等。

同时还会介绍一些常用的优化方法和工具。

八、汇编语言的应用实例在这一节中,我们将通过一些实际的应用实例来演示汇编语言的使用,包括计算器、游戏、操作系统等。

同时还会介绍一些常见的应用开发技巧和注意事项。

九、汇编语言的扩展知识本节将介绍汇编语言的一些扩展知识,包括汇编语言在嵌入式系统中的应用、汇编语言与其他编程语言的结合等。

同时还会介绍一些相关的学习资源和进一步的学习建议。

十、汇编语言的发展趋势在这一节中,我们将探讨汇编语言的发展趋势,包括新的指令集、新的开发工具、新的应用领域等。

同时还会介绍一些相关的研究方向和前沿技术。

总结:汇编语言作为一种低级语言,不仅能够直接操作计算机的硬件资源,还能够提供更高的执行效率和更灵活的控制能力。

通过学习汇编语言,我们可以更深入地了解计算机的底层原理,提高程序的性能和可靠性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

·SEG
格式为:SEG 变量或标号 汇编程序将回送变量或标号的段地址值。
举例:如果DATA_SEG是从存储器的05000H地址 开始的一个数据段的段名,OPER1是该段中的一个 变量名,则 MOV BX, SEG OPER1
将把0500H作为立即数插入指令。实际上,由 于段地址是由连接程序分配的,所以该立即数是连 接时插入的。执行期间则使BX寄存器的内容成为 0500H。
(2)操作项 操作项可以是指令、伪指令或宏指 令的助记符。对于指令,汇编程序将其 翻译为机器语言指令。对于伪指令,汇 编程序将根据其所要求的功能进行处理。 对于宏指令,则将根据其定义展开。
(3) 操作数项 操作数项由一个或多个表达式组成,多个 操作数项之间一般用逗号分开。对于指令,操 作数项一般给出操作数地址,它们可能有一个, 或二个,或三个,或一个也没有。对于伪操作 或宏指令,则给出它们所要求的参数。 操作数项可以是常数、寄存器、标号、变 量或由表达式组成。
汇编语言的基本语法
1.1. 汇编语言源程序的格式
DATA ARRAY COUNT SUM SEGMENT AT 2000H DB a1,a2,a3,…a10(a1~a10为立即数) EQU $ - ARRAY DW ?
DATA
STACK STAK TOP STACK
ENDS
SEGMENT PARA STACK ‘STACK’ DB 10 DUP (?) EQU LENGTH STAK ENDS
将形成为 MOV CX, 1。
·OFFSET 格式为:OFFSET 变量或标号 汇编程序将回送变量或标号的偏移地址值。 举例: MOV BX, OFFSET OPER_ONE 汇编程序将OPER_ONE的偏移地址作为 立即数回送给指令,而在执行时则将该偏移地 址装入BX寄存器中。所以这条指令的功能与 指令 LEA BX, OPER_ONE 是等价的。
CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,0 MOV DI,OFFSET SUM MOV BX,OFFSET ARRAY MOV CX,COUNT LOP: ADD AL,[BX] ADC AH,0 INC BX LOOP LOP MOV [DI],AX MOV AH,4CH INT 21H CODE ENDS END START
参数Байду номын сангаас有关的数据,
名字是段名、符号名等标识符,变量用变量名表示。
常量、标识符和表达式
一、常量 其值在程序中不能改变的量, 在汇编语言源程序中的常量有: 数字常量、字符常量和符号常量 ( 1 ) 数字常量可以是二进制数、八进制数、十进 制数或十六进制数表示
( 2 ) 字符常量是用单引号‘ ’括起来的ASCII字 符,
操作数项由一个或多个表达式组成, 它提供为执行所要求的操作而需要的信 息。操作数项可以是常数、寄存器、标 号、变量或由表达式组成。
注释项用来说明程序或语句的功能。 ";"为识别注释项的开始。";"也可以 从一行的第一个字符开始,此时整行都 是注释,常用来说明下面一段程序的功 能。
上面四项中带方括号的两项是可选项。 各项之间必须用"空格"(space)或"水 平制表"(Tab)符隔开。
一般说来,名字项可以是标号或变量。它 们都用来表示本语句的符号地址,都是可有可 无的,只有当需要用符号地址来访问该语句时 它才需要出现。 ·标号:标号在代码段中定义,后面跟着 冒号:,此外,它还可以作为过程名定义。 ·变量:变量在数据段或附加数据段中定 义,后面不跟冒号。 变量经常在操作数字段出 现。
指令性语句
格式为:
[ 标号 ]: 操作码 [ 操作数 ] [; 注释 ]
带方括号的为任选项,
标号是指令的符号地址,
操作码和操作数是用汇编语言指令表示的指令部分,
注释是对该语句在本程序中的功能的说明。
指示性语句
格式为:
[ 名字 / 变量 ] 命令 [参数] [; 注释 ]
命令指示汇编程序进行某种汇编操作,
(3) 关系操作符 关系操作符有:EQ(相等)、NE(不 等)、LT(小于)、GT(大于)、LE(小于 或等于)、GE(大于或等于)。 关系操作符的两个操作数必须都是数字或 是同一段内的两个存储器地址。计算的结果应 为逻辑值:结果为真,表示为0FFFFH;结果 为假,则表示为0。
例如:
MOV BX,((PORT_VAL LT 5) AND 20) OR ((PORT_VAL GE 5) AND 30)
举例:已有数据定义如下: TWO_BYTE DW ? 可以用以下语句对这两个字节赋予另一种 类型定义: ONE_BYTE EQU BYTE PTR TWO_BYTE 这里ONE_BYTE和TWO_BYTE两个符号 地址具有相同的段地址和偏移地址,但是它们 的类型属性不同,前者为1,后者为2。
此外,有时指令要求使用PTR操作符。例 如用 MOV [BX], 5 指令把立即数存入BX寄存器内容指 定的存储单元中,但汇编程序不能分清 是存入字单元还是字节单元,此时必须 用PTR操作符来说明属性,应该写明: MOV BYTE PTR [BX],5 或 MOV WORD PTR [BX],5
( 1 ) 组成标识符的字符有:
英文大写字母:A~Z; 英文小写字母: a-z; 数字0~9; 字符?、@、_ 、$;
( 2 )字符长度不超过3l个;
( 3 ) 首字符不能是数字;
( 4 ) ? 不能单独作为一个标识符;
( 5 ) 不能把保留字用作标识符,保留字包括助记符、 寄存器名等。
三、表达式 表达式是常数、标号、变量与一些操作符相 组合的序列,可以有数字表达式和地址表达式 两种。在汇编期间,汇编程序按照一定的优先 规则对表达式进行计算后可得到一个数值或一 个地址。
(4) 注释项 注释项用来说明一段程序、一条或几条指 令的功能。对于汇编语言程序来说,注释项的 作用是很明显的,它可以使程序容易被读懂, 因此汇编语言程序必须写好注释。注释应该写 出本条(或本段)指令在程序中的功能和作用, 而不应该只写指令的动作。读者在有机会阅读 程序例子时,应注意学习注释的写法,在编制 程序时,更应学会写好注释。
则当PORT_VAL < 5时,汇编结果应该是: MOV BX, 20
否则,汇编结果应该是:
MOV BX, 30
(4) 数值回送操作符 数值回送操作符有:TYPE、 LENGTH、SIZE、OFFSET、SEG等。 数值回送操作符把一些特征或存储 器地址的一部分作为数值回送。
·TYPE 格式为:TYPE 表达式 如果表达式是变量,则汇编程序将 回送该变量的以字节数表示的类型:DB 为1,DW为2,DD为4,DF为6,DQ 为8,DT为10。如果表达式是标号,则 汇编程序将回送代表该标号类型的数值: NEAR为 -1,FAR为 -2。如果表达式为 常数,则应回送0。
例如把两个不同段的地址相加也是无意义的。 经常使用的是地址 ± 数字量,它是有意义的。例如 SUM +1是指SUM字节单元的下一个字节单元的地址 (注意:不是指SUM单元的内容加1),而SUM-1则 是指SUM字节单元的前一个字节单元的地址。 例: 如果要求把首地址为BLOCK的字数组的第 6个字传送到DX寄存器,可用指令如下: MOV DX, BLOCK+ (6-1) * 2
格式为:SIZE 变量 汇编程序应回送分配给该变量的字 节数。但是,此值是LENGTH值和TYPE 值的乘积。
例如:
MOV CX, SIZE FEES
将形成为 MOV CX, 200
又例如: MOV CX, SIZE ARRAY 将形成为 MOV CX, 2
又例如: MOV CX, SIZE TABLE
常用的表达式操作符介绍如下:
(1) 算术操作符 算术操作符有+、-、*、/ 和MOD。 MOD是指除法运算后得到的余数,如 19/7的商是2,而19 MOD 7则为5(余数)。
算术操作符可以用于数字表达式或地 址表达式中,但当它用于地址表达式时, 只有当其结果有明确的物理意义时才是 有效的结果。例如两个地址相乘或相除 是无意义的。在地址表达式中,可以使 用 + 或 - ,但也必须注意其物理意义。
汇编语言源程序格式的特点是:
1 .分段结构
2 .语句行
汇编语言程序的语句有两类:
( 1 ) 指令性语句
( 2 ) 指示性语句
汇编语言源程序语句的格式
汇编语言源程序中的每个语句可以由四项组成, 格式如下: [名字] 操作 操作数 [ ;注释]
其中: 名字项是指一个标号或变量。 操作项是一个操作码的助记符,它可以是指令、 伪指令或宏指令名。
MOV CX, 100
举例2: ARRAY DW 1, 2, 3 对于指令MOV CX, LENGTH ARRAY 汇编程序将使其形成为: MOV CX, 1
举例3: TABLE DB ‘ABCD’ 对于指令MOV CX, LENGTH TABLE 汇编程序将使其形成为: MOV CX, 1
·SIZE
(2) 逻辑操作符 逻辑操作符有:AND(与)、OR(或)、XOR (异或)、NOT(非)。 逻辑操作符都是按位操作的,只能用于数字表 达式中。逻辑操作符要求汇编程序对其前后两个操 作数(或表达式)作指定的逻辑操作。
例: OUT PORT_VAL AND 0FEH, AL 上例中PORT_VAL为端口号,OUT 指令中的表达式说明只为偶数号端口输 出数据。
其值是该字符的ASCII代码值
( 3 ) 符号常量是用标识符定义的常量。
例如,采用符号定义语句 PORTA EQU 80H, 则指令 MOV AL,PORTA 与指令 MOV AL,80H 等价。 二、标识符 在编程时建立的有特定意义的字符序列,标识符 可用作符号常量、名字、变量和标号等。
相关文档
最新文档