- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lec05汇编语言中的操作数讲述
汇编时,对EQU定义的符号名用对应的表达式进行“替换”。 例如: NUM EQU 215 MOD 15 ERR_MSG EQU “Data Override ” MESSAGE DB ERR_MSG ;等价于MESSAGE DB “Data Override ” MOV CX, NUM+1 ;等价于MOV CX, 215 MOD 15+1 (4) 数值表达式 数值表达式一般是指由运算符连接的各种常量所构成的表达式 汇编程序在汇编过程中计算表达式,最终得到一个确定的数值,所以也是常量 表达式的数值在程序运行前的汇编阶段计算,所以组成表达式的各部分必须在汇编时就能确定 汇编语言支持多种运算符 例如: 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) 【例 2?5】数值表达式及其应用 ;汇编语言指令 MOV DH, SHR 2 MOV BL, 8CH AND 73H MOV AH, 8CH OR 73H MOV AX, 10H GT 16 MOV BL, 6 EQ 0110B MOV 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的操作只能在程序执行阶段由以下两条指令完成: MOV AX, BX ;BX寄存器值存入AX寄存器 ADD AX, 2 ;AX寄存器的值加2,结果存AX √ × 不良用法 二、 变量 变量实质上是指内存单元的数据,虽然内存单元地址不变,但其中存放的数据可以改变 变量需要事先定义才能使用 变量定义伪指令为变量申请以固定长度为单位的存储空间,并可以同时将相应的存储单元初始化 定义后的变量可以利用变量名等方法引用其中的数据,即变量的数值 (1) 变量的定义 变量定义的汇编语言格式为: 变量名 伪指令 初值表 变量名为用户自定义标识符,表示初值表首元素的逻辑地址,常称为符号地址。 初值表是用逗号分隔的参数,主要由常量或“?”组成。其中“?”表示未赋初值 多个存储单元如果初值相同,可以用复制操作符(重复定义符)DUP进行定义: 重复次数 DUP(重复参数) 变量定义伪指令 DB(Define Byte):每个数据占用一个字节(8b) DW(Define Word):每个数据占用一个字(16b) DD(Define Double Word):每个数据占用一个双字(32b) DQ(Define QuartWord):每个数据占用8个字节(64b) DT(Define Ten Byte ):每个数据占用10个字节(80b) 【例 2?3】 变量定义举例 DSEG SEGMENT BVAR 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, DVAR, DVAR-WVAR, VAR1-DVAR ;字变量,4项 VAR2 DD WVAR, DVAR, DVAR-WVAR, VAR1-DVAR ;双字变量,4项 VAR3 DB DVAR-WVAR, VAR1-DVAR ;字节变量,2项 DSEG ENDS 有符号数用它的补码存储 字符用ASCII代码存储 DB定义的数据在 [-128~255] 之内 变量名代表首个单元的地址 DW定义的数据在[-32768, 65535]内 出现在参数部分的变量名用这个变量的偏移地址代替 多字节数据的存放: “高高低低”(小端方式) 存储区域分配 (1,-2,AB,3 DUP(a),?) (
文档评论(0)