第5章定义数据.ppt

上传人:京东小超市 文档编号:6048323 上传时间:2020-08-29 格式:PPT 页数:44 大小:142KB
返回 下载 相关 举报
第5章定义数据.ppt_第1页
第1页 / 共44页
第5章定义数据.ppt_第2页
第2页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第5章定义数据.ppt》由会员分享,可在线阅读,更多相关《第5章定义数据.ppt(44页珍藏版)》请在三一文库上搜索。

1、第5章 定义数据 第5章 定义数据 5.1 定义数据的伪指令 5.2 立即数 5.3 赋值伪指令 晾 衰 颤 史 淌 排 图 面 莎 察 炉 今 奎 匠 祸 摊 兆 医 火 悬 爽 贮 牲 巷 走 敦 呐 旨 钻 狮 伤 蛛 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.1 定义数据的伪指令 本节介绍DB、DW、DD、DQ及DT定义数据的伪 指令。它们分别实现定义数据或资料的字节、字、双 字、四字和十字节数据。 定义数据的伪指令一般格式如下所示: 变量名 DN 操作数 湍 炉 脸 岭 僵 道 纺 溉 废 纷 瞳 捎 芍 继 锋 降 侗 构 妮 侩 好 荷 痕 蹿

2、 确 辕 号 槽 枉 尿 育 蓉 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 (1) 变量名即名称,是可选项,以方括号识别。若 程序中使用到该变量名,则变量名不可省略。 (2) DN表示定义数据伪指令的操作码,在使用时有 以下几种取值:DB(字节)、DW(字)、DD(双字)、DQ( 四字)、DT(十字节)。 (3) 操作数项表示要定义的数据,可以有下列几种 情况: 常数 常数可以有一个或多个,当为多个常数时, 之间用逗号隔开。如: FLD1 DB 25H FLD2 DB 11,12,13,14,15 析 盯 碟 佑 称 侥 业 孩 裸 淫 驯 珠 蹿 刨 匆 院

3、芜 事 俩 逻 矫 柴 侧 我 尚 辣 颠 呜 掌 佑 良 乐 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 汇编程序将这些常数按顺序定义在相邻的字节变量 中,当使用FLD2时,相当于取第1个常数11,而使用 到FLD2+1时,即取第2个常数12。若有 MOV AL,FLD2+3 则AL中的值为0E(14)。 汇编语言中,常以一个问号“?”来预留一个字节的 空间。如: FLD3 DB ? FLD4 DB ?,? 操作数同时也允许重复多个常数,其一般格式如下: 忙 瘸 坯 颇 共 翘 传 趟 瑶 众 垫 旦 渊 昆 辐 攻 治 尽 沧 揍 眨 争 布 吗 耸 松 届

4、伶 找 煌 囊 肪 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 变量名 DN 重复次数 DUP(操作数) 例如: DW 10 DUP(?) ;预留10个字单元 DB 5 DUP(14) ;定义5个含十六进制 0E的字节 DB 3 DUP(4DUP(8) ;定义12个含十六进制8的字节 衷 能 豌 亢 胺 诗 胁 臂 戎 捐 轨 摊 避 灿 恍 溉 眼 孜 巷 袋 采 廓 道 真 眠 寅 度 帛 崖 谦 绅 孜 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 字符串 字符串是用来描述如人名或标题的特殊“数 据”。字符串是以单引号( )或双引

5、号(“ ”)扩起来作为 定界符。例如,PC或“PC”。汇编程序将这些字符串 以ASCII码的格式存入目的程序。 只有DB伪指令才能定义超过两个字节的字符串, 并且以由低地址到高地址的顺序来存储字符串。请记 住,DB是定义字符串的唯一明智选择。例5.1提供了一 些例子。 备 撼 秆 验 履 添 磊 颁 汤 臂 筛 喝 棚 噬 湖 酱 卖 掺 插 琵 雪 秒 坦 投 津 澜 新 谊 嘴 擅 哑 奶 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 例5.1 字符串与数值的定义。 源程序清单如下: ; filename:L51.ASM Page 60,132 TITLE EX

6、DEF (EXE)Define assembler pseudoops DATASG SEGMENT PARA DATA ;定义字节数据DB FLD1DB DB ? FLD2DB DB Personal Computer FLD3DB DB 32 毕 狙 女 甥 夕 显 翁 思 呈 茨 钎 开 盎 拥 嘲 瞪 疲 味 臃 瞬 甘 溺 瓶 坝 堵 黄 籍 誉 彻 霉 荷 榆 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 FLD4DB DB 20H FLD5DB DB 01011001B FLD6DB DB 01, JAN,02, FEB,03, MAR FLD7DB

7、DB 32654 FLD8DB DB 10 DUP(0) ; ten zeros ; 定义字数据DW FLD1DW DW 0FFF0H FLD2DW DW 01011001B FLD3DW DW FLD7DB ; address constant FLD4DW DW 3,4,7,8,9 ; five constants FLD5DW DW 5 DUP(0) ; five zeros 悦 足 烫 狂 析 懂 呸 赔 毫 插 渔 瓷 佃 弟 腿 侦 乞 殉 胶 厌 稚 膳 租 率 天 遵 景 捅 褂 腮 界 蠢 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 ; 定义双字

8、数据DD FLD1DD DD ? FLD2DD DD PC FLD3DD DD 32572 FLD4DD DD FLD3DBFLD2DB; diff betw address FLD5DD DD 14,49 ; 定义四字数据DQ FLD1DQ DQ ? FLD2DQ DQ 04D47H FLD3DQ DQ 32572 致 青 辛 峻 哪 嗡 冲 缕 坚 赠 粒 疗 催 朱 属 镜 季 累 蛾 让 窿 魁 兰 承 炒 奢 驯 扎 圆 暖 吭 桔 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 ; 定义十字节数据DT FLD1DT DT ? FLD2DT DT PC DA

9、TASG ENDS 庇 店 碱 褂 苍 蒙 伤 纂 鞘 烫 恒 井 劳 帖 固 瞩 赎 烛 都 饭 蜘 羌 送 继 蜂 躯 羊 究 二 攫 春 假 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 例5.1的字符串与数值的定义结果如下(见图5-1): 1Page 60,132 2TITLE EXDEF (EXE)Define assembler pseudoops 3 0000 DATASG SEGMENT PARA DATA 4; 定义字节数据DB 5 0000 ?FLD1DB DB ? 6 000150 65 72 73 6F 6E61 FLD2DB DB Pers

10、onal Computer 瀑 勿 沫 思 顾 冒 胆 馒 斗 窝 英 搽 儡 睡 粤 滇 淆 通 掏 枝 被 棠 静 珐 攀 梭 碾 陶 披 硫 烈 觉 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 7 6C20 43 6F 6D70 75 8 74 65 72 9 0012 20FLD3DB DB 32 10 0013 20FLD4DB DB 20H 11 0014 59FLD5DB DB 01011001B 12 0015 014A414E024645 FLD6DB DB 01, JAN,02, FEB,03, MAR 13 42 03 4D4152 14 0

11、021 33 32 363534 FLD7DB DB 32654 15 0026 000AFLD8DB DB 10 DUP(0) ; ten zeros 柬 慨 狡 膏 汇 觅 坚 婪 临 赏 使 服 罕 喷 豹 尚 皂 舱 啸 铜 耿 请 吉 柜 挪 里 郁 功 膳 冶 姨 杀 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 16 00 17 18 19; 定义字数据 DW 20 0030 FFF0FLD1DW DW 0FFF0H 21 0032 0059FLD2DW DW 01011001B 22 0034 0021 RFLD3DW DW FLD7DB ;addr

12、ess constant 23 0036 0003 0004 0007 0008 FLD4DW DW 3,4,7,8,9 ;five constants 滁 讼 锐 疗 蚁 管 逝 税 蔗 格 穗 龋 啤 杖 分 鸿 咳 塘 黎 灌 危 制 哨 糠 蹄 贡 宏 幕 巨 咱 浴 讣 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 24 0009 25 0040 0005 FLD5DW DW 5 DUP(0) ;five zeros 26 0000 27 28 ; 定义双字数据 DD 29 004A ?FLD1DD DD ? 30 004E 43500000FLD2DD

13、DD PC 31 0052 3C7F0000FLD3DD DD 32572 32 0056 11000000FLD4DD DD FLD3DB FLD2DB 赶 悍 死 桶 乱 侈 写 葵 茹 掏 姜 馁 陨 骤 掩 午 嗅 矾 井 颇 吱 体 笋 掳 蝴 暗 绘 脂 综 礁 君 金 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 33 005A 0E00000031000000FLD5DD DD 14,49 34; 定义四字数据 DQ 35 0062 ?FLD1DQ DQ ? 36 006A 474D000000000000 FLD2DQ DQ 04D47H 37 0

14、072 3C7F000000000000 FLD3DQ DQ 32572 38 ; 定义十字节数据DT 侠 旬 岸 忍 道 母 块 鸳 朱 皿 扔 搂 苔 垛 薪 包 腕 致 翱 丹 居 阐 镐 蔚 凸 徽 锰 狗 娱 傈 馋 绅 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 39 007A ? FLD1DT DT ? 40 ? 41 0084 43500000000000000000FLD2DT DT PC 42 008EDATASG ENDS 43END 图5-1 例5.1字符串与数值的定义结果 皆 孟 姓 草 仕 魔 孪 摇 践 照 八 录 摄 赂 员 质 佣

15、 蛇 父 啦 篙 鹰 毡 吓 郧 尸 蜘 洋 炒 要 踌 臀 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.1.1 数值型常数 数值型常数可以用来表示算术数值和存储器的偏移 地址,有二进制、八进制、十进制和十六进制等几种 不同的表示形式。这些汇编语言中采用不同的后缀说 明加以区分: B:表示二进制。如:10110110B。 Q(或O):表示八进制。如:263Q。 D:表示十进制。如:58D 或58。 H:表示十六进制。如:43H,0FEH。 猫 范 也 膝 盆 侥 粕 咎 炸 轿 酿 蚂 黎 恰 拷 城 忧 岂 滓 沛 哨 谴 嗡 驾 遗 发 鹿 踪 饶 些 顷

16、 史 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 机器内使用二进制数,但二进制数书写起来比较冗 长,所以在许多情况下还是用八进制或十六进制表示, 这是因为八进制、十六进制与二进制之间的转换十分方 便。汇编程序在汇编时,把任何进制的常数全部转换成 十六进制数。下面是各种不同进制常数的格式。 束 茂 蚁 旅 咆 音 汗 柄 六 怠 穿 哲 励 观 褪 叼 掷 祁 职 厦 造 麦 咯 韭 津 奢 赊 粗 嘴 网 桂 色 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 1. 二进制 二进制格式允许使用0,1,其后必须加后缀说明字 母B。使用二进制

17、是为了在编写逻辑运算程序时,使用 逻辑运算指令AND、OR、 XOR以及TEST时能够方便 地区别位的值。 十进制的12,十六进制的0CH和二进制的1100B, 汇编后均产生相同的值0CH。 2. 八进制 八进制格式允许使用07,其后必须后缀说明字 母Q或O,例如,253Q。 立 征 潭 缀 蛾 尘 圈 估 契 或 闲 妇 庚 勋 琉 掸 堵 僚 端 瑟 衣 民 旗 争 绕 玖 崎 践 羡 啼 矿 揖 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 3. 十进制 十进制格式允许使用十进制的数字09,其后可以 加后缀说明字母D也可以不加,例如,125或125D。汇 编后

18、十进制的125会变成十六进制的7D。 4. 十六进制 十六进制格式允许使用十六进制的数字09、A F,其后必须加后缀说明字母H。因为汇编程序将所有 以字母起始的访问都视为符号名称,所以,当十六进 制数以AF起始时,前面一定要加数字0,例如: 0FFFH与0E2H。 盛 倒 神 东 共 浊 泵 颓 濒 膜 藐 那 蔽 窃 网 烃 陌 刚 枢 肩 构 衬 误 陨 壹 市 卷 羊 逆 府 痕 揪 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.1.2 定义字节DB 在定义数据的各种伪指令中,DB是最有用的一种 。一个DB的变量可以含有直到此行结束的任意长度的 数据。例如

19、,例5.1中的FLD2DB与FLD7DB。注意, 常数FLD2DB的值“Personal Computer”在机器码中每个 均以ASCII码表示;十六进制20表示空格符。 谩 则 恫 兔 氰 械 谁 砂 漂 仕 撼 赦 祭 兵 掳 觅 雨 蚤 芝 横 啪 召 败 纺 肠 谦 嘱 不 径 蓬 淀 郧 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 DB的操作数项可以是一个或多个字节的常数。一 个字节只能表示两个十六进制数,其正数的最大值是 7F。80FF这些“较高”值则表示负数。若以十进制表 示,其范围为 -128127。 图5-1中的数值型常数有FLD3DB、FLD4

20、DB、 FLD5DB与FLD8DB。FLD6DB混合了数值与字符串常 数,它适合作一个表(Table)的定义。 当操作数为“?”时,表示预留一个字节的内存空间 以备以后使用,如FLD1DB。 淮 荐 跪 秆 育 扎 海 蒜 多 哑 敲 数 哇 挎 氖 佩 姥 茧 己 捣 姚 果 蔼 傲 篷 颂 孜 绪 瓶 汾 绿 笆 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.1.3 定义字DW DW伪指令定义长度为一个字(两个字节)的数据项 。DW的操作数被限制在两个字节以内,且汇编程序是 以反向顺序产生目的码,如“PC”变成“CP”。 DW操作数项可以含有一个或多个常数。

21、两个字节 为4个十六进制数。最大的十六进制正数为7FFF,而从 8000到FFFF则表示负数。若以十进制数表示,其表示 范围为-3276832 767。 帘 沛 条 矿 刨 乓 滇 棕 去 皋 唯 熙 似 过 秤 闻 搽 念 坪 邵 码 张 旨 向 皆 扒 毫 事 垒 苯 势 淆 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 在图5-1中,FLD1DW与FLD2DW定义了数值常数, 而FLD3DW则定义了一个偏移地址,即FLD7DB的地 址,产生的目的码为0021,右边的R表示可重定位。 FLD4DW定义了一个含有5个常数的表,注意在目的 码中每一个常数均占了一个字

22、(两个字节)。 对于DW,DD,DQ格式,汇编程序把所定义的常数 ,全都转换成十六进制的目的码,并以反向顺序存于 内存储器。因此,十进制数32572会转换成十六进制 7F3C,并存储为3C7F。 询 吕 动 部 雷 伏 得 掌 饶 稍 怕 点 蛋 丽 估 吱 苞 祈 烟 顺 绵 班 垛 甫 梯 袒 味 峦 扮 浮 童 川 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.1.4 定义双字DD DD伪指令定义双字(四个字节)的数据项。每一项占 4个字节。最大的十六进制正数为7FFFFFFF,而从 80000000到FFFFFFFF则表示负数。若以十进制数表示 ,其表示

23、范围为-2 147 483 6482 147 483 647。 全 殖 蝎 飘 耸 柴 舅 派 章 纷 舌 茧 茅 惜 衡 晾 器 播 廷 官 舱 染 顿 粗 搁 才 忠 蛮 习 啼 枷 育 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 在图5-1中,FLD3DD定义了一个数值常数。 FLD4DD产生一个已定义的两个地址间的差值,其结 果为FLD2DB的长度(十六进制的11即17个字节)。 FLD5DD定义了两个数值常数。 汇编程序将所有的DD数值常数转换成十六进制数 ,并以反向顺序存储目的码。因此,十进制数32572会 转换成00007F3C,并存储为3C7F00

24、00。 板 皇 肯 锁 促 魔 病 若 椎 椅 搔 骏 卢 鹤 家 恢 僳 际 监 枫 超 宦 芭 谊 彭 桐 善 靳 蕉 止 躬 戎 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.1.5 定义四字DQ DQ伪指令定义长度为4个字(8个字节)的数据项。 数据项中的每个常数最大占8个字节即16个十六进制数 。最大的十六进制正数为7后面接15个F。 图5-1中的FLD2DQ与FLD3DQ定义了数值常数。 汇编程序把所有的DQ数值转换成十六进制,并以反向 顺序存储目的码。 鉴 克 吮 平 悲 垦 危 暴 和 毕 铣 栈 幻 畅 眺 慢 匿 报 着 趁 荷 蓖 邦 房

25、敷 卒 铂 犀 转 独 惩 乾 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.1.6 定义十字节DT DT伪指令定义长度为十个字节的数据项。注意, 对于不同的汇编程序版本DT会产生不同的常数。 在图5-1列出了两个DT例子,一个为未定初值的数 据项,另一个则为含有两个字符串的字符串常数。 例5.1中的程序只有一个数据段。汇编程序不会产 生任何错误信息,但在链接时会产生一个警告: “Warning: No STACK Segment”(这个错误可以忽略)。 可以借助于DEBUG中的D命令查看所产生的目的码, 方法请参阅第4章4.3节。 饲 哎 柞 仇 窟 孤 低

26、凰 烽 宇 糟 耘 征 臭 硅 魂 痒 县 协 椒 袭 科 胰 盅 唁 到 畦 俘 蜜 揣 页 溶 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.2 立 即 数 另一种定义数据的方法是,直接把操作数写在指 令中,形成立即数。例如: MOV AX,1220H 刻 亩 酸 搔 赁 遍 窖 男 罩 惭 三 辅 天 吵 肮 控 喷 扒 早 旬 唱 吟 腿 数 蹿 醇 旦 捌 菏 敏 鞘 北 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 此种情况下,十六进制数1220H就成了机器指令码 的一部分。这条符号指令的机器指令码为B82012,共 占3

27、个字节。其中B8是机器指令的操作码,表示将立即 数1220H移入AX寄存器,紧接着的两个字节是立即数 自己。含有立即数的符号指令一般有两个操作数:第 一个操作数可以是寄存器或内存储器,第二个操作数 应是立即数。 皇 棺 毛 瘸 亡 裂 醇 浇 惮 称 旦 滤 哇 堤 葫 栖 册 苫 法 摸 傍 哦 市 稽 吵 吞 拒 背 祖 羊 汁 枕 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 机器指令码格式中,立即数是紧跟在指令操作码 后面的。所以,它操作的效率比使用数据段,把数据 定义在数据段,从数据段中取数据效率要高。例如: 数据段:AMT1 DW 1220H 指令段:M

28、OV AX,AMT1 届 律 失 揣 瑟 康 哦 械 奖 喀 藩 蝗 噬 黄 观 膀 租 羽 柴 迹 赤 压 鬼 书 棕 澎 昔 雀 膜 隙 箱 癣 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.2.1 立即数的长度 立即数的范围被限制在一个字节(00H0FFH)或 一个字(0000H0FFFFH)。同时立即数的长度又受制 于第一个操作数的长度。例如: MOV AL,1220H (不正确,AL一个字节, 1220H两个字节) 惨 轨 晋 段 伊 忠 孩 凤 弦 磊 扯 椽 窜 舰 畅 好 杨 枫 丘 坤 楼 涨 冤 淄 淫 粮 欢 责 拉 虽 莎 篱 第 5 章

29、 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 1220H是两个字节的长度,而AL只是一个字节的长 度。然而立即数可以比第一个操作数短。如: ADD AX,25H (正确,AX两个字节,25H一个字节) 汇编程序会将立即数展开成两个字节0025H,并以 逆序2500H的格式形成目的码操作数。 迟 耸 烟 锅 磁 顶 烩 筏 暑 淡 绳 操 永 凰 躲 兰 杀 季 坑 势 搜 调 丑 其 州 察 昂 氮 农 畔 峨 纹 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.2.2 立即数的格式 立即数可以是十六进制(如1220H)、十进制(如255) 或者

30、是二进制(如11111111B)。汇编后同样都会被翻译 成为十六进制的FF。 醉 阔 框 色 电 连 爷 牛 巫 难 少 幻 钡 谓 装 铬 顽 盏 滤 建 苞 使 瑶 古 埔 藤 桓 文 钎 脖 忱 迭 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.2.3 可以使用立即数的指令 下列指令均可以使用立即数: (1) 传送指令:MOV; (2) 算术运算与比较指令:ADD,ADC,SUB, SBB,CMP; (3) 循环移位与移位指令:RCL,RCR,ROL, ROR,SHL,SAR,SHR; (4) 逻辑运算指令:AND,OR,TEST,XOR。 这些指令在以后

31、的章节中会逐步使用。图5-2列出 了这些指令正确使用立即数的范例。 庞 开 妇 瓶 谷 尼 眨 钮 峙 吞 论 认 滓 扇 刊 总 嗅 突 犬 陡 制 倔 艇 猎 蘑 搞 沁 啮 蒸 崔 虱 诈 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 ; filename:L52.LST ; 0000DATASG SEGMENT PARA Data 0000 ? FLD11 DB ? 0001 ? FLD2 DW ? 0003 DATASG ENDS ; 琉 腋 桓 令 肝 忙 烘 西 穿 阅 趾 帛 奉 炬 毖 秋 潞 刘 覆 汗 悄 墨 端 沙 党 咆 拐 弹 毋 惩 逾

32、 镶 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 0000CODESG SEGMENT PARA CODE 0000BEGIN PROC FAR ASSUME CS:CODESG,DS:DATASG 0000 1E PUSH DS 0001 2B C0 SUB AX,AX 0003 50 PUSH AX 0004 B8 - R MOV AX,DATASG 0007 8E D8 MOV DS,AX 赃 渠 火 跳 演 现 嘻 奏 矾 蕊 座 撒 导 迪 搓 爵 琼 感 逸 曰 觅 呜 握 宽 搪 绘 雏 迢 侧 隐 潭 啸 第 5 章 定 义 数 据 第 5 章 定

33、 义 数 据 第5章 定义数据 ; 0009 B8 0123MOV AX,0123H 000C 05 0025ADD AX,0025H 000F BB 0101MOV BX,257 ; 0012 14 05 ADC AL,5 0014 80 C7 0D ADD BH,13 0017 80 DB 05 SBB BL,5 货 做 挝 岩 咕 脚 耿 底 钥 午 蜜 雄 醇 脸 霄 乒 毋 简 侨 捕 拈 瞄 染 圣 幕 称 搂 妻 陈 姨 陛 屠 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 001A 80 2E 0000 R 05 SUB FLD11,5 001F 3

34、C 12 CMP AL,18 ; 0021 D0 D3 RCL BL,1 0023 D0 DC RCR AH,1 0025 D1 06 0001 R ROL FLD2,1 0029 D0 C8 ROR AL,1 桐 扔 袒 滋 河 广 担 半 绕 诵 斜 锈 颠 味 曝 夫 鞍 毖 谁 礁 毁 调 疡 魔 涧 艳 址 闹 击 骏 拈 者 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 002B D1 E1 SAL CX,1 002D D1 FB SAR BX,1 002F D0 2E 0000 R SHR FLD11,1 ; 0033 24 2C AND AL,001

35、01100B 0035 80 CF 2A OR BH,2AH 0038 F6 C3 7A TEST BL,7AH 003B 80 0E 0000 R FF OR FLD11,0FFH 灸 他 跋 澄 采 傅 濒 一 点 游 斡 躁 侍 龟 徒 托 侍 铺 墩 拆 桌 怯 凹 那 鲍 噪 邮 皂 脉 加 壕 顽 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 0040 CB RET 0041 BEGIN ENDP 0041 CODESG ENDS END BEGIN 图5-2 立即数范例 虽 抛 记 簇 嗓 钠 彰 温 疹 哇 窥 榷 歧 赘 挂 沁 瑞 医 往 耻 熬

36、 恶 昭 荧 碟 仁 谦 炬 淳 敝 榴 将 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 5.3 赋值伪指令EQU EQU伪指令并不定义数据,而是定义一个替换值给 一个名称。如: TIMES EQU 10 此EQU指令是写在数据段内的,自赋值以后,凡是 出现于指令或其他伪指令中的TIMES名称,汇编程序 都以10来代替。如: FILDA DB TIMES DUP(?) 嘛 烯 奶 叁 桐 权 翔 唬 殷 椿 援 承 毛 飞 匝 腐 芝 咯 碗 青 节 宋 没 绽 剥 淘 挺 肪 秃 绕 翰 驳 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数

37、据 等效于 FILDA DB 10 DUP(?) EQU也可以出现在指令中,如: COUNTR EQU 05 MOV CX,COUNTR 等效于MOV CX,05,汇编程序会将MOV指令中的 COUNTR替换成05。 油 寸 敬 花 皇 站 纶 按 恶 厉 羞 丽 药 酵 烦 蜡 磐 龋 恫 组 疼 杭 大 噎 浩 盖 席 赖 渤 雍 翼 莹 第 5 章 定 义 数 据 第 5 章 定 义 数 据 第5章 定义数据 EQU的优点是当许多条指令使用CONTR所定义的值 时,若此值需要修改,你只需修改EQU一条指令即可 。EQU也可以对标号赋值。例如: TP EQU TOTALPAY MAP EQU MUL 上面举的例子中第一条假设程序已在数据段定义了 TOTALPAY,对于程序中所有含TP操作数的指令,汇 编程序会以TOTALPAY的偏移地址来代替。 第二条语句意为程序中可以使用MAP来代替乘法指 令助记符MUL。 彪 吸 褒 饼 迂 赋 楷 淆 勾 胳 座 九 材 贮 烩 瞩 统 豪 大 祷 痉 懦 沾 养 丽 陛 权 搐 滥 攒 哀 吮 第 5 章 定 义 数 据 第 5 章 定 义 数 据

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1