ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:116KB ,
资源ID:8395637      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8395637.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(微机原理电子教案:汇编语言基础.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

微机原理电子教案:汇编语言基础.doc

1、 汇编语言基础 一、 计算机语言 计算机语言:能够把人的命令告诉计算机的一套符号系统及其使用规则称为“计算机语言”。 到目前为止,计算机语言已经由低级到高级经历了:机器语言、汇编语言、高级语言、第四代语言(第四代语言比第三代语言更接近自然语言。用于访问数据库的语言经常被认为是第四代语言,如Power Builder)的发展过程。其中汇编语言是一种能够充分利用计算机硬件特性的低级语言,它与计算机的结构有非常紧密的联系。不同的计算机有各自的汇编语言。 1、机器语言 计算机的所有操作都是在指令的控制下进行的。能够直接控制计算机完成指定动作的是机器指令。一条机器指令是一个由0和1组成的二进

2、制代码序列。不同的机器指令对应的二进制代码序列也各不相同。一条机器指令通常由操作码和操作数两部分构成,操作码在前,操作数在后。下面的二进制代码序列就是一条8088的机器指令: 10000000,00000110,01100100,00000000,00010010 二进制序列中的逗号是为了方便阅读而加上的,并不是机器指令的一部分。前16位是操作码部分,含义是要求计算机做两个数的加法操作;后24位是操作数部分,分别指出第一个加数在内部存储器的编号为100的那个字节中,另一个加数在指令中,是18。 对于同样的二进制序列,不同型号的CPU对它的理解是不一样的。所以机器代码与机器本身有着紧密的联

3、系。每一种计算机(准确的说是每一种CPU)都有自己的一套指令,一种机型的所有机器指令的集合就是它的指令系统。指令系统及其使用规则构成这种计算机的机器语言。选择指令系统中的指令排列起来,可以构成一个指令序列,用以告诉计算机完成一连串的动作,这就是一个机器语言程序。 2、自然语言与汇编语言的对比 机器语言是计算机的“母语”,但是绝大多数人难学。现实生活中,人们使用汉语、英语、法语等各种不同的自然语言,任何一种自然语言对于当代计算机来说都是无法领会的。解决办法:“找”一种双方都能够也容易学会的语言作为中间媒介。 汇编语言、高级语言、第四代语言都扮演着这个中介角色。 若一个人要学新语言

4、他该学些什么呢?中国人学英语的过程:字母-》单词-》简单句子-》若干连贯的句子描述一件简单的事情-》熟练写英语文章(都会穿插相应的语法知识) 自然语言与汇编语言的对照 语言 自然语言(英语) 汇编语言 对比项目 基本符号 字母表 字母,专用符号 词 单词 保留字,标识符 句 句子 完整的指令,伪指令 段 段落 子程序 章 文章 程序 语法 拼写,句法,文法 指令,子程序,程序格式及使用规则 技巧 句子正确,文理通顺 指令正确,程序精简,易读性好,结构化好 汇编语言人可以发挥自己的聪明才智学会,计算机如何学?这是

5、利用汇编语言到机器语言的固定翻译机制实现的。计算机专家们已编制了一些翻译程序供汇编语言的编程人员使用,这种翻译程序称为“汇编程序”。 3、汇编程序和连接程序 汇编程序是一种计算机软件(系统软件),它能够把人们编写的汇编语言程序(称为源程序,一般以.ASM作为文件扩展名)翻译成机器语言,这种翻译操作称为“汇编”。不同的计算机有不同的机器语言,因而也需要有不同的翻译器―――汇编程序,MASM.EXE是一种专门用于把8086/8088的汇编语言源程序翻译成相应的机器语言程序的翻译器。 汇编程序还具有语法检查的功能,交给汇编程序进行处理的源程序在翻译之前都必须经过语法检查这一关。若发现源程序中有

6、违背汇编语言语法的地方,将不进行翻译工作,而是指出错误的位置以及类型。 汇编程序翻译的结果已具备机器语言的形式,称为“目标程序”,一般以.OBJ作为文件扩展名。但是,目标程序还不能直接交给计算机去执行,它还需要通过连接程序(LINK.EXE)的装配才具备可执行的形式,装配结果称为“执行文件”,一般以.EXE作为文件扩展名。 4、汇编语言的构成 汇编语言是较早发明的一种介于自然语言与机器语言之间的程序设计语言。为了使汇编语言到机器语言的翻译比较简单,汇编语言用大量的语法规则对从指令到程序的书写加以限制。与后来的高级语言、第四代语言相比,汇编语言更接近于机器语言,用汇编语言编写的源程

7、序还保留了很多机器语言的影子。比如: 机器指令中的操作码部分在汇编语言中用与该指令的功能相关的一个符号表示,例如加法指令就用ADD表示,数据传送用MOV表示,这类符号称为“助记符”。 对于一个放在内存中的操作数,如果要求编程人员记住每一个操作数在内存中的存放位置是一个巨大的负担。在汇编语言中,减轻这种负担的方式是用变量存放操作数,程序员只要记住变量的名字即可。 跳转是程序设计中不可避免的一个问题。在机器语言中,跳转的目的地是用指令所在的位置(即在内存的哪一个字节)来表示的,而汇编语言中的跳转则是在目的地做一个称为“标号”的标记。 除了与机器语言有直接对应关系的助记符,变量,标号外,为了

8、能让汇编程序正确的完成翻译工作,必须要告诉汇编程序变量需要占据多少字节的内存,程序到何处结束,整个程序的第一条指令在什么地方等问题。因此,源程序中应该有一些告诉汇编程序如何进行翻译操作的“说明”,这类说明在翻译结果中并没有对应的机器代码,所以称为“伪指令”。 指令助记符,数据和存放数据的变量,标号,伪指令以及相应的使用规则构成了汇编语言的全部内容。 5、汇编语言的特点 与机器语言相比,汇编语言易于理解和记忆,编写的源程序可读性较强。汇编语言中还提供了一些分工协作并相互通讯的方法,可以实现初步的结构化编程。源程序翻译成机器语言后的执行文件在存储空间,执行速度方面与机器语言编写的程序大致相当

9、 高级语言和第四代语言在科学计算,事务处理等方面比汇编语言有巨大的优势,但用高级语言编写的程序,在翻译成机器语言后,程序代码冗长,占用存储空间大,执行速度慢。如果用高级语言来编写接口控制,设备通讯等方面的程序则不太合适,相反这样的情况下汇编语言更容易发挥其长处:目标程序或执行文件简短,执行速度快,效率高,特别是汇编语言能直接控制计算机的内存和外设,这些特点是高级语言和第四代语言望尘莫及的。 高级语言和第四代语言适合于编写应用软件,对于系统软件,尤其是涉及内存管理,硬件控制方面问题时汇编语言则比较合适。 二、 变量 虽然把数据存放在寄存器中使用起来快速、方便,但寄存器的数目很少,能存放

10、的数据量有限,因此大量数据通常是放在内存中的,对于外存中的数据也是需要调到内存中才可以处理的。 问题:数据放在内存的什么位置?数据占据了多少字节?数据超过1个字节时怎么存放?如何把数据放进去以及如何取出来? 解决方法: 高级语言:引入变量的概念。变量的实质就是存放数据的存储区域,根据变量中能够存放的数据的类型和数量,可以确定变量占据存储空间的大小,这就是变量说明。有些高级语言还允许变量说明的同时在其中放一个初始数据,称为变量的初值。变量说明后,可以对变量赋值,也可以从变量中取出数据使用。不论是赋值还是取值,编程时都以变量的名字作为使用变量的方式,并不关心变量究竟在内存的哪个地方。 机器

11、于言:没有变量,只有内存的地址,读数写数,都需要在指令中明确指出逻辑地址。如果用机器语言编写程序,编程者直接面对内存地址,并且需要自己安排数据存储的所有细节。 汇编语言:中介,引入了变量,可以象高级语言一样使用,另一方面又有很明确的变量与内存地址间的对应关系,汇编程序在翻译时为定义的各个变量分配地址,在变量名字与内存地址之间架起了一座连结的桥梁。因此,在汇编语言中对变量的操作既可以通过变量的名字,也可以直接用变量的地址。 1、 变量定义 (1)变量名 一种用来区分不同的存储区域的标识符号,是一种标识符。是一个或多个符号构成的符号串。 命名规则: 1) 可用符号包括字母、数字和特殊符

12、号“?”、“@”、“$”、“%”、“_”。 2) 不允许用数字作为第一个符号。 3) 名字的长度没有严格限制,但一般不超过10个符号。 4) 最少由一个符号构成,可以是字母、“_”或“@”。 5) 汇编语言不区分字母的大小写。 总之,记住基本规定就可以了:以字母开头的字母数字串 (2)变量定义的方法 变量实质:存放数据的内存区域,变量定义就是告诉汇编程序,在翻译时从某个地址起预留一定数量的空间,并在其中填上初值,还要建立变量与地址间的对应关系。所以变量定义是伪指令而不是指令。 格式:变量名 类型 初值表 变量名: 类型:只能是DB,DW,DD,DT,用于说明初值表中的每个数

13、据占几个字节,对应关系如下: DB:字节型,每个数据占1个字节 DW:字型,每个数据占2个字节 DD,DT很少用,不讲。 初值表:用逗号分隔的若干个数据项,每个数据项的值是变量的一个初值项,占据“类型”规定的字节数,说明变量的初值是多少,也指明了变量占多少字节的存储空间。 注意:如果初值表需要填写若干个相同的值,可以用下面的形式表示把一个值重复若干次。 重复次数 DUP(数据项) 初值表中可以用问号“?”作为初值,汇编程序翻译时以值0填充。 任何段中都可以写变量定义,也允许指令和变量定义写在一个段中,通常是把程序所用到的所有变量集中在数据段中,而把指令写在代码段。 例题:说明

14、data段中定义的各变量的类型及初值情况,以及每个变量占据的内存字节数。 Data SEGMENT D1 DB 1 D2 DW 1234H D3 DD 12345678H D4 DB ‘1’,’2’,’3’ (31H,32H,33H) D5 DB ‘123’ (31H,32H,33H)写法不用而已 D6 DB 30 DUP(0) D7 DB 1,3 DUP(2),’3’,-3,1001B D8 DB 1,2,3,4,5,6 (初指表中数据项很多一行写不完而转行的写法) DB 7,8,9,10 D9 DW ‘12’

15、’AB’ (32H,31H,42H,41H) D10 DW 3-5 (补码形式,高地址是FFH,低地址是OFEH) Data ENDS 2、 变量内存分配 变量内存分配是指把定义的各个变量安排在段内的什么位置,占多少字节,以及其中的值是多少。 (1)内存图 内存图表示的内容有两个方面,一是存储器,通常由若干叠放在一起的小方框表示,一个小方框代表一个字节。一般段地址部分省略,只标各字节的偏移地址。小方框内填的数值表示该字节中的内容。另一方面,内存图还要表示变量名与偏移地址的对应关系,把变量的名字写在对应的方框的边上。 (2)变量定义与内存

16、分配的关系 掌握目的:有助于对各种内存型寻值方式的理解和灵活运用。 汇编程序在为变量安排内存时遵照下面的规则: (1) 同一段内的变量具有相同的段地址。 (2) 按照段中变量定义的次序,依次对各变量分配偏移地址。 (3) 除非有其他伪指令说明,段内的第一个变量被分在偏移地址为0处。 (4) 一个变量占据的字节数由其类型和初值表中的项数决定。 (5) 除非有其他伪指令说明,一个变量分配完后,紧接着分配下一个变量。 三、 伪指令 1.数据定义伪指令 数据定义伪指令主要是完成存储单元分配,数值变量赋值及预置存储空间等工作。 (1)变量定义伪指令 格式:[变量名]<定义符><操

17、作数项表> 功能:定义变量名并为变量分配存储单元,同时将初值赋给相应存储单元。 说明:变量具有三个属性。 段属性(SEG)变量存放在哪一个逻辑段(DS段或ES段)中。若在DS段中,则段基值需装入DS中。 偏移量属性(OFFSET)变量在逻辑段中离段起始点的字节数。 类型属性(TYPE)变量所占存储单元的字节数。 定义符是必选项,用于说明操作数项的类型属性。定义符有: DB—定义字节,类型为1。 DW—定义字,类型为2。 DD—定义双字,类型为4。 DQ—定义四字,类型为8。 DT—定义十字节,类型为10。 操作

18、数项右以是常数,表达式,字符串,变量和?,?用于预留存储空间?(暂不存入数据)。操作数项为字符串时,必须用单引号括起,且字符以ASCⅡ码形式存放在存储单元中。 例如 : V1 DB 20H V2 DW 5*100 V3 DD 12345678H V4 DQ (140+60)/20 V5 DW ‘CD’,’AB’,?,? ADR1 DD V1 假设V1变量偏移地址为0100H,段基址为8000H,变量的初值和在内存中的分配如图4-13所示。 V1

19、 20H V5 44H ‘D’ V2 F4H 43H ‘C’ 01H 2个字节 42H ‘B’ V3 78H 41H ‘A’ 56H 34H 4个字节 12H ADR1 00H V1的

20、 V4 0AH 01H 偏移地址 00 00H V2的 00 00H 偏移地址 00 00 8个字节 00 00 00 图4-13 变量定义存储器分配示意图 (2) 重复定义伪指令 DUP(Duplicate)用于重复以定义的一组操作数。 格式: DUP (操作数项表) 功能:对操作数项表内容进行n次重新分配,定义及预置存储单元。 例如:X1 DW 4DUP(10H,20H),‘A’ X2 DB 2DUP(?,2DUP(‘D

21、’,ODH)) 存储分配如图4-14所示。 ┇ X1 10H X2 — 20H 44H ‘D’ 10H 0DH

22、 20H 44H ‘D’ 10H 0DH 20H — 10H 44H 20H

23、 0DH 41H ‘A’ 44H 0DH ┇ 图4-1

24、4 重复定义存储分配示意图 2.符号定义指令 使用符号定义伪指令是将某些常数,表达式等用一特定符号来表示,从而大大简化程序,这类指令特点不占用内存单元。 (1) 等值语句 格式:〈名字〉 EQU〈表达式〉 功能:为表达式取一个名字,既把表达式的值或符号赋给EQU左边的名字,供以后引用。 说明:EQU语句的名字不能重复定义。表达式可以时常数,变量,标号,指令助记符,字符串等。 例如: CONST EQU 50 ;定义常数符号 VAR EQU WORD PTR X

25、 ;定义变量属性 LAB EQU STRAT ;定义符号 M EQU MOV ;定义指令助计符 C EQU CONST+300 ;定义常数表达式 ADI EQU [SI+4] ;定义地址表达式 ┇ M AX,VAR

26、 ;引用 ADD AX,CONST SUB AX,ADI ┇ 等价于: MOV AX,WORD PTR X ADD AX,50 SUB AX,[SI+4] ┇ (2) 等号语句 格式: 〈名字〉=〈表达式〉 功能: 与EQU相同。 说明:等号语句可以重复定义,表达式只能是数值表达式。 例

27、如: CONST=20 NUM=10H CONST=CONST+50 (3) 标号定义伪指令 格式:〈名称〉LABEL〈类型〉 功能:给名称定义类型,既同一地址指针赋予两种类型属性。 例如: DARRAY LABEL WORD BARRAY DB 20 DUP (11H,22H) SUB1 LABEL FAR SUB2 PROC NEAR MOV BX,0

28、 ┇ MOV AX,[DARRAY+10H] ADD AL,[BARRAY+20H] ┇ RET SRB2 ENDP ┇ CALL SUB1 ;远调用 CALL SUB2 ;近调用 注意:DARRAY 和它下面的BARRAY地址实际上是相同的,但属性不同的

29、DARRAY为字,BARRAY 为字节。SUB1和SUB2都指向同一条指令MOV BX,0,但类型不同,SUB1为FAR ,SUB2 为NEAR。 3、 操作数及运算符 指令语句执行操做的对象是操作数,伪指令语句在汇编时服务的对象也是操作数,操作数可以是常数,变量,表达式等。 (1)操作数 ①常量操作数 常量在汇编时已有确定的值,在程序运行中,它不会发生变化。有二种类型常量: 数值常量:取值类型为二进制(B),八进制(0),十六进制(H),十进制(D)的实型数或整形数。 字符串长量:有单引号括起的一个或多个字符。这些字符以ASCII码形式存储在内存中 。 适用范围

30、l 适用于立即操作数 如:ADD AX,1234H MOV DI,3200H l 存储器操作数的偏移量或初值 如:MOV AX,[SI+20H] MOV [BUF],0050H l 伪指令中对变量的定义 如: V1 DB 11H V2 DW 2233H V3 DD 445566H V4 DB ‘STRING’ ②变量操作数 变量是对存储单元的一个数据或数据区的符号表示,这些数据可被程序随时改变。用变量名对变

31、量进行访问,变量名就是变量的符号地址。其他有关说明与前面变量定义伪指令相同。 ③表达式操作数 表达式是由常数,操作数,操作符和运算符组合而成,表达式操作数是以表达式 形式出现的操作数,汇编程序对表达式进行计算,将其值作为指令操作数。它所构成的操作数昌丰富多彩的,如:MOV AX,VAR+10 (2)、操作数运算符 表达式常以多种运算符来连接操作数,其值是在程序汇编过程中进行计算的,在汇编语言中操作数运算符可分为:算术运算符,逻辑运算符,关系运算符,数值返回运算符,属性修改运算符。 ①算术运算符 表4-5列出算术运算符。 说明:表中前二项+,-为单项运算符。 表4-5算术运算符

32、 运算符 格 式 功 能 + +<表达式> 表达式值取正 - -<表达式> 表达式值取负 * <表达式1>*<表达式2> 两式相乘 / <表达式1>/<表达式2> 两式相除 MOD <表达式1>MOD<表达式2> 两式整除取余 + <表达式1>+<表达式2> 两式相加 - <表达式1>-<表达式2> 两式相减 SHR <表达式1>SHR 将表达式的值右移N位 SHL <表达式1>SHL 将表达式的值左移N位 [] <表达式1>[表达式2] 下标操作符 +,-,*,/运算中,参

33、加运算的操作数和运算的结果均为整数。减法可用于两个操作数地址运算,其结果是一个常数,表示这两个变量之间的相距字节数。 NUM=30*2 ;NUM=60 NUM=NUM/8 ;NUM=7 NUM=NUM+10 ;NUM=11 NUM=-NUM+6 ;NUM=-5 ORG 0050H VALUE1 DB 12H,34H,‘NUMBER’ VALRE2 DW 5678H,‘FE’ ADDR1 EQU VALUE2-VALUE1 ADDR2 DW VALUE

34、2-2 ②逻辑运算符 表4-6列出逻辑运算符。 表4-6逻辑运算符 运算符 格 式 功 能 NOT NOT<表达式> 表达式值按位取“反” AND <表达式1> AND <表达式2> 两表达式值按位“与” OR <表达式1> OR <表达式2> 两表达式值按位“或” XOR <表达式1> XOR <表达式2> 两表达式值按位“异或” 说明:逻辑运算符用于对两个整型常量按位作逻辑运算。一般出现在汇编语句的源操作规数位置上,或EQU语句中。 逻辑运算符和逻辑运算指令有本质上的不同。前者操作数对象是一具体的整型常数,在汇编时

35、完成逻辑运算,它仅作为指令的某一个操作数或构成操作数的一部分;而后者是对一个寄存器或存储单元内容,在程序运行时执行逻辑运算。 例如: MOV DX,0AABBH MOV AX,NOT OFEH ;AX←0FF01H MOV AL,77H AND 0F0H ;AL←70H MOV BL,77H OR OF0H ;BH←0F70H MOV CL,77H XOR 0F0H ;CL←87H MOV DL,22H AND 20H ;DL←20H XOR DH,44H XOR 80

36、H ;DH←0C4H ③关系运算符 关系运算符表4-7。 表4-7关系运算符 运算符 格 式 功 能 EQ <表达式1> EQ <表达式2> 两个表达式值相等为真,否则为假。 NE <表达式1> NE <表达式2> 两个表达式值不相等为真,否则为假。 LT <表达式1> LT <表达式2> 表达式1<表达式2为真,否则为假。 LE <表达式1> LE <表达式2> 表达式1≤表达式2为真,否则为假。 GT <表达式1> GT <表达式2> 表达式1>表达式2为真,否则为假。 GE <表达式1> GE <表达式2> 表达式1≥

37、表达式2为真,否则为假。 说明:关系运算符的对象一定是常量或同一段变量。若为常量,按无符号数比较;比较结果为真返回全‘1’,为假返回‘0’。 例如: MOV AX,OEH EQ 1110B ;AX←OFFFFH MOV BX,12H NE 34H ;BX←OFFFFH MOV DX,56H GT 55H ;DX←0000H VAR DW N LT 2000H ;N<2000H,VAR为0FFFFH,否则为0。 ④数值返回运算符 数值返回运算符对变量或标号进行分析,回送其地址属性值(符号地址对应的段基址,偏移

38、 量)或变量特征值(如数据类型值,变量长度,变量元素个数等)。见表4-8。 表4-8数值返回运算符 运算符 格 式 功 能 SEG SEG <变量 | 标号> 返回变量或标号的段基址。 OFFSET OFFSET <变量 | 标号> 返回变量或标号的偏移地址。 LENGTH LENGTH <变量> 返回变量元素个数。 SIZE SIZE <变量> 返回变量所占字节数。 TYPE TYPE<变量 | 标号> 返回变量或标号的类型值 说明:对于使用DUP重复定义的变量,LENGTH运算符返回最外层DUP的给定值。 例如: K1 DB 20

39、H DUP (2,4 DUP(1,3 DUP(0))) MOV AL,LENGTH K1 ;AL←20H SIZE返回数组变量所占的总字节数,等于LENGTH和TYPE两个运算符返回值的乘积。 例如:段基址为 (DS)=6800H ORG 2800H ARRAY DW 50 DUP(0AH)     ┇ MOV AX,SEG ARRAY ;AX←6800H MOV DS,AX MOV CX,LENGTH ARRAY ;CX←50 MOV SI,SIZE A

40、RRAY ;SI←100 MOV DI,OFFSET ARRAY ;DI←2800H ┇ ⑤属性修改运算符 用于设定或说明变量或标号的属性,以及对运算对象的操作数的类型属性的设定,使之运算过程具有相同属性。见表4-9 表4-9属性修改运算符 运算符 格 式 功 能 PTR PTR<变量|标号> 对变量或标号设置类型。 THIS THIS<类型> 将类型属性赋给当前的存储单元。 SHOR JMP SHOR <标号> 指定转移跳转距离属性为短跳,范围为+127-12

41、8字节。 HIGH HIGH <表达式> 对表达式所对应的数值常量或存储单元偏移量进行 LOW LOW<表达式> 字节分离,其中,HIGH返回表达式值的高8位,LWO返回表达式值的低8位。 说明:PTR运算符对变量设定的类型属性有:BYTE,WORD,DWORD,FWORD和QWORD。对标号设定的类型属性为:NEAR或FAR,它用在指令语句中。 例如: VAR1 DB 4 DUP(4,2) VAR2 DW 1068H,2000H,3000H ┇ MOV DX,WORD PTR VAR1 ;DX←0204H ADD DH,BYTE PRT VA

42、R2 ;DH←DH+68H MOV BYTE PTR[BX],2 ;[BX]←02H JMP FAR PTR SUB1 ;段间转移 用了PTR运算符,VAR1变量由原来的字节 属性“临时”改变为字(WORD)属性,仅在当前指令语句中有效,而存储分配并不改变。 THIS运算符一般与EQU伪指令连用,放置在数据段,表明了一个变量或标号具有二种属性(用不同的变量名表示),在代码段直接引入相应变量名即可,类型说明与PTR类型说明相同 。 例如:N1 EQU THIS BYTE N2 DW 2426H,3537H

43、 ┇ MOV AX,N2 ;AX←2426H MOV BH,N1 ;BH←26H HIGH/LOW运算符用于将操作数高字节/低字节分离。 例如: CONT EQU 5657H ORG 60H N1 DB 44H,66H,88H N2 DW 4000H,6000H ┇ MOV AH,HIGH 6844H ;AH←68H MOV AL,LOW CONT ;AL←78H MOV BL,LOW (OFFSET N1) ;BL←60H MOV BH,HIGH (OFFSET N2) ;BH←00H

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服