版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.3 汇编语言的表达式,汇编语句中的数据(常数、变量、标号)都可以用表达式给出 ;,表达式的运算在汇编阶段由汇编程序进行运算并将结果当作操作数;,MASM允许使用的表达式分为:,数值表达式:结果是一个数值;,地址表达式:结果是一个存储器的地址 。,MASM表达式由运算符号和运算对象组成。,运算符号分六大类:,算术运算符(7个),逻辑运算符(4个),关系运算符(6个),分解运算符(5个),修改属性运算符,其他运算符,参加表达式运算的运算对象可以是常数,也可以是变量或标号。,3.3.1 算术运算符,有加(+)、减(-)、乘(*)、除(/)、模除(MOD)、左移(SHL)和右移(SHR)等七种 ;
2、,运算对象和运算结果都必须是整数 ;,除法运算的结果只取商;,模除运算的结果只取余数 ;,MOV AH, 2+6 MOV AH,08H MOV CL, 33/5 MOV CL,06H MOV DL, 23 MOD 5 MOV DL,03H MOV BL, 00001010B SHL 4MOV BL,10100000B MOV AH, 0110B SHR 5MOV AH,0000B,1E,上述表达式运算是否影响FLAGS ?,3.3.2 逻辑运算符,包括逻辑非、逻辑与、逻辑或和逻辑异或四种。,逻辑运算符与指令系统中的逻辑运算指令的符号相同,功能 相近。,区别:,表达式中的逻辑运算不影响标志位;,
3、表达式中的逻辑运算由汇编程序在汇编阶段完成; 逻辑运算指令由CPU在程序执行阶段完成。,MOV AL,NOT 0011 0011B MOV AL,1100 1100B MOV BL,11110000B AND 10111101B MOV BL,10110000B MOV AH,10100000B OR 00000101B MOV AH,10100101B MOV BH,10101011B XOR 10100100B MOV BH,00001111B,2E,3.3.3 关系运算符,包括相等EQ、不等NE、小于LT、不大于LE、大于GT、不小于 GE六种运算;,关系运算符是对两个运算对象进行比较操
4、作:,若满足条件,结果为TRUE,输出结果为全1;,若不满足条件,结果为FALSE,输出结果为全0。,例: MOV AX,5 EQ 101B MOV AX,0FFFFH MOV BH,10H GT 16 MOV BH,00H,L:less G:greater E:equal N:not,3E,3.3.4 分解运算符(分析运算符),例: MOV AX,SEG A ;将变量A所在段的段地址值送AX MOV BX,OFFSET A;将变量A的偏移地址值送BX,从变量或标号中分解出某些属性值,1. SEG运算符 格式: SEG 变量或标号 功能: 计算变量或标号的段地址。,2. OFFSET运算符 格
5、式: OFFSET 变量或标号 功能: 计算变量或标号的段内偏移地址。,3. TYPE运算符 格式: TYPE 变量或标号 功能: 计算变量或标号的类型值。,例 A1DB21H,42H A2DW3412H A3DD? ALOP:MOVAL,TYPEA1 MOVBL,TYPEA2 MOVAH,TYPEA3 MOVDL,TYPEALOP 等效于: ALOP:MOVAL,1 MOVBL,2 MOVAH,4 MOVDL,0FFH,例子: FEES DW 100DUP(0) ARRAY DW 1,2,3 MOV CX,LENGTH FEES MOV BX,LENGTH ARRAY 等效于: MOV CX
6、,100 MOV BX,1,4. LENGTH运算符 格式: LENGTH 变量 功能: 对于使用DUP定义的变量,计算分配给该变量的单 元数,其他变量的LENGTH值为1。,1 当变量为DUP定义且DUP括号内为单项数据时,下列关系成立: SIZE=LENGTH*TYPE 2 否则size和length的值无意义。,5. SIZE运算符 格式: SIZE 变量 功能: 计算分配给该变量的字节数。,例 P1DB10DUP(0) P2DW20DUP(?) BB:MOVAL,LENGTHP1 MOVBL,LENGTHP2 MOVAH,SIZEP1 MOVBH,SIZEP2 等效于: BB:MOVA
7、L,10 MOVBL,20 ;只计单元数 MOVAH,10 ;10=10*1 MOVBH,40 ;40=20*2 ;还要计算类型,4E,例如: A1DB10DUP(0,1) A2DW20DUP(2 DUP (?) , 1 ),Length a1 : Length a2 : Size a1 : Size a2 :,10,20,10,40,3.3.5 修改属性运算符,例: MOVAX,ES:BX ;从ES段中偏移地址为BX ;的地址中取出一个字送AX MOVBL,DS:BP ;从DS段中偏移地址为BP的 ;地址中取一个字节送BL,在程序运行过程中暂时修改变量或标号的属性,1.修改段属性运算符 跨越段前缀 段寄存器(CS,DS,ES和SS)后跟一个冒号,称为修改段属性运算符,表示后跟的操作数由指定的段寄存器提供段地址值。,2. PTR运算符 格式:类型 PTR 变量/标号 功能: 将PTR左边的类型属性临时赋给其右边的变量/标号,但保持它们原来的段属性和偏移地址属性不变。,例: M1DB20H,32H M2DW5682H ALP1:MOV AX,WORD PTR M1 ALP2:MOV AL,BYTE PTR M2,PTR运算符例子,M1: 字节,AX: 字 M2: 字 ,AL: 字节,例: B EQU THIS BYTE A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电商平台主播分成合同
- 2026年供暖数据监测合同协议
- 2026年工厂生产线电梯保养合同协议
- 家禽养殖技术培训课件
- 家校安全联谊课件
- 培训讲座教学课件
- 培训讲师演讲课件模板
- 国家安全培训活动课件
- 培训Office的课件作业
- 口腔医疗app介绍课件
- 高低温测试报告表
- 微型消防站应急器材点检维护记录
- 新人教版四年级上册数学同步练习册
- 《两次鸦片战争》同步练习
- 生态保护红线内人类活动生态环境影响评价技术指南
- GB/T 228.3-2019金属材料拉伸试验第3部分:低温试验方法
- GB/T 10612-2003工业用筛板板厚
- GA/T 1583-2019法庭科学汉族青少年骨龄鉴定技术规程
- FZ/T 80002-2008服装标志、包装、运输和贮存
- 二年级英语北京版试卷
- 《探究小车运动快慢与拉力大小的关系》试验评分表
评论
0/150
提交评论