收藏 分享(赏)

lec05-汇编语言中的操作数.ppt

上传人:天天快乐 文档编号:765415 上传时间:2018-04-21 格式:PPT 页数:30 大小:1.13MB
下载 相关 举报
lec05-汇编语言中的操作数.ppt_第1页
第1页 / 共30页
lec05-汇编语言中的操作数.ppt_第2页
第2页 / 共30页
lec05-汇编语言中的操作数.ppt_第3页
第3页 / 共30页
lec05-汇编语言中的操作数.ppt_第4页
第4页 / 共30页
lec05-汇编语言中的操作数.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、第 05 讲 汇编语言中的操作数,常量:作为硬指令的立即数或伪指令的参数变量:主要作为存储器操作数 MOV 指令,MOV指令的功能,一、 常量,常量表示一个固定的数值,它又分成多种形式常数字符串符号常量数值表达式,(1)常数,指由10、16、2和8进制形式表达的数值,各种进制的数据以后缀字母区分,默认不加后缀字母的是十进制数,(2) 字符串,字符串常量是用单引号或双引号括起来的单个字符或多个字符其数值是每个字符对应的ASCII码值例如:d(等于64H)AB(等于4142H)Hello, Assembly !,(3) 符号常量,符号常量使用标识符表达一个数值符号常量定义伪指令有“EQU”和“”两

2、种:符号名 EQU 数值表达式符号名 数值表达式EQU用于数值等价时不能重复定义符号名,但“”允许有重复赋值。例如:X= 7;等效于:X equ 7X= X+5;“X EQU X+5”是错误的,汇编时,对EQU定义的符号名用对应的表达式进行“替换”。例如:,NUMEQU 215 MOD 15ERR_MSGEQU“Data Override ”,MESSAGEDBERR_MSG;等价于MESSAGE DB “Data Override ”MOVCX, NUM+1;等价于MOVCX, 215 MOD 15+1,(4) 数值表达式,数值表达式一般是指由运算符连接的各种常量所构成的表达式汇编程序在汇编

3、过程中计算表达式,最终得到一个确定的数值,所以也是常量表达式的数值在程序运行前的汇编阶段计算,所以组成表达式的各部分必须在汇编时就能确定汇编语言支持多种运算符例如:mov ax,3*4+5;等价于:mov ax,17,构成数值表达式可使用以下几类运算符: 算术运算符 (+,-,*,/,mod) 逻辑运算符 (shl, shr, and, or, xor, not) 关系运算符 (gt, ge, eq, le, lt, ne) 地址运算符 (seg, offset) 类型运算符 (type, length, size),【例 25】数值表达式及其应用;汇编语言指令 MOV DH, 0110010

4、0B SHR 2MOV BL, 8CH AND 73HMOV AH, 8CH OR 73HMOV AX, 10H GT 16MOV BL, 6 EQ 0110BMOV BX, 32+(13/6)MOD 3),;汇编后形成的指令;MOV DH,19H;MOV BL,0 ;MOV AH,0FFH;MOV AX,0 ;MOV BL,0FFH ;MOV BX,0022H,MOV AX, BX+2,需要把BX的值与常数2相加并存入AX的操作只能在程序执行阶段由以下两条指令完成:MOVAX, BX ;BX寄存器值存入AX寄存器ADDAX, 2 ;AX寄存器的值加2,结果存AX,不良用法,二、 变量,变量实

5、质上是指内存单元的数据,虽然内存单元地址不变,但其中存放的数据可以改变变量需要事先定义才能使用变量定义伪指令为变量申请以固定长度为单位的存储空间,并可以同时将相应的存储单元初始化定义后的变量可以利用变量名等方法引用其中的数据,即变量的数值,(1) 变量的定义,变量定义的汇编语言格式为:变量名 伪指令 初值表变量名为用户自定义标识符,表示初值表首元素的逻辑地址,常称为符号地址。初值表是用逗号分隔的参数,主要由常量或“?”组成。其中“?”表示未赋初值多个存储单元如果初值相同,可以用复制操作符(重复定义符)DUP进行定义:重复次数 DUP(重复参数),变量定义伪指令,DB(Define Byte):

6、每个数据占用一个字节(8b) DW(Define Word):每个数据占用一个字(16b) DD(Define Double Word):每个数据占用一个双字(32b) DQ(Define QuartWord):每个数据占用8个字节(64b) DT(Define Ten Byte ):每个数据占用10个字节(80b),【例 23】 变量定义举例,DSEGSEGMENTBVAR DB 1,-2,AB,3 DUP(a),?;字节变量, 8项WVAR DW 1,-2,AB,3 DUP(a),?;字变量,7项DVAR DD 1,-2,AB,3 DUP(a),?;双字变量,7项VAR1 DW WVAR,

7、 DVAR, DVAR-WVAR, VAR1-DVAR;字变量,4项VAR2 DD WVAR, DVAR, DVAR-WVAR, VAR1-DVAR;双字变量,4项VAR3 DB DVAR-WVAR, VAR1-DVAR;字节变量,2项DSEGENDS,有符号数用它的补码存储字符用ASCII代码存储DB定义的数据在 -128255 之内变量名代表首个单元的地址DW定义的数据在-32768, 65535内出现在参数部分的变量名用这个变量的偏移地址代替多字节数据的存放: “高高低低”(小端方式),存储区域分配 (1,-2,AB,3 DUP(a),?),(2)变量和标号的属性,变量和标号都表示存储单

8、元。变量表示的存储单元中存放数值标号表示的存储单元中存放指令代码。变量和标号具有如下三种属性: 段属性(SEG): 变量或标号对应存储单元所在段的段地址。 偏移地址属性(OFFSET):变量或标号对应的首个存储单元的段内偏移地址。 类型属性(TYPE): 变量的类型属性指的是变量占用存储单元的字节数。属性值由变量定义伪指令来决定。,主要的变量和标号类型属性及返回值 (变量 / 标号 / 常数) DB DW DD DF DQ DT NEAR FAR 常数 1 2 4 6 8 10 -1 -2 0,(3) 析值运算符,析值运算符也称为数值回送运算符,把一些特征或存储器地址的一部分作为数值回送。 常

9、用析值运算符,数值回送操作符: OFFSET、SEG、TYPE、 LENGTH、SIZE,SIZE 变量功能:LENGTH * TYPE,OFFSET / SEG 变量 / 标号功能:回送变量或标号的偏址 / 段地址,TYPE 变量 / 标号 / 常数 DB DW DD DF DQ DT NEAR FAR 常数 1 2 4 6 8 10 -1 -2 0,LENGTH 变量功能:回送由DUP定义的变量的单元数,其它情况回送1,MOV AX, LISTMOV AX, OFFSET LIST,设变量LIST定义在DATA段中,DATA SEGMENT LIST DW 10,20,30DATA END

10、S下面三条指令都是把DATA段的段基址装入AX:,MOV AX, DATA ;DATA代表该段的段基址,是一个立即数MOV AX, SEG DATA ;取DATA的段基址,结果是立即数MOV AX, SEG LIST ;取LIST的段基址,结果是立即数,对比:,;取出变量LIST第一个元素送入AX,;取变量LIST的偏移地址送入AX,(4) 属性运算符,提高访问变量、标号和一般存储器操作数的灵活性常用属性运算符,类型限定操作符 PTR,类型限定操作符对类型属性进行设置类型名 PTR 名字/标号类型名可以是BYTE、WORD、DWORD(依次表示字节、字、双字)等,或者是NEAR、FAR(分别表

11、示近、远)等例:MOV AX, BVAR MOV AX, WORD PTR BVAR,(5)变量的应用,变量具有存储单元的逻辑地址指令语句中通过变量名引用其指向的首个数据通过变量名加减位移量存取以首个数据为基地址的前后数据 伪指令语句中主要是在另一个变量定义语句中作为参数部分出现。,MOV AL, BVAR;AL 1,MOV BL, BVAR+3;BL B,【例 23】 变量应用举例,;代码段MOV CL, BVAR; BVAR第1个数据送CL,(CL)=01HMOV CH, BVAR+2; BVAR第3个数据送CH,(CH)=41HMOV BX, WVAR; WVAR第1个数据送BX,(BX

12、)=0001HMOV SI, WVAR+2; WVAR第2个数据送SI,(SI)=0FFFEH(-2)MOV DX, WORD PTR DVAR; DVAR第1个数据低字送DX,(DX)=0001HMOV AX, WORD PTR DVAR+2; DVAR第1个数据高字送AX,(AX)=0000HMOV DI, VAR1+4; VAR1第3个数据送WVAR第7个数据单元。MOV WVAR+12, DI,(6) 变量的定位,汇编程序按照指令的先后顺序一个接着一个分配存储空间,按照段定义伪指令规定的边界定位属性确定每个逻辑段的起始位置(包括偏移地址)定位伪指令ORG控制数据或代码所在的偏移地址ORG 参数ORG伪指令是将当前偏移地址指针指向参数表达的偏移地址。例如:ORG 100h;从100H处安排数据或程序ORG $+10;偏移地址加10,即跳过10个字节空间汇编语言程序中,符号“$”表示当前偏移地址值,例:变量定位,DATA SEGMENT ORG 10H VAR1 DB 1,A ORG $+2 VAR2 DW 1234H, $- VAR1DATA ENDS,小结,数据的定义常量EQU数值表达式各部分必须在汇编时能够确定变量的定义与使用DB、DW、DDDUPOFFSET、SEG、PTR、ORG、$,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报