计原及汇编8.ppt

上传人:京东小超市 文档编号:6072905 上传时间:2020-09-05 格式:PPT 页数:80 大小:654KB
返回 下载 相关 举报
计原及汇编8.ppt_第1页
第1页 / 共80页
计原及汇编8.ppt_第2页
第2页 / 共80页
亲,该文档总共80页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计原及汇编8.ppt》由会员分享,可在线阅读,更多相关《计原及汇编8.ppt(80页珍藏版)》请在三一文库上搜索。

1、第八章 汇编语言 1 第八章汇编语言 一、概述 1.高级语言与汇编语言比较 高级语言:语句 变量说明/定义 int y,a=25,b=43,c=76; 给变量赋值 y=2(a+b)-c 汇编语言:指令 分配寄存器 分配存储单元 数据传递 2.汇编程序结构 p数据段 p堆栈段 p代码段 购 奢 萄 晦 凄 帧 陶 殖 勒 叭 量 宴 抬 搬 哎 老 释 淘 隅 翠 艺 磨 粉 踩 唇 缮 焰 条 馏 哲 馁 梢 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 2 ;设置数据段 DATA SEGMENT ADB25;数据A BDB43;数据B CDB76 ;数据C YDB? ;存

2、放结果 DATA ENDS ;设置堆栈段 STACK1 SEGMENTPARA STACK DW 20HDUP(0) STACK1ENDS 示例: y=2(a+b)-c 禾 蕉 亚 驾 良 启 虚 譬 柏 倾 傈 戍 戊 尝 形 负 札 襄 伙 柒 坐 籽 讽 赤 捡 洒 谤 唇 衅 陇 技 样 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 3 ;设置代码段 COSEGSEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACK1 START:MOV AX , DATA;装填段寄存器DS MOV DS , AX MOV AL , A;取数据A ADD A

3、L , B;计算(A+B) SALAL , 1;计算 2(A+B) SUBAL , C;计算 2(A+B)-C MOV Y , AL;存结果 MOV AH,4CH;结束用户程序,返回操作系统 INT21H COSEGENDS ENDSTART 示例: y=2(a+b)-c 墓 嘎 顿 豫 篇 未 楚 躬 鞋 烘 多 请 拖 磨 吾 策 夺 买 谣 锭 未 琐 嚎 臆 扳 档 恍 秋 松 揉 丑 惑 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 4 p汇编语言: 是汇编格式指令,伪指令的集合及其表示,使用这些 指令的一组规则。 p机器语言: 用二进制编码的机器指令的集合及一组

4、使用规则,它 是CPU能直接识别的唯一语言。 MOV DS,AX 汇编语言 8E D8 机器语言(目标代码) 汇编语言与机器语言 臣 钻 钻 胁 绑 淌 肢 晰 躺 塌 一 果 椅 阵 居 库 单 卖 压 讼 彩 援 膏 坚 尚 俭 若 踌 雹 盅 峪 形 计 原 及 汇 编 8 计 原 及 汇 编 8 汇编语言与目标代码的对应 00 19 2B 4C B8 XX XX 8E D8 A0 00 00 02 06 01 00 D0 E0 24 06 02 00 A2 03 00 B4 4C CD MOV AX, DATA MOV DS, DX MOV AL, A ADD AL, B 21 数据A

5、 数据B 数据C 数据Y 地 址 增 大 方 向 SALAL , 1 SUB AL , C MOV Y , AL INT 21H MOVAH,4CH 茫 击 鼠 此 纬 尤 开 统 斗 跪 秆 掣 洲 秧 及 痊 扇 食 科 遍 框 等 综 六 昏 巨 塌 蝴 榨 帧 奔 地 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 6 p与机器语言相关 p效率高 p编写源程序繁琐 p调试困难 汇编语言特点 情 销 劣 戌 柑 铝 苦 壕 辊 旁 轩 玲 碘 豪 粒 酮 淘 械 彝 逆 召 炼 明 呛 陷 檄 钨 陷 将 墟 晃 急 计 原 及 汇 编 8 计 原 及 汇 编 8 第八

6、章 汇编语言 7 p 对软件的执行时间或存储容量有较高要求的场合,如操 作系统的内核、工业控制领域、实时系统等。 p 在大型软件中某些影响系统性能的瓶颈程序或者频繁 使用的子程序可以采用汇编语言编程。 p 与硬件资源密切相关的软件程序,如设备驱动程序。 p 没有合适的高级语言去开发的程序。 汇编语言的用途 蔚 余 撑 慨 蝎 掐 壳 袁 虫 除 表 理 倔 攘 穿 闽 垄 帕 亡 韭 顷 曼 几 栓 拜 骗 肢 鸣 效 嫉 膝 卞 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 8 二、汇编语言语句种类 语句种类 指令语句: 又叫可执行语句,在汇编时产生一个目标 代码, 对应

7、机器的一种操作。 伪指令语句:又叫命令语句。用于指示汇编程序如何 汇编源程序,除了数据定义语句之外,没有目标代码 与之对应。 宏指令语句:由用户自定义的指令。(指令的扩展) 惋 缅 右 蛊 驹 锣 赢 老 贿 囊 猛 拾 辉 宠 悬 叫 架 响 随 缀 绑 沁 叉 辗 恬 瞪 惫 汗 肪 亮 镣 婆 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 9 格式: 名字 操作符 操作数 ; 注释 指令语句: 标号: 助记符 操作数,操作数;注释 伪指令语句:名字 定义符 参数,.,参数 ;注释 命名规则: p可以用 ?,_$,数字和英文字符。 p名字的第一个字符不能是数字。 p名字

8、的长度不受限制,但只有前31个字符有效。 p不允许用保留字作名字(指令、伪指令、寄存器名) 。 二、汇编语言语句格式 报 财 拍 归 植 做 纵 娜 婶 宝 起 枯 篡 飞 料 罪 造 也 禾 耻 侣 憨 嫩 选 猿 辈 讯 即 饲 击 讽 教 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 10 MASM宏汇编保留字 汇编 指令 AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD CLI CMC CMP CMPS CWD DAA DAS DEC DIV ESC HLT IDIV IMUL IN INC INT INTO IRET JA

9、JAE JB JBE JCXZ JE JG JGE JL JLE JMP JNA JNAE JNB JNBE JNE JNG JNGEJNL JNLE JNO JNP JNS JNE JO JP JPE JPO JS JZ LAHF LDS LEA LES LOCK LODS LOOP LOOPE LOOPNE LOOPNZ LOOPZ MOV MOVS MUL NEG NOP NOT OR OUT POP POPF PUSH PUSHF RCL RCR REP REPE REPNE REPNZ REPZ RET ROL ROR SAHF SAL SAR SBB SCAS SHL SHR ST

10、C STD STI STOS SUB TEST WAIT XCHG XLAT XOR 抒 仲 愧 涂 械 泪 矾 犹 男 娘 炸 弗 刃 难 志 掖 犁 媚 墅 横 训 白 腋 项 诉 尖 芜 关 镊 遵 玫 啃 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 11 寄存器名 AH AL AX BH BL BX CH CL CX DH DL DX CS DS ES SS BP DI SI SP 伪指令 ASSUME CODE MACRO DB DD DW END ENDM ENDP ENDS EQU EXTRN GROUP LABEL MODROM NAME NOSEGFIX

11、 ORG PROC INCLUDE PUBLIC PURGE RECORD SEGFIX SEGMENT 操作 符及 其他 ABS AT BYTE COMMON DUP EQ FAR GE GT HIGH LEN LE LENGTH LOW LT MASK MEMORY MOD NE NEAR NOTHING OFFSET PAGE PARA PREFIX PTR SEG SHORT SIZE STACK THIS TYPE WIDTH MASM宏汇编保留字 境 簧 恃 险 诡 颁 驰 访 题 鸭 鞍 羚 啮 溢 桌 焚 研 皋 致 栋 溢 六 恃 聂 挖 缝 咯 贸 我 枣 嗓 契 计 原

12、及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 12 三、符号定义语句 1. 等值语句 格式: 符号 EQU 表达式 表达式:常数或数值表达式 地址表达式 变量或标号 CONST EQU 10 ADR1 EQU DS:BP+14H ADR2 EQU CONST +10 COUN EQU VAR 为变量名VAR另定义一个别名 p 同一符号不能用EQU重新定义。 p 汇编时,作为替代符号用,不产生目标代码,不占 有存储单元。 根 竞 沮 姓 硕 内 誉 丛 锐 秉 氧 楼 狙 让 惠 以 即 连 距 营 弊 戊 屋 坎 铬 妥 临 趴 戮 羽 咨 氦 计 原 及 汇 编 8 计 原 及

13、汇 编 8 第八章 汇编语言 13 2. 等号语句 格式: 符号 = 表达式 CONT=5 NUM=10H NUM=NUM+20H COUNT=VAR;COUNT是变量VAR的别名 COUNT=NUM ;COUNT是常数NUM的别名 表达式形式同上,但可多次重新定义同一符号。 三、符号定义语句 帆 辈 欣 栋 星 瘸 羌 次 喜 亩 领 贬 棉 民 栋 淋 办 忧 寝 纷 斌 咳 涩 善 豁 叠 极 捌 猜 摊 鸭 踪 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 14 四、数据定义语句 基本格式:基本格式: DB 变量名变量名 DW 表达式表达式1, 1,表达式表达式2,

14、. 2,. DD 保留存储空间,并可以完成数据的初始化。 字节BYTE1 字WORD2 双字DWORD4 四字QWORD8 十字节TBYTE10 DB DW DD DQ DT 窥 坚 掐 而 柱 展 颠 诲 瞪 杜 院 淬 诗 师 膝 醋 间 另 解 傻 挽 认 驶 鹅 氨 陶 惑 氮 胸 笆 将 恩 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 15 例: DATASEGMENT DA1DB9AH DA2DW5678H DA3DD12345678H DATAENDS 变量的属性: 段属性 偏移属性 类型属性 四、数据定义语句 格式: 变量名 DB/DW/DD 表达式1,表

15、达式2,. 蝉 故 限 洱 栽 啤 凶 昌 蔬 彻 尹 席 婉 牲 硅 抓 囚 卸 鲸 被 惮 某 省 滑 股 赃 诫 莹 揣 贴 安 萎 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 16 格式: 变量名 DB/DW/DD 表达式1,表达式2,. 表达式: (1)数值 DA_BYTE1DB50H DA_BYTE2DB10H,20H,30H,40H DA_WORD1DW0A34H DA_WORD2DW1234H,5678H,9ABCH DA_DWORDDD12345678H,9ABCDEFH 四、数据定义语句 崔 乡 卒 跟 滑 众 惟 绰 崖 斜 殷 益 额 骡 杉 凸

16、咽 鞍 弊 土 蓄 屈 悉 斑 体 提 毅 鹊 笑 前 谎 肌 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 17 格式: 变量名 DB/DW/DD 表达式1,表达式2,. 表达式: (2)字符/字符串 p字符串必须用引号括起来 pDB时一个字符串可以连续书写小于255个字; pDW、DD时每一个字符串表达式由12个字符构成; STRING1DBSTRING STRING2DWST,RI,NG STRING3DDST,RI,NG 四、数据定义语句 善 易 烙 柯 泥 篮 滔 楚 例 蹦 赌 哥 阿 允 辽 娘 吩 几 渗 貌 割 汇 识 霉 柳 竭 俺 凸 番 婆 生 冤

17、计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 18 STRING153 54 52 49 4E 47 54 53 52 49 4E 47 STRING2 54 53 52 49 4E 47 STRING3 00 00 00 00 00 00 STRING1 DBSTRING STRING2 DWST,RI,NG STRING3 DD ST,RI,NG 字符串定义举例 祸 刘 筑 傻 乔 远 剔 秩 忧 弥 棺 枷 贩 剑 主 验 玩 蝇 止 衰 弟 吭 瞄 泉 而 郝 荚 封 腮 体 售 哼 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 19 格式: 变

18、量名 DB/DW/DD 表达式1,表达式2,. 表达式: (3)?表达式:分配相应数量的存储单元,但不初始化。 DA_BYTE3DA_BYTE3DBDB?,?,? DA_WORD3DA_WORD3DWDW?,?,? 四、数据定义语句 蹲 嘲 佛 酵 娘 独 逞 酬 呸 靶 绸 妖 啸 惨 京 聘 圆 农 稻 操 邱 栋 逼 哆 彪 引 智 准 潍 井 雾 慈 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 20 格式: 变量名 DB/DW/DD 表达式1,表达式2,. 表达式: (4)带带DUPDUP的表达式的表达式 DA_B1DB10H DUP(?) DA_B2DB20H

19、DUP(ABCD) DA_W1DW10DUP(4) DA_W2DW10DUP(-1,1) 操作符DUP可以嵌套使用: DA_B3 DB 10H DUP(4 DUP(3),8) 四、数据定义语句 钳 名 物 纶 淌 蕾 疯 灼 煞 遥 释 虏 撇 模 汽 恳 挎 至 狠 娇 棉 审 底 酿 栈 慈 投 矮 私 雷 饺 茬 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 21 1.常数 数值常数:二、八、十、十六进制 B,O,D,H 字符串常数 (1)在指令语句的原操作数中作立即数. MOV AL, 0A9H MOV BX, AB (2) 存储器操作数的寻址方式中作位移量。 MO

20、V AL, DS: 340H (3)在数据定义语句中,对存储单元预置初值。 DB 12H, 34H 五、汇编语言数据与运算符 菩 励 晤 韶 褥 垫 伦 缅 埔 天 牙 屉 足 椿 惊 机 久 杀 锹 救 芯 庇 石 扔 驱 课 满 欢 羡 闸 塘 剐 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 22 2. 变量 (1) 用数据定义语句定义并预置初值后,变量代表存储单元的数 据,并作为该单元的符号地址。 例如在某数据段已定义一变量: DATA_VAR DB 40H DUP (?) 几种含有变量名的地址表达式为: 直接寻址:DATA_VAR+08H 基址变址寻址: DATA

21、_VAR BX DI p地址表达式的值:存放操作数的存储单元偏移量。 p地址表达式的类型:同变量名的类型。 五、汇编语言数据与运算符 疟 京 站 荡 毒 坝 徊 达 抵 四 屉 萌 睬 葵 懒 怂 秤 跋 涎 腔 驯 籍 臻 召 茅 盈 蜀 襄 塌 耙 员 项 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 23 2. 变量 (2)在用DW或DD的数据定义语句中,若操作数字段引用了 变量名,则在分配的存储单元中,预置被引用的变量名 的地址部分:偏移量、段基值 NUM1DB10HDUP (?) NUM2DW10HDUP (?) ARRAYDB10HDUP (ABCD) ADR1

22、DWARRAY ADR2DDARRAY 五、汇编语言数据与运算符 仍 伶 奋 糙 智 旁 昧 陆 玛 驴 掠 隙 魏 酗 莽 距 肯 牌 即 莉 焙 饭 椒 估 娩 箔 趟 鲸 味 遵 训 歹 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 24 3. 标号:一条指令的符号地址。 n 段属性 n 偏移属性 n 类型属性 p NEAR:段内转移,作为标号所在段的转移、 调用指令的目标地址。 p FAR:段间转移,作为其他段的转移、调用 指令的目标地址。 类型属性设置: (1)隐含方式:NEXT:MOV AX, 3000 五、汇编语言数据与运算符 酌 菱 艺 途 对 周 窘 搔

23、赖 铲 派 除 所 惊 稼 圾 裂 跟 号 初 忻 铱 涟 驯 妈 而 菇 抡 皇 镑 奋 滓 计 原 及 汇 编 8 计 原 及 汇 编 8 (2)用LABEL伪指令设置类型属性: 标号伪指令LABEL格式: 名字 LABEL 类型 p 与指令语句配合使用: 名字(新标号) LABEL 类型(NEAR/FAR) SUB1_FAR LABEL FAR SUB1: MOV AX,1234H p 与数据定义语句配合使用: 名字(新变量名)LABEL 类型(DB/DW/DD) DATA _BYTE LABEL BYTE DATA _WORD DW 20H DUP(563H) 五、汇编语言数据与运算符

24、 瘪 二 楔 追 举 淮 居 友 蓖 鹃 暗 柱 堤 嫂 敢 鳖 祷 竿 掣 那 挽 汐 懂 潭 酵 衣 伊 宇 哟 衣 刘 憋 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 26 运算符 + + * / MOD SHR SHL 运算格式运算功能 +表达式 表达式 表达式1 + 表达式2 表达式1 表达式2 表达式1 * 表达式2 表达式1 / 表达式2 表达式1 MOD 表达式2 表达式1 SHR 次数 表达式1 SHL 次数 正数(单项运算符) 负数(单项运算符) 加法 减法 乘法 除法(取商) 模除(取余数) 右移 左移 (1)算术运算符 4. 运算符 只有减法运算可

25、以用同一段内的两个变量相减 五、汇编语言数据与运算符 兔 绅 靴 羚 快 却 么 范 逮 旗 官 浆 伪 溢 书 绿 缓 毛 绘 梨 罚 晰 子 诞 宰 然 招 窄 靶 尺 夺 驰 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 27 NUM = 15*5 ;NUM=75 NUM = NUM/8;NUM=9 NUM = NUM MOD 5;NUM=4 NUM = -NUM-6;NUM= -10 NUM = -NUM;NUM= 10 ORG 30H ;下面定义数据的起始偏移是30H DA1DBABCDEFGH DA2DBIBM PC COMPUTER COUNTEQUDA2 -

26、 DA1 ;38H-30H=8 DA3EQUDA2+4 铺 钵 既 陵 柱 背 榴 晓 推 午 梳 朱 颗 囚 堪 逐 硒 陪 侈 憎 报 亏 笺 郡 莉 趣 祷 敷 母 所 言 侩 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 28 NUM=11011011B DATA1 DWNUMSHL 3 , NUM SHR 2 . MOVAX , NUM SHL 3 MOVBX , NUM SHR 2 MOVCX , NUM SHL 8 MOVCX , NUM SHL 16 MOVDX , NUM SHR 8 MOVDX , NUM SHR 16 DATA1DW6D8H , 36H

27、 . MOVAX , 011011011000B MOVBX , 00110110B MOVCX , 1101101100000000B MOVCX , 0 MOVDX , 0 MOVDX , 0 闹 劳 夜 斟 颤 捶 亿 勺 矽 遮 胳 事 享 黍 惨 匿 尝 镀 邯 气 摔 固 室 宿 艺 宿 均 扳 鸳 衰 迁 视 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 29 算术运算符 p移位运算符和移位指令区别 p移位运算符不能对寄存器或存储单元进行移位运算 MOV AX,CX SHL 5 MOV DX,DATA1 SHR 3 五、汇编语言数据与运算符 干 兽 肚 帘 楚

28、 隆 曼 掷 镊 遮 札 备 爹 败 要 傅 眩 迪 侠 呼 愈 输 汾 策 睫 可 沃 捕 廊 姆 宽 件 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 30 运算符 NOT AND OR XOR 运算格式运算功能 NOT表达式 表达式1 AND 表达式2 表达式1 OR 表达式2 表达式1 XOR 表达式2 逻辑非 逻辑与 逻辑或 逻辑异或 (2)逻辑运算符 五、汇编语言数据与运算符 4. 运算符 江 远 泰 漳 祈 榷 哑 闯 卞 穴 当 烹 矫 酬 疏 菩 窄 球 述 令 史 太 鱼 慧 眶 墒 癣 帽 乾 永 篆 晚 计 原 及 汇 编 8 计 原 及 汇 编 8

29、 第八章 汇编语言 31 MOV AL , NOT0F0H MOV DX , NOT0F0H MOV BL , 55H OR 0F0H AND BH , 55H AND 0F0H XOR CX , 55H XOR 50H MOV AL , 0FH MOV DX , 0FF0FH MOV BL , 0F5H AND BH , 50H XOR CX , 5 缕 恶 粮 捷 竣 毡 瞥 烁 储 淄 羊 井 姿 貌 姥 劫 句 肮 攫 港 工 毫 梆 点 渴 兆 潮 素 雹 尹 委 柜 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 32 运算符 EQ NE LT LE GT GE

30、运算格式运算功能 表达式1 EQ 表达式2 表达式1 NE 表达式2 表达式1 LT 表达式2 表达式1 LE 表达式2 表达式1 GT 表达式2 表达式1 GE 表达式2 两个表达式相等为真 两个表达式不相等为真 表达式1 表达式2为真 表达式1 表达式2为真 表达式1 = 表达式2为真 (3)关系运算符 全1为真,全0为假 比较时,若为常数按无符号数比较,如果是变量 按偏移量比较 五、汇编语言数据与运算符 憨 讳 细 努 虎 丽 律 榆 程 块 船 树 嗜 河 矮 蜒 孽 异 勒 循 狙 额 侵 贪 购 挂 旺 谁 聊 材 座 床 计 原 及 汇 编 8 计 原 及 汇 编 8 DATA

31、SEGMENT ORG 10H NUM1=1234 NUM2=1234H DA_BYTE DB10HDUP(0) DA_WORDDW10HDUP(0) DA_VAR1DW NUM2+DA_BYTEGT NUM1+DA_WORD DA_VAR2DBNUM1 LE NUM2 DATA ENDS . MOV AX , NUM1 LT NUM2 MOV BL , NUM1 GE NUM2 MOV CX , DA_WORD GT DA_BYTE 海 葛 尺 校 蛋 弹 崎 乓 巢 收 谅 谁 厕 熟 刊 吮 拷 踩 帧 酬 之 熄 督 仔 晕 孝 浊 歹 涧 鲜 啊 数 计 原 及 汇 编 8 计 原

32、及 汇 编 8 第八章 汇编语言 34 . DA_VAR1 DW0FFFFH DA_VAR2 DB0FFH . MOVAX , 0FFFFH MOVBL , 0 MOV CX , 0FFFFH . 可以对两个常数进行比较,不能用常数与偏移量进行比较 死 叙 飞 雍 心 红 牵 诞 介 悬 氰 牟 扒 孤 椎 舀 星 蔬 奔 涅 七 毋 贼 住 忆 升 焦 击 熊 嘘 芬 蛔 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 35 格式: 运算对象是存储器操作数,由变量名或标号组成地 址表达式 nSEG : 返回变量所在的段值 nOFFSET:返回变量所在偏移 nTYPE:返回变

33、量的类型 nLENGTH:返回数组变量的元素个数 nSIZE:返回数组变量所占的总字节数 SIZE= TYPE* LENGTH (4)数值返回运算符 五、汇编语言数据与运算符 牟 妆 就 搐 厚 厉 组 画 蓝 霉 球 驼 垫 仪 洛 亭 砍 蜂 禹 善 蓉 涛 衙 政 踞 军 保 宗 率 臂 肉 埔 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 36 假设DATA的段基值是7A4EH DATASEGMENT ORG 30H DA1DB20HDUP(12H) DA2DWDA1 . DATAENDS . MOV AX , SEGDA1 MOV BX , SEGDA2 MOV

34、SI , OFFSET DA1 MOV CX , DA2 MOV DI , OFFSET DA2 MOV DX , OFFSET DA1+4 MOV AX , 7A4EH MOV BX , 7A4EH MOV SI , 30H MOV CX , DA2 MOV DI , 50H MOV DX , 34H 磁 烹 烧 官 签 省 蹈 涕 旭 搽 娟 奥 冈 核 微 析 俺 舅 旬 倦 凌 岿 军 贸 袒 虚 申 独 坎 迁 浑 阎 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 37 TYPE 运算符 变量 标号 类型属性运算结果 BYTE WORD DWORD 1 2 4 N

35、EAR FAR -1 -2 用数字形式表示变量和标号的类型属性 五、汇编语言数据与运算符 (4)数值返回运算符 扶 恐 譬 敢 晒 磊 诛 缉 酞 肩 医 握 稿 兢 盟 堵 傈 舍 樊 钱 便 酉 浓 顿 颤 鼠 肆 俭 碉 撅 滩 背 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 38 DA_BYTE DB 12H DA_WORD DW 3456H DA_DWORD DD789AH . MOVAL , TYPE DA_BYTE MOVBL , TYPE DA_WORD MOVCL , TYPE DA_DWORD . MOVAL , 1 MOVBL , 2 MOVCL ,

36、 4 肩 柞 雍 者 霉 节 捆 椎 抱 拖 浮 悍 堡 草 萍 霓 皂 融 籽 妓 蒋 荒 琳 湛 妨 倍 擦 揪 面 燥 讣 闯 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 39 LENGTH与SIZE运算符 pLENGTH运算符 返回数组变量的元素个数 如果变量用DUP定义,Length为外层DUP的值 如果没有DUP定义,结果为1 pSIZE运算符 数组变量所占的总字节数 SIZE是LENGTH和TYPE的乘积 五、汇编语言数据与运算符 (4)数值返回运算符 贮 烽 裤 原 谤 氛 儡 裁 暴 坡 八 紧 舷 镜 栅 顽 隅 罗 振 白 寓 桌 账 浊 焕 电 誊

37、 妊 山 遵 踞 符 计 原 及 汇 编 8 计 原 及 汇 编 8 DATASEGMENT VAR1DB10HDUP(0) VAR2DB10H,20H,30H,40H VAR3DW10HDUP(A, 4 DUP(3) VAR4DBCOMPUTER DATAENDS . MOV AL , LENGTHVAR1 ; MOV AH , SIZEVAR1 ; MOV BL , LENGTHVAR2 ; MOV BH , SIZEVAR2 ; MOV CL , LENGTHVAR3 ; MOV CH , SIZEVAR3 ; MOV DL , LENGTHVAR4 ; MOV DH , SIZEVAR

38、4 ; (AL)=10H (AH)=10H (BL)=1 (BH)=1 (CL)=10H (CH)=20H (DL)=1 (DH)=1 吴 素 聊 瓜 突 顶 挑 型 存 碌 汉 侵 两 倒 任 工 博 如 伊 禹 从 藐 房 琴 帐 烫 阳 瘴 超 淡 裹 腋 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 41 求数组ARRAY的各数据项的累加和,从数组最 后一个数据项开始进行累加。 ARRAYDW20H DUP(4) . XOR AX , AX MOVSI , OFFSET ARRAY ADD SI , SIZE ARRAY-TYPE ARRAY MOVCX , LEN

39、GTH ARRAY LOP:ADD AX , SI SUB SI , TYPE ARRAY LOOPLOP 例: 爆 棕 害 乳 逸 淬 享 楷 逃 讲 侮 钒 董 舒 锋 骗 识 艇 近 襟 漾 却 隙 嘶 廷 楞 赦 酶 灶 卢 莉 片 计 原 及 汇 编 8 计 原 及 汇 编 8 (5)属性运算符 PTR: 类型 PTR 地址表达式 类型可以是:BYTE ,WORD,DWORD 或NEAR FAR 仅在当前语句中有效,是一种临时设置。 DA_BYTE DB 20H DUP(0) DA_WORD DW 10H DUP(0) MOV WORD PTR DA_BYTE 10, AX ADD

40、BYTE PTR DA_WORD DI, BL INC BYTE PTR SI SUB WORD PTRBX,30H JMP FAR PTR SUB1 五、汇编语言数据与运算符 满 虾 态 譬 打 燃 期 昼 尸 怎 洁 根 钒 初 杠 晰 庙 鹊 配 殃 藻 垣 杨 藉 长 萧 宠 呻 物 秤 边 油 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 43 THIS:THIS 类型 THIS常与等值语句EQU一起用,形成新变量名或标号,使 它们具有THIS后所指的类型,而段基值和偏移量与紧接 的变量名或标号相同。 例: DATA _BYTE EQU THIS BYTE DAT

41、A _WORD DW 20H DUP(0) JUMP_FAR EQU THIS FAR JUMP_NEAR : XOR AX, AX 五、汇编语言数据与运算符 (5)属性运算符 隙 渡 烟 票 胜 铁 浇 惨 衣 坏 屉 潞 主 陈 孝 猫 赊 怔 淋 羊 吹 武 勋 营 峻 兢 末 箕 熙 迈 境 巨 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 44 (6)分离字节运算符 HIGH 表达式 LOW 表达式 p分离运算对象的高字节和低字节部分 p表达式必须具有常量值,如常数、地址表达式, 不能是存储器操作数或寄存器内容 五、汇编语言数据与运算符 泡 监 粳 卜 娜 次 辩

42、 礼 炳 邦 侍 圃 菌 吩 而 闽 耀 冻 系 投 袁 莫 组 郑 沦 遗 芬 专 宠 记 找 沧 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 45 DATASEGMENT ORG 20H CONSTEQU0ABCDH DATA1DB10HDUP(?) DATA2DW20HDUP(?) . DATAENDS . MOV AH , HIGHCONST MOV AL , LOWCONST MOV BH , HIGH(OFFSETDATA1) MOV BL , LOW(OFFSETDATA2) MOV CL , LOW(CONSTSHL3) MOV AH , 0ABH MOV

43、 AL , 0CDH MOV BH , 0 MOV BL , 30H MOV CL , 68H 阐 闭 辰 湘 匪 巾 服 亏 聊 装 简 命 臀 敌 么 蔓 课 殿 翻 甘 羔 某 结 厨 猎 摔 移 铣 篓 胸 都 哈 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 46 优先级别 (最高) 1 2 3 4 5 6 7 8 9 (最低) 10 运算符 LENGTH , SIZE PTR , OFFSET, SEG , TYPE , THIS HIGH , LOW +, (单项运算符) * , / , MOD , SHR , SHL + , EQ , NE , LT , L

44、E , GT , GE NOT AND OR , XOR (7)运算符的优先级 五、汇编语言数据与运算符 处 服 奋 灾 陌 摊 篮 矮 崎 忠 虾 失 疏 帕 翔 莉 蒜 课 影 廊 勃 疽 莎 麦 懈 胡 感 里 凯 缴 痴 乡 计 原 及 汇 编 8 计 原 及 汇 编 8 六、段结构伪指令 1. 段定义伪指令 段名 SEGMENT 定位类型 组合类型 类别名 . 段名 ENDS 定位类型(Align Type): PAGE(页):本段从一个页的边界开始,起始地址能被 256整除。 PARA(节):本段从一个节的边界开始,起始地址能被 16整除。 WORD(字):本段从偶字节地址开始。

45、BYTE(字节):本段从任意地址开始。 辛 丈 刮 渴 嚣 诗 受 泵 震 辟 秸 簧 强 足 食 亿 赦 示 芥 朴 瞎 瘟 涪 敛 妻 孟 吃 呛 残 仰 蜜 钨 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 48 组合类型(Combine Type): nNONE:本段与其它段无连接关系,是独立的。 nPUBLIC:本段与其它同段名同类型的段相连接 在一起,然后为所有这些段指定一个共同的段基地 址,形成一个新的逻辑段。 nCOMMON:本段与其它同段名同类型的段设置 相同的段基址,共享相同的存储区,段长度由同名 段中最大的段确定。(覆盖段) 六、段结构伪指令 1. 段

46、定义伪指令 源 洒 贫 岔 龟 砸 账 圃 庄 持 搏 屠 穿 矗 岳 黄 铲 烽 弗 粮 纽 灯 商 弟 疯 狸 料 捻 没 衔 搐 增 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 49 组合类型(Combine Type): nSTACK:与PUBLIC段相似,但此段为堆栈段,系统自 动对SS寄存器和SP指针初始化。 nAT表达式:本段的起始单元可以定位在表达式所示的节 边界上。 nMEMORY:本段定位在所有其它段的最高地址,有多个 段,只把第一遇到的当作此段。 类别名(Class) 六、段结构伪指令 1. 段定义伪指令 眯 漫 浑 靳 田 薄 捉 剔 仗 询 孕

47、终 烂 击 果 敌 兜 袁 桩 酒 劳 糙 卵 询 飘 呸 风 坐 碰 泅 纳 绥 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 50 2. 段寻址伪指令 ASSUME 段寄存器名:段名,段寄存器名:段名,. DS_DATA SEGMENT VAR1 DB 12H DS_DATA ENDS ES_DATA SEGMENT VAR2 DB 34H ES_DATA ENDS CODESEGMENT VAR3DB56H 六、段结构伪指令 播 曼 皱 贝 恍 楔 嚣 钢 与 发 膛 农 雌 猴 愚 卑 冒 槐 仆 割 燃 缸 拖 芦 换 扳 羚 俞 拿 抑 鲁 架 计 原 及 汇 编 8 计 原 及 汇 编 8 第八章 汇编语言 51 ASSUMECS:CODE , DS:DS_DATA START:. . INC VAR1 INC VAR2 INC VAR3 . CODEENDS END START 可用关键字NOTHING取消前面的某些设置。 例: ASSUME DS:NOTHING;取消对DS的设置 ASSUME NOTHING; 取消全部4个段R的设置 接上篇

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

当前位置:首页 > 其他


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