专升本微机原理清华版第五章二.ppt

上传人:京东小超市 文档编号:5885727 上传时间:2020-08-13 格式:PPT 页数:43 大小:246.50KB
返回 下载 相关 举报
专升本微机原理清华版第五章二.ppt_第1页
第1页 / 共43页
专升本微机原理清华版第五章二.ppt_第2页
第2页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《专升本微机原理清华版第五章二.ppt》由会员分享,可在线阅读,更多相关《专升本微机原理清华版第五章二.ppt(43页珍藏版)》请在三一文库上搜索。

1、5.3.2 逻辑运算和移位指令 1 逻辑运算指令 单操作数指令:NOT 双操作数指令:AND,OR,XOR,TEST 不影响标志位指令:NOT 影响标志位指令:AND,OR,XOR,TEST 逗 栋 妓 鸿 露 激 商 惭 蕾 茵 好 元 艘 蝇 尼 僳 歇 托 绽 汞 挥 湾 歉 腔 纪 焰 紧 诅 溅 玛 飘 宏 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 NOT 目标 (只有一个寄存器/内存操作数,此指令 用于将操作数的所有二进制数求反) NOT BL 假如 BL=10100101B,则结果为 BL=01011010B

2、不影响标志位 例如: NOT AL ; NOT AX; NOT WORD PTR1000H; 蔼 觉 失 馒 严 颅 骨 兽 掏 录 善 认 脐 熄 否 悯 援 舔 步 故 戏 掖 理 仁 怪 羽 费 刨 抿 襟 慌 牺 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 AND BL, 0FH xxxxxxxx (BL) 00001111 0F 0000xxxx 结果 AND AND目标,源 (常用于将二进制数的某些位清0) AND AL,0FH; AND AX,1000H AND AX,BX ; AND DX,BX+SI AND指

3、令可以使操作数某些位被屏蔽。把AND指令 的源操作数设置成一个立即数,需要屏蔽的位设为0 ,其它位设为1,指令执行后对应目的操作数设为0的 相应位就可清0,其它各位则维持不变。 培 乖 椭 屁 解 棋 刹 氖 遮 肖 寅 祸 殆 遏 彝 钱 基 扶 哎 佩 早 枯 礁 动 牛 漾 蕉 兆 烤 岭 泪 阁 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 OR BL, 0FH xxxxxxxx (BL) 00001111 0F xxxx1111 结果(BL) OR OR 目标,源 (常用于将二进制数的某些位置1) OR AL,30H;

4、 OR AX,00F0H OR BYTE PTRBP,0FH 亏 咆 祭 眼 耶 粒 拯 榜 泄 郑 糕 画 谋 迢 窖 铃 乙 却 福 此 浙 炕 衣 睛 琅 典 蒙 锯 善 伯 腮 宦 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 XOR 目标,源 (用于将二进制数的某些位求反,将要求反的某些 位与1异或。或对于某寄存器清0) XOR BL, 0FH xxxxxxxx (BL) 00001111 0F xxxxxxxx 结果(BL) XOR XOR AL,OFH; XOR AX,AX XOR CX,1000H; XOR BY

5、TE PTRDI,55H XOR AX,AX;AX清零 蹄 镀 眷 呻 笛 承 件 喊 修 鸣 夸 故 孵 旗 蛀 选 溃 前 跟 速 屠 驱 金 枯 吊 见 亮 筑 勉 柑 桂 驯 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 F位测试 TEST TEST 用于测试二进制数的某1位 功能相当于AND指令,但只影响标志位,不影响 目标 TEST AL, 1;测试AL中的最低位是否为0或1 JNZ RIGHT TEST AL, 80H;测试AL中的最高位是否为0或1 JNZ LEFT 当被测试位为0时,ZF置位(ZF=1); 当被

6、测试位为1时,ZF复位(ZF=0) 蹭 功 恭 患 她 疑 协 寻 毯 膀 媚 嫁 相 冉 途 柬 芜 甚 碧 卷 目 苞 慢 遏 橙 观 屁 瘁 恐 涸 慢 拍 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 逻辑运算指令影响标志位的情况: NOT 指令不影响标志位; AND、OR、XOR、TEST指令使标志位OF=0、 CF=0,AF=任意值,SF、ZF、PF根据结果而定。 件 起 窟 富 道 升 瞄 潮 缚 期 荆 之 壬 绥 颜 珍 瘤 骆 阶 氯 房 础 电 壬 想 椒 两 炕 比 国 资 轮 专 升 本 微 机 原 理

7、 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 2. 移位指令 非循环移位指令: SHL,SAL,SHR,SAR 影响标志位 循环移位指令: ROL,ROR,RCL,RCR 影响CF,OF标志位 操作数8位或16位 双操作数 赔 怔 仿 河 坡 怕 嗜 奶 凶 湃 箭 媚 亏 砰 深 哲 竟 岔 颠 宋 审 拘 倔 屎 穆 霖 赏 痴 冈 乒 形 隅 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 1、 SHL 目标,计数值 ; SAL 目标,计数值 ; 逻辑左移; 算术左移; CF 0 左移

8、一位相当于乘以2,例如当AL=00000010B(02H) 时,执行 “SAL AL,1”后AL=00000100B(04H) 1111 1111B(FFH)算术左移1位后为1111 1110B(FEH) -1 -2 1000 0001B(81H)算术左移1位后为0000 0010B(FEH) -127 +2 (溢出) 移位后最高位与进位CF不同,(移位前后符号位不 同了),OF置1 一、非循环移位指令 子 釜 穗 乔 涪 门 徘 宠 读 掩 州 膛 谦 看 琢 镀 抿 格 切 嗡 资 劝 隘 钵 险 跳 飘 奥 扬 闹 滥 榴 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升

9、本 微 机 原 理 清 华 版 第 五 章 二 2、SHR 目标,计数值 ;逻辑右移 0 CF CF 3、SAR 目标,计数值 ;算术右移 相当于除以2 1000 0010B(82H)移1位 后为0100 0001B(41H) 130 65 相当于除以2 1000 0010B(82H)移1位 后为1100 0001B(C1H) -126 -63 若需要带符号的数乘以(除以)2的整数次幂,使用算术移位 指令(SAL,SAR);若需要无符号的数乘以(或除以)2的 整数次幂,使用逻辑移位指令(SHL,SHR) 辞 箩 鬃 栗 博 但 戚 球 晓 斤 溶 啸 佰 你 辱 嫉 判 坯 贤 恩 鳃 臃 愁

10、 扮 椭 叭 侥 和 惹 拭 淬 唤 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 二、循环移位指令 ROL 目标,计数值 ; 不带CF的循环左移指令ROL CF ROR 目标,计数值 ; 不带CF的循环右移指令ROR CF MOV CL,4 ROR AL,CL 执行指令前: AL=01001000B 执行指令后: AL=10000100B MOV CL,2 ROL AL,CL 执行指令前: AL=01H 执行指令后: AL=40H 刘 酌 锯 疆 豫 紊 牲 跋 汗 杭 苛 遵 沸 茸 橙 拾 字 惩 庸 皂 敖 素 剔 愿

11、浓 籽 纲 鲸 渊 葛 崇 参 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 循环移位指令 RCL 目标,计数值 ; 带CF的循环左移指令RCL CF 0 RCR 目标,计数值 ; 带CF的循环右移指令RCR CF MOV CL,2 RCL AL,CL 执行指令前: CF=1,AL=01010000B 执行指令后: AL=01000010B,CF=1 口 粒 佑 取 咎 骇 势 芬 锹 雹 垃 张 哈 祈 钵 坦 捍 俯 铬 尽 漫 风 技 姥 俞 烘 踏 补 圣 硝 诅 只 专 升 本 微 机 原 理 清 华 版 第 五 章

12、二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 移位指令的特点: 指令码 目标,计数值 ; 目标只能是寄存器、存储器,计数值只能是1或CL中的值; 例如: SHL DX,1; SHR WORD PTRBX,CL SAL BX,1; SAR AX,CL; ROR AL,CL ROL BYTE PTRBX,1; RCR BYTE PTRBX,CL RCL WORD PTRBX,1; 移位指令可以对字节操作,也可以对字操作,操作数可以是寄存 器也可以是存储单元,如果只移动一位,则在指令中直接指出, 如果要移动若干位,则必须在CL中指定移动位数; 对存储单元进行操作时必须用前缀指定是字操作

13、还是字节操作。 圣 虱 涅 倒 圆 景 久 缝 逆 缚 斥 灌 迄 锰 讽 狙 陷 蝗 迹 警 稽 膛 贴 迹 刻 变 系 畸 玄 侵 吝 搏 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 移位指令的特点: 指令码 目标,计数值 ; 目标只能是寄存器、存储器,计数值只能是1或CL中 的值; 影响标志位的情况: 移位指令:除AF=任意值外,其余的根据结果而定 循环移位指令:只影响OF和CF(与逻辑运算指令刚好 相反) 霄 铅 崔 步 讶 灌 椭 殖 辱 芝 汪 赢 害 寂 须 絮 守 虏 果 嫂 你 泅 蹲 停 峦 卫 畏 启 鄙

14、 啸 洁 盲 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 P128 将AL中的值乘以10 的例子: SAL AL,1 ; AL=AL*2 MOV BL,AL ;将2X存于BL中 MOV CL,2 ;移位次数存入CL SAL AL,CL ;在乘以2的基础上再移两位相 当于乘以8 ADD AL,BL ;加上2X则=乘以10 例如,原AL=00000011B (3) 移一位得 00000110B (6), 00000110B BL 再移两位得 00011000B (24) 00011000B + 00000110B = 000111

15、10B (30) 结果 3*10=30 疡 垮 酬 梦 茎 鲍 醉 众 韧 冲 陷 驼 嚼 染 领 疼 再 岂 曝 召 衷 炬 凡 助 丙 拯 强 讲 殿 跨 恫 闭 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 5.4 串操作指令 MOVS 串传送指令 CMPS 串比较指令 SCAS 串扫描指令 LODS 取串指令 STOS 存入串指令 与上述指令配合使用的前缀: REP 重复 REPE/REPZ 相等/为零则重复 REPNE/REPNZ 不相等/不为零则重复 药 余 傅 愤 桥 尚 罢 臼 簿 廊 史 蚜 疡 拌 装 辟 遍

16、 鉴 耗 抑 郡 桨 难 交 搂 莫 症 汾 乖 蚜 溉 嗜 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 5.4 串操作指令 1. 串传送: MOVSB/MOVSW 从数据段内SI所指的源操作数中取一字节/字,传送到 附加段所指的目的操作数中,并根据方向标志(DF) 对SI/DI进行增量或是减量修改,以指向下一个字节/字 单元。 执行指令前要先将源串首地址 DS:SI 目标串首地址 ES:DI 串操作方向由CLD和STD指令设置 CLD 地址递增方向(DF=0) STD 地址递减方向(DF=1) 完成操作后自动修改SI、DI,

17、指向串的下一个元素。 不影响标志位 置方向标志 角 放 吉 玻 磐 味 积 景 巨 晃 益 必 好 湾 赋 陵 碾 狸 自 声 憎 莲 篇 迎 麓 啃 哉 藤 沮 带 究 锌 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 F串传送加重复前缀 每传送完一个元素后: CX CX-1,直到CX=0为止。 REP MOVSB / REP MOVSW 执行指令前,应该做好的工作: 源串首地址 DS:SI 目标串首地址 ES:DI 串长度送到CX寄存器 建立方向标志 REP具体执行过程: 如(CX)=0 则退出REP,否则往下执行。 CX

18、CX-1 执行其后MOVS串指令 重复 饯 椰 钮 舶 雁 筷 阅 猾 玛 嚣 英 剑 豪 狠 掐 超 妒 朵 轩 凿 弘 允 梅 侥 裴 癌 燎 戮 损 训 仙 蕊 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 例: F串传送 . MOV DS,AX MOV ES,AX MOV SI, OFFSET S1 (LEA SI,S1) MOV DI, OFFSET S2 (LEA DI,S2) MOV CX, 18 CLD REP MOVSB (无条件反复执行,直到CX=0) . S1 DB “This is a string!$”

19、 S2 DB 18 DUP(0) 裙 晌 钢 佳 应 拴 歹 牛 罪 打 住 随 醉 胞 翅 诊 法 逊 闰 伏 啃 改 兔 胳 柬 滚 肩 亿 契 牧 评 莱 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 源 目 源 源目 目 源目有重叠部分 帅 辰 扩 烛 瞩 弗 捣 忱 镊 师 沈 屁 藏 讼 投 觉 闷 换 唯 弗 账 霸 调 曳 若 站 逢 蓬 芒 癸 劳 垫 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 2. 串扫描(搜索)SCASB/SCASW 指令

20、前通常加重复前缀REPNZ/REPNE,从而当 发现待搜索的元素时结束搜索。 字符串搜索指令,关键字放在AL/AX中,操作时 AX/AL中的关键字,减去DI所指向附加段的目的串中 的一个数据,不保留结果,只根据结果设置标志位, 并修改DI的内容,指向下一个字节、字单元。 事先要将待搜索的元素存入AL/AX 在首地址为ES:DI的串中搜索某个元素(字节/字) AX/AL中的关键字,减去DI所指向附加段的目的串中 的一个数据,不保留结果。 影响标志位 淬 宴 石 虫 抗 绪 汉 陀 砖 荆 鱼 长 票 绳 媚 才 茹 锡 曙 炕 饼 释 鲸 姻 阎 乓 翁 汕 软 肺 莫 骸 专 升 本 微 机

21、原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 例: F串扫描(影响标志位) MOV DI, OFFSET String MOV CX, xx MOV AL, h REPNZ SCASB JNZ Not_Found Found: Not_ Found: . 执行的操作: 如(CX)=0或ZF=1(某次比较的结果两个操作数相等) 则退出REP,否则往下执行。 CX CX-1 执行其后SCAS串指令 重复 啡 辉 溺 爷 泰 尊 臂 饰 兼 饿 岩 劝 忱 攫 述 硒 瓦 机 暇 开 伺 嗅 洛 峻 点 堕 绽 哆 协 虏 浚 撵 专 升 本 微 机 原

22、 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 CLD MOV CX,100 MOV DI,0100H MOV AL,$ REPNE SCASB;直到ZF=1 或 CX=0 AND CX,0FFH JZ ZER DEC DI MOV BX,DI JMP ST0 ZER:MOV BX,0 ST0:HLT F串扫描(P130 例:在某字符串中查找是否存在 $字符,若存在则将$所在的地址送入BX 寄存器 中) CLD MOV CX,100 MOV DI,0100H MOV AL,$ REPNE SCASB; JZ GET MOV BX,0 GET: DEC

23、DI MOV BX,DI HLT 姬 赌 戒 塔 睛 甘 跳 搪 置 贴 汀 啄 泌 缔 页 踢 樱 九 掐 噬 氨 吏 村 烛 莲 浮 秸 簿 抽 渝 匹 弹 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 3.串比较(影响标志位) CMPSB CMPSW 比较地址为DS:SI、ES:DI的两 个字节/字 指令前通常加重复前缀REPZ/REPE,相同则继续往 下比较,当发现两个串不同时结束比较。 内存(DS:SI) 与 内存( ES:DI)比较 瓤 爱 撮 州 大 钮 键 总 技 湛 蔽 瞪 弊 俄 顿 晤 刚 硷 曝 脏 奴

24、阁 诵 铅 镰 胎 桶 赚 纷 从 犬 醚 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 例: F串比较(影响标志位) MOV SI, OFFSET S1 MOV DI, OFFSET S2 MOV CX, xx REPZ CMPSB;直到ZF=0或CX=0 JNZ Not_Equal;ZF=0时不相等 Equal: Not_Equal: . 注:SCAS指令是用来从目标串中查找某个关 键字(相同则退出指令),CMPS常用来比较 两个串是否相同,查到不同则退出指令。 瘩 寓 步 垃 汰 峦 辖 摆 傻 驶 拢 纳 傅 输 撅 昆

25、 尝 后 鲁 汀 揩 赋 耗 押 吁 汤 谁 桐 酵 橡 摄 悟 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 CLD MOV CX,100H MOV SI,2400H MOV DI,1200H REPE CMPSB AND CX,0FFFFH;判断CX是否为0 JZ EQQ DEC SI MOV BX,DI MOV AL,SI JMP STOP EQQ: MOV BX,0 STOP:HLT F串比较(P131 例:检验被传送过的数据是否与源串完全 相同) 初始化 ;直到ZF=0或CX=0 ;第一个不相同字节偏移地址 BX ;第

26、一个不相同字节内容 AL 釜 港 迪 森 袖 动 郸 宠 号 含 讫 攫 肾 端 乐 启 坐 诬 孟 预 杏 紧 维 谜 钦 汲 拄 欢 湍 锥 匠 透 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 4. 串装入(读入串) LODSB/LODSW 将地址为DS:SI的一个字节/字装入AL/AX,修改SI的内 容,指向下一个字节/字单元。 因为目标是一个累加器,无重复前缀 (P132 表 5 9) 不影响标志位 啪 佩 枕 剖 腾 闯 尧 窄 退 羽 互 啼 彝 乡 雅 赏 脊 帮 粳 浑 夹 戎 世 治 搏 殆 腔 孪 穷 姨

27、鳖 染 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 例: MOV SI, OFFSET String MOV CX, xx LODSB MOV DL, AL MOV AH, 2 INT 21H LOOP NextChar NextChar: F串装入 倘 块 碑 凳 罗 恿 丫 讹 科 烟 胆 均 槐 琵 旷 距 嚼 灭 爪 规 凸 遥 蛊 氦 贱 路 咏 哇 菜 抿 劝 敝 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 5. 串存储(写串)STOSB/STOS

28、W 将AL/AX的值存入地址为ES:DI的内存单元,并修改 DI内容,指向下一个字节/字单元。 利用重复前缀REP,可以建立一个取值相同的数据 串(即某数据块填充相同的值) 不影响标志位 P130 例 霓 泌 冤 培 氛 蔼 傍 恨 莉 认 罪 俞 颗 爪 骆 悦 瘸 暗 阮 胃 窿 讲 磊 钮 繁 蛆 届 梯 戊 挂 赐 干 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 F串操作小结: 1. 串操作类指令主要是对内存数据进行操作,其源、目皆为内 存,隐含操作数; 2. (DS:SI)为源,(ES:DI)为目的;每执行一次SI,

29、DI自动增量/减 量(DF=0 (CLD)时增,DF=1(STD)时则减) 3. SCAS、LODS、STOS指令一方为内存操作数则另一方只能为 AL/AX(P130表5-8); 4. 读入是站在CPU( AL/AX)的立场定义的,入是从内存取数入到 AL/AX 、写是从CPU( AL/AX)写到内存。因而, LODS 为从 DS:SI(源)读入AL/AX ,STOS为从AL/AX写到ES:DI (目的); 5. 传送类指令不影响标志位,比较、扫描指令影响6个状态标志 了 蓉 颐 澡 诀 慧 甜 拨 主 焕 蚌 庐 务 汽 逻 扣 旦 渣 偶 湾 荐 杂 要 玲 禁 恃 褪 逃 资 选 喧 汇

30、 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 F串操作小结: 6、重复前缀及与串操作指令的搭配 (P132 表 5 9) REP:无条件重复直至CX=0; REPE/REPZ:当相等/ZF为1时重复,直至CX=0; REPNE/REPNZ:当不等/ZF为0时重复,直至CX=0; 表5-9 字符串指令与前缀 字符串指令 可添加的前缀 MOVSREP CMPSREPE/REPZ,REPNE/REPNZ SCAS REPE/REPZ,REPNE/REPNZ LODS无 STOSREP 影响标志位的指令才能使用与标志位有关的重复前缀

31、皆 漆 凭 宵 毯 照 签 洪 苫 告 奏 嚼 枝 茧 带 饮 惫 谱 坊 极 挤 互 刃 威 毛 臣 哑 钝 傅 绦 剥 谊 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 5.5 控制类指令(控制程序的流向) 无条件转移:JMP、CALL、RET 条件转移:无符号数 JA/JNBE、JB/JNAE 有符号数 JG/JNLE、JL/JNGE 单标志 : JC、JNC、JZ、JNZ、JO、JNO、 JP/JPE、JNP/JPO、JS、JNS 循环控制:LOOP、LOOPE 、 JCXZ 中断:INT、INTO、IRET 州 屹 矮

32、 乌 定 砰 喇 灿 慕 叔 烩 婴 弦 乖 侯 蜗 越 洽 侣 蔓 较 闲 吾 菜 慰 真 扼 焙 晤 形 业 嚼 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 F无条件转移 JMP Label1 . Label1: F条件转移 相当于goto语句 根据执行上一指令后条件码(标志寄存器的状态) 而决定是否转移 淮 滋 芯 依 丢 舔 噶 梭 韵 适 镰 啸 球 嫌 坡 醋 讣 亭 篱 羹 传 查 求 楞 乌 脂 觅 疮 历 欲 木 雾 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华

33、版 第 五 章 二 F条件转移 根据执行上一指令后条件码而决定是否转移。 比较两个无符号数 JA JAE = JB JGE = JL JLE = 格式:跳转指令 标号 赚 树 寝 铆 秽 嚼 玻 落 漏 消 馈 弛 顿 伤 痈 码 竟 纤 肝 椽 淀 秧 弘 衬 帽 氖 澎 傈 饱 牺 保 海 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 F条件转移 JZ JNZ JC JNC JO JNO JP/JPE JNP/JPO JS JNS JCXZ;CX=0时转移 F根据单个条件标志的设置情况转移。 冈 阻 哈 狞 轴 沿 痘 侥

34、墓 帚 停 涸 翼 辣 瞳 勃 祈 儒 谢 迪 室 吗 猪 需 棠 瞄 苍 槐 簧 秩 强 柜 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 F循环控制 LOOP LOOPE/LOOPZ;CX=0或ZF=1循环 LOOPNE/LOOPNZ; CX=0或ZF=0循环 与CX配合使用,CX存放循环次数 儒 绷 粟 贫 刺 钡 迫 钎 稗 铝 冉 雹 湃 聊 藉 粤 悔 狗 咸 唱 泻 授 魔 闰 仰 励 阴 咕 恕 泄 恫 优 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章

35、 二 相对转移与绝对转移(P133) 相对转移:以当前指令为中心往前往后转移,称为相 对转移,在8086系统中,所有的段内直接 转移都是相对转移,又分为短相对转移、长相对转移; 短相对转移、长相对转移及如何由机器码计算IP的值 : 短相对转移:转移数为一个字节的。例如, 100:7354 JNB 0156; IP=102+54=0156 100:73C4 JNB 00C6; IP=102 减去 C4所代表的 负数(C4的补为3C),IP=102 3C = 00C6 100:EB54 JMP 0156 100:EBC4 JMP 00C6 正数往前进的方向转移,负数往回转移,条件转移指令皆为 短相

36、对转移,只占两个字节,跳转时要考虑其跳转范围 (-126 - +127)。如果转移距离超过了短距离范围,则必须 使用两级或多级跳转;饼 拖 亲 逢 袄 迄 圾 氨 觅 骸 绪 愈 稠 滥 落 谱 船 沧 酒 企 壁 闹 卒 际 曲 麻 岔 默 搓 块 鹅 技 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 长相对转移:转移数为一个字的。例如, 100 E9FD0E JMP 1000; IP=103+0EFD=1000 2000 E9FDEF JMP 1000; IP=2003 减去EFFD所代表的 负数(EFFD的补为1003),

37、IP=2003 1003 = 1000 CALL 指令无短转移功能,距离近也必须用长相对转移,例如 0100 E81D00 CALL 120,显然段内直接调子程序占3个字节 0103 正数往前进的方向转移,负数往回转移 绝对转移:所有的段内间接转移和段间转移都是绝对 转移; JMP BX:假如BX=1000H,1000H=50H,1001H= 22H,则JMP BX跳转至2250H处 、JMP BX+1500H、JMPBX+20H、 JMP BX+SI+20H、JMP BX+SI+1500H 段间转移: JMP 1000H:2250H 其机器码为EA50220010 淑 源 命 烂 枯 觉 柴

38、 戮 灌 硒 难 赶 否 拍 沁 拂 晃 癌 课 拣 术 忻 镰 淤 掣 驶 炉 坍 湃 拜 粒 箱 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 5.5.4 处理机控制命令 1. 对标志位操作: CLC、STC、CMC、CLD、STD、 2. CLI、STI 3. 2. 外部同步: WAIT、ESC、LOCK 3. 其他:HLT、NOP 注意: 1. 一定要化时间、化工夫去记指令才有可能学好汇编语言编程; 2. 分类记忆是一种好方法;(传送类、运算类、串操作、控制类、 其它) 3. 记指令时不仅要记它的功能,还要记它影响标志位

39、的情况; 4. 对单操作数指令和无操作指令一定要注意其隐含的目的操作数 或源操作数; 5. 寻址方式是寻找操作数的方式, 方式多说明存取数灵活. 牺 寻 沂 楔 迸 执 澜 掷 狞 涎 红 偶 腮 米 诅 潭 淮 玄 援 钳 得 瓦 呀 遂 效 撼 办 苞 略 砌 值 掣 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 2. 请问下列指令的功能是否相同? 1. MOV AL, DISP BX SI 2. MOV AL, DISP BX+SI 3. MOV AL, BP+SI+DISP (DISP 为8/16位的偏移量) 课堂练习(

40、简单回答) 1. 请问下列指令将从内存取多少个字节的数? 1. MOV AX, DS:BX 2. MOV AL, DS:BX 汀 兴 帆 坚 挨 派 猿 铲 扦 章 淆 频 碟 帘 刺 搬 宾 熬 名 介 孔 袜 蜜 教 逐 贱 邑 描 沦 级 谁 窃 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 3. 假定 CH = 0111 1001B,执行下列指 令后CH的值为多少?标志位OF、CF的 值是什么? 1. OR 1. OR CH, 1110 0011BCH, 1110 0011B 2. AND CH, 1110 0011B

41、2. AND CH, 1110 0011B 3.3. XOR XOR CH, 1110 0011BCH, 1110 0011B 4. 4. (连续执行下面(连续执行下面3 3条指令)条指令) 5. 5. OR OR CH, 1110 0011BCH, 1110 0011B AND AND CH, 1110 0011BCH, 1110 0011B XOR XORCH, 1110 0011BCH, 1110 0011B 奢 渺 豫 必 趁 猖 赔 洪 淫 一 洱 表 妹 蚂 欠 蝶 霄 崎 靛 弹 叠 腰 弯 揣 盘 拾 萨 惠 揉 颊 欠 榜 专 升 本 微 机 原 理 清 华 版 第 五 章

42、二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 4. 已知数据段的段地址(DS)=1000H ,在此数据段中偏移地址为 2A09H 2A0CH的存储单元中存储有4个字节的数据; 请问这4个数据的物理地址是多少? 请用本章所学的指令编一简单程序段, 完成前三个数据相加 后再减去第四个数, 结果存于数据段的2A0DH单元中。 5. 请指出下列指令的错误之处。其中VAL1,VAL2为字节变量。 1) ADD 25H,AL 2) SUB BX, 1234H 3) MOV AX, CL 4) SHL AX, BL 5) MOV DS,1000H 6) INC BX 7) MOV CS,AX

43、8) SUB VAL1,VAL2 9) ADC AX,VAL1 10) MOV BX, AX 11) TEST BX,BP 12) DIV BX,CL 13) ROL AX,5 14) OUT 40H, BL 15) MOV AL, BX+BP 16) PUSH AL 17) CMP SI+100H,100H 18) IN BX, DX 19) IN AL, 100H 20) POP CS 21) ADD DS,AX 22) SHR DS,CL 瘪 俊 风 纶 税 状 贵 桃 塞 饭 郸 阉 练 音 湿 掣 撞 奢 箍 旱 裤 衡 裙 淖 雨 茹 绽 利 谤 曲 幼 重 专 升 本 微 机 原

44、 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二 6. 已知AL=0FFH,BL=2,问执行下列指令后的结果是多少? 1)MUL BL 2)IMUL BL 7.已知AX=01FFH,BL=2,问执行下列指令后的结果是多少? DIV BL 8.已知AX=FFF1H,BL=2,问执行下列指令后的结果是多少? IDIV BL 例 趴 赔 敲 肢 伶 兰 趟 浇 箕 颜 弟 厨 葵 旗 纯 狙 奢 着 蚂 配 间 稚 个 暮 躲 腆 振 阴 官 架 斜 专 升 本 微 机 原 理 清 华 版 第 五 章 二 专 升 本 微 机 原 理 清 华 版 第 五 章 二

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

当前位置:首页 > 其他


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