首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
八、80x86宏汇编语言的数据和表达式
(一)常数
在宏汇编中,允许使用的常数有:
● 二进制常数
● 十进制常数
● 八进制常数
● 十六进制常数
● 十进制科学记数法
● 串常数
(二)变量
变量用于定义存储器中的数据,这些数据在程序运行过程中可随机修改。为了便于对变量的访问,变量常常以变量名的形式出现在程序中。变量名可以认为是存放数据的存储单元号地址。变量的三个属性是:
(1)段属性
指变量所在段的段基址。
(2)偏移地址属性
指变量所在段中的偏移量,即变量所在地址与段基址之间的字节距离。
(3)类型属性
指变量占用存储单元的字节数。占用1个字节的称为字节变量,其类型BYTE;占用2个字节的称为字变量,其类型为WORD;占用4个字节的称为双字变量,其类型为DWORD。此外,还有8字节(即4个字)变量和10字节变量,它们分别占用8个字节存储单元和10个字节存储单元,其类型为QWORD和TBYTE。
变量可以用伪指令DB、DW、DD、DZ、DT进行定义。
(三)标号
标号是给指令性语句所在地址取的名字,和变量一样,标号有三个属性:
(1)段属性
(2)偏移地址属性
(3)类型属性
(四)表达式和运算符
宏汇编中有三种运算符:算术运算符、逻辑运算和关系运算符。
1.算术运算符
算术运算符包括加(+)、减(-)、乘(*)、除(/)、模除(MOD)、左移(SHL)和右移(SHR)七种。+、-、*、/是常用的运算符,参加运算的数和运算结果均为整数。除法运算的结果取商的整数部分,而模除的运算结果只取它的余数。左移或右移运算符可使二进制数左移或右移若干位,相当于二进制数进行乘法或除法运算,因此也把它们作为算术运算符。
2.逻辑运算符
逻辑运算符包括AND(与)、OR(或)、XOR(异或)、NOT(非)四种。它们只适用于对常量进行逻辑运算。注意,表达式中的逻辑运算符只能出现在语言的操作数部分并且是在汇编时完成运算的。
3.关系运算符
关系运算符包括EQ(相等)、NE(不等)、LT(小于)、(GT)大于、LE(小于或等于)、GE(大于或等于)6种运算。关系运算符是用于比较两类的大小,要求两个操作数都是数字或者是同一段中的两个地址值。比较的结果用逻辑值表示。关系运算符与逻辑运算符常结合在一起使用。
4.数值回送运算符
数值回送运算符分为两类:一类是将指定的变量名或标号地址的有关内容赋给指令,如OFFSET和SEG;另一类有3种:TYPE,LENGTH和SIZE,将变量名或标号的一些特征传送给指令。
(1)OFFSET
格式: OFFSET 变量或标号
汇编程序将回送变量或标号所在地址的偏移量给该指令。
(2)SEG
格式: SEG 变量或标号
汇编程序将回送变量或标号所在地址的段地址给该指令。
(3)TYPE格式: TYPE 变量或标号
用来确定标号或变量的类型,并根据类型作为一个操作数回送给指令。汇编中规定,如果是变量,则根据DB、DW、DD、DQ和DT分别用数值1、2、4、8和10回送给指令。如果是标号,根据标号的类型用-1和-2分别代表NEAR和FAR。
(4)LENGTH
格式: LENGTH 变量名
用来回送变量名下定义的数据项数目。值得注意的是它只对用DUP定义的数据起作用,凡没使用DW的回送值均为1。
(5)SIZE
格式: SIZE 变量名
用来回送为该变量名分配的字节数。可见SIZE应是TYPE和LENGTH值的乘积。
5.指定属性操作符
指定属性操作符有PTR和THIS等6种。它们的功能是建立一些新的存储器地址操作数,即新的变量、标号或地址表达式。
(1)PTR
格式:类型 PTR 表达式
说明:类型可以是BYTE、WORD、DWORD、NEAR、FAR等,表达式可以是某个变量、标号或地址表达式。
功能:建立一个新的存储器地址操作数,但不分配内存。新操作数与PTR右边的存储器地址作数有相同的段地址和偏移量,类型为PTR左边规定的类型。因些,实际上,PTR操作符可给变量、标号或地址表达式定义新的名字和类型。
(2)THIS
格式:THIS 类型
功能:定义当前单元类型的操作符。
(3)SHORT
格式:JMP SHORT DES
功能:确定转移地址的属性,用在JMP指令中,规定转移范围在-128~+127个字节内。
(4)HIGH和LOW
两个字节选取操作符。在指令中用在字操作数之前,指定取该字的高字节或低字节参与运算。
(5)段属性
利用“段寄存器:地址表达式”的形式改变操作数的地址表达式所属段的特性。
相关推荐:计算机等级考试三级PC技术常见系统命令行北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |