第5章分支程序设计.ppt

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

《第5章分支程序设计.ppt》由会员分享,可在线阅读,更多相关《第5章分支程序设计.ppt(52页珍藏版)》请在三一文库上搜索。

1、第5讲 分支结构程序设计 掌握: n顺序结构程序设计 n分支结构程序设计 滑 楚 膛 烛 跟 谢 榜 政 疙 似 占 诣 纺 组 菩 攘 缄 冗 党 殊 裂 爪 缆 身 晒 八 痴 君 嚎 侠 喇 间 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 5.1 顺序结构程序设计 n完全按程序中的书写顺序逐条执行,称为顺序程序 。顺序程序往往是复杂程序结构的一部分。 n如分支结构的一个分支,循环结构的循环体等。 酵 锥 构 尧 洱 秩 缄 斤 捅 方 冒 虹 累 宽 坷 患 负 往 科 泼 馈 猾 蛆 宋 蛀 榷 帧 拱 付 雄 窑 软 第 5 章 分 支 程 序 设 计 第

2、 5 章 分 支 程 序 设 计 实例分析 n已知某班学生的英语成绩按学号(从1开始)从小到大 的顺序排列在TAB表中,要查的学生学号放在变量 NO中,查出的英语成绩放在变量EN中。 诉 福 财 驴 阮 油 耶 锻 睁 焉 挺 酱 闭 桶 蛆 妹 课 励 娃 林 幕 僧 磋 户 擦 墅 凡 齿 浸 淄 思 娃 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 实例分析 DATA SEGMENT TABDB 68,78,42,84,80,85,56,77,87,56 NODB6 ENDB? DATA ENDS CODE SEGMENT ASSUMECS:CODE,DS:DA

3、TA START: MOV AX,DATA MOV DS,AX MOV BL,NO ;学号送AL寄存器 MOV BH,0 DEC BX MOV AL,TABBX MOV EN,AL ;结果保存在ENGLISH单元 MOV AX,4C00H INT 21H CODE ENDS END START 揭 撑 偷 图 煤 运 脸 春 恨 撤 阂 洞 块 孺 束 拥 劈 凶 琐 今 饶 明 狠 腑 愉 梗 感 侩 津 做 叁 稍 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 52分支结构程序设计 n521分支程序结构 指令序列1 条件 YN 指令序列2指令序列 条件 Y N 图

4、5.4 双分支结构之一 图5.5 双分支结构之二 case 1 case 2 case n 多分支结结构 库 运 恳 锹 挤 婶 备 甄 仆 淫 舔 埃 洽 鬼 阅 冠 往 胖 丸 吐 凋 帖 酉 为 崭 拉 碘 蜒 鼠 颐 婚 蛮 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 522转移指令 n1无条件转移指令 JMP 无条件转移指令的功能是无条件转移到指 定的地址去执行从该地址开始的指令。 注 但 堂 办 拖 酗 鼎 订 涵 舆 肢 楼 常 责 用 裁 黎 醉 捷 空 岗 枯 英 沮 完 窗 与 最 弄 搬 卤 悦 第 5 章 分 支 程 序 设 计 第 5 章

5、分 支 程 序 设 计 段内转移 段内直接转移 段内间接转移 段间转移 段间直接转移 段间间接转移 分类 程序举例: manyseg.asm 辽 狼 臣 哇 屠 撩 填 掸 嘶 椽 乎 密 溪 挤 肉 偿 摔 柑 腮 攀 蔽 涝 节 跺 柱 氨 察 骋 贞 升 窒 抓 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 (1)段内直接转移 段内直接短转移 格式:JMP SHORT 标号 功能:IPIP+8位偏移量,转移范围为-128 +127 段内直接近转移 格式:JMP NEAR PTR 标号 功能:IPIP+16位偏移量,转移范围为-32768 +32767 (2)段内

6、间接转移 格式:JMP WORD PTR OPR 功能:IP(EA) OPR是16位的通用寄存器或字存储器。 段内转移 蛊 梳 揉 洛 梧 碴 鸣 话 肇 秽 琐 尊 蔗 蓬 颊 略 妹 贱 胀 椿 潞 僚 途 炳 锰 蹦 妇 究 篱 枉 遁 莱 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 段内转移指令举例 JMP SHORT L_PRO1 JMP NEAR PTR L_PRO2 JMP SI JMP BX JMP WORD PTRBX JMP WORD PTRBP+DI+20H 秆 滑 衫 柑 隆 溉 秘 帝 视 今 末 奖 褒 疟 统 殿 叶 返 摈 景 怪 源

7、 带 杨 森 黑 颊 双 帆 摧 肖 秃 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 段间转移 (4)段间直接转移 格式:JMP FAR PTR 标号 功能:IPOPR的偏移地址, CSOPR的段地址 (5)段间间接转移 格式:JMP DWORD PTR OPR 功能:IP(EA), CS(EA+2) OPR是存储器 幽 乒 亏 清 钒 腮 番 波 垛 刨 昭 慕 浓 宾 秀 境 衍 藉 恐 零 庞 怜 真 乍 并 锚 卯 矫 腋 叹 余 酝 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 段间转移指令举例 1 CODE2 SEGMENT C

8、ODE1 SEGMENT PRO1: MOV JMP FAR PTR PRO1 CODE1 ENDS CODE2 ENDS 2 JMP DWORD PTRBX+DI DS=4000H,BX=1230H,DI=02H 计算物理地址: 40000H+1230H+2=41232H CS IP 星 丛 侠 套 吼 财 猜 眷 尔 异 父 提 稽 椰 耀 序 赛 揭 饶 讳 槛 艳 厨 恍 喻 而 蝎 赫 躺 侯 伦 桶 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 说明: n无条件转移指令不影响标志位 背 溪 梆 逢 水 眉 捆 锹 寺 锅 阵 毙 剃 胁 刺 哄 愤 弱 挡

9、 盲 湍 亨 塞 缔 氧 氮 诫 赴 祷 糠 炳 实 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 2. 条件转移指令: (1)判断单个状态标志 格式测试条件 JC/JNC 地址标号;CF=1/CF=0,有进位/无进位则转移 JE/JNE 地址标号;ZF=1/ZF=0,结果相等/不相等则转移 JZ/JNZ 地址标号;ZF=1/ZF=0,结果为零/不为零则转移 JS/JNS 地址标号;SF=1/SF=0,结果为负/为正则转移 JO/JNO地址标号;OF=1/OF=0,结果溢出/不溢出则转移 JP/JNP 地址标号;PF=1/PF=0,奇偶位为1/奇偶位为0则转移 予 寸

10、 菱 赶 哟 分 让 隅 砂 降 籍 颗 滤 腕 细 版 踏 像 涯 府 溯 弓 禽 抨 枯 球 伤 渔 句 积 绽 疼 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 计算 X-Y ,X和Y为16位操作数,结果存入result。 MOV AX,X ; SUB AX,Y ; JNS NO_NEG ;(X-Y)如为正数,不求绝对值 NEG AX ;求绝对值 NO_NEG:MOV result,AX ;保存结果 2.设字符的ASCII码在AL,给字符加上奇校验位。 AND AL,7FH;D7置0,D6D0不变,测“1”个数 JNP NEXT ;D6D0已有奇数个“1”,不处

11、理 OR AL,80H;偶数个“1”,校验位置“1” NEXT: 指令举例 杆 易 牵 院 执 泥 怨 享 喳 卯 十 掣 单 铆 扯 仿 召 债 宵 该 涂 允 盏 蝎 瘴 除 艺 枝 举 劣 砰 峰 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 助记符 标志 说 明 JB/JNAE/JC CF=1 低于/不高于不等于() JNB/JAE/JNC CF=0 不低于/高于或等于() JBE/JNA CF=1或ZF=1 低于或等于/不高于() JNBE/JA CF=0且ZF=0 不低于不等于/高于() 指令举例:AX和BX为无符号数,比较大小,将较大的数放入AX CMP

12、 AX,BX ; JNB NEXT ;如AXBX,不处理 XCHG AX,BX ; AXBX,AX与BX交换 NEXT: (2)比较无符号数高低(条件为一个标志或标志组合 ) A:高于,B:低于,E:等于 氨 途 捷 冰 维 懒 罐 槛 该 汾 档 门 沈 媳 胚 悬 挡 凌 眯 匣 庐 告 囤 雁 恍 急 浦 齐 肆 释 茵 扩 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 助记符 标志 说 明 JL/JNGE SFOF 小于/不大于且不等于() JNL/JGE SFOF 不小于/大于或等于 () JLE/JNG SFOF或ZF=1 小于或等于/不大于 () JNL

13、E/JG SFOF且ZF=0 不小于且不等于/大于() 指令举例:AX和BX为有符号数,比较大小,将较大的数放入AX CMP AX,BX ; JNL NEXT ;如AXBX,不处理 XCHG AX,BX ; AXBX,AX与BX交换 NEXT: (3)比较有符号数大小(条件为标志组合) G:大于,L:小于,E:等于 簧 袱 钢 龄 趋 盯 卒 梗 哀 樱 据 恐 绒 朝 呀 蕾 同 龄 漓 娩 池 寝 勒 削 摧 岭 帜 娃 避 勒 没 蛹 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 (4)JCXZ指令 nCX值为0则转移 恼 后 佳 鹊 票 臻 叉 顶 野 背 役

14、 拭 筷 岁 岿 轨 袒 恶 祸 秦 倍 搁 利 墙 妹 炭 贯 馏 增 糜 扬 衍 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 说明 n条件转移指令不影响标志位 n条件转移指令只能实现段内转移,8086转移范 围是128127 寨 碴 羌 矽 扑 钝 荔 丈 改 饥 滚 疲 鸦 帜 力 尾 孔 泻 与 瘫 辱 坞 捻 拢 枝 教 蓬 坤 扦 战 侥 难 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 条件转移指令和无条件转移指令JMP用于实现程序的分支结构。 条件转移指令是以当前标志位的状态为条件,其前要安排设置标 志位的指令,如加减法、比

15、较、测试等指令。 5.2.3 分支程序设计 她 诡 策 徘 尸 劳 惰 膜 续 烂 碳 手 逢 笋 仪 训 狗 秤 戚 纸 镍 锨 励 宇 碰 闷 织 掀 洁 珊 纵 聘 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 根据NUM中的值(04),执行不同的操作,用逻辑 分解法编写程序。 DATA SEGMENT NUM DB 2 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,NUM CMP AL,0 JZ NEXT0 ;AL=0转 CMP AL,1 JZ

16、NEXT1 ;AL=1转 CMP AL,2 1. 逻辑分解法分支程序设计 怀 滚 庶 掳 肢 央 梅 陡 择 靳 允 酣 骡 铬 邹 拣 驹 荡 它 对 量 榴 件 冤 钠 经 节 斤 寨 曼 握 逗 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 JZ NEXT2 ;AL=2转 CMP AL,3 JZ NEXT3 ;AL=3转 CMP AL,4 JZ NEXT4 ;AL=4转 NEXT0:MOV DL,30H JMP EXIT NEXT1:MOV DL,31H JMP EXIT NEXT2:MOV DL,32H JMP EXIT NEXT3:MOV DL,33H JM

17、P EXIT NEXT4:MOV DL,34H EXIT: MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS END START 逻辑分解法多分支程序设计2 玄 历 代 气 岁 觅 捌 咸 汐 控 急 蔫 讣 阂 牟 萧 蛋 步 弃 滓 咽 林 存 言 俊 忿 纷 周 眠 晚 耍 佬 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 设数据X、Y均为字节型变量,编写计算下面函数值的程序。 .MODEL SMALL .STACK .DATA X DB -5 Y DB ? .CODE START: MOVAX,DATA MOVDS,A

18、X CMPX,0 JGE CASE1 ;当X0时,则到CASE1 MOVY,-1;当X 0时,-1Y JMPDONE CASE1: JGCASE2;当X 0时,则转到 CASE2 MOVY,0;当X=0时,0Y JMPDONE CASE2: MOVY,1;X 0时,1Y DONE: MOVAX,4C00H INT21H END START 摆 琉 酵 羽 殿 误 往 赏 落 缎 艾 讨 溉 婿 赴 翼 谤 菩 积 个 戳 穆 学 诱 昂 近 遇 敏 泽 慎 庶 甥 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 2. 地址表法多分支程序设计 n把各分支程序段的入口地址(

19、一般是偏移地址)依次存 放在一起,形成地址表。 n各分支程序段的编号作为转移条件,根据条件首先在地 址表中找到转移的目标地址,然后转到相应位置,从而 实现多分支。 n表地址计算公式:表地址=编号*2+地址表首地址 柱 译 慨 吠 姆 窟 锹 铜 鸥 峪 絮 斋 拎 惹 净 函 陶 吏 釜 敷 瞅 萝 念 辉 迪 科 层 单 扮 解 抨 捶 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 使用地址表实现多分支。5个分 支的标号分别为ADDR0,ADDR1 在代码段有: ADDR0: mov dx, ADDR1: mov 设ADDR0的偏移地址为2300h, ADDR1的偏

20、移地址为2500h。 在数据段有: ADTAB dw ADDR0,ADDR1, 相对ADTAB 的偏移量 ADTAB ADDR0 2500H ADDR2 ADDR3 ADDR4 2300H 8 6 4 2 0 例 根据NUM单元中值(04)的不同,执行不同的操作,用地址表法编写程序 锥 证 逐 匀 并 漾 两 芹 骏 厚 玉 场 懒 油 挝 浇 偷 驶 腋 墙 泣 渐 也 茹 跺 嘉 暮 经 尔 少 炙 守 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 转入分支:按输入的数字转入不同分支 按输入的数字求出分支相对ADTAB的偏移量:ADDR0为0,ADDR1 为2,A

21、DDR2为4,如输入数字1,则偏移量为12=2,将求出 的偏移量存入SI。 执行指令jmp ADTABSI,设SI=02 则IP ADTAB+SI 即IP 2500H CS:2500H为分支ADDR1的入口,CPU即执行分支ADDR1 嗽 付 山 苇 满 货 模 档 筒 激 恶 贤 已 歹 叁 浆 兼 揪 茁 柴 装 敝 咨 拳 星 议 弟 令 捂 粳 佛 乃 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 DATA SEGMENT NUM DB 2 ADTAB DW ADDR0,ADDR1,ADDR2,ADDR3,ADDR4 DATA ENDS CODE SEGMEN

22、T ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,NUM MOV AH,0 ADD AX,AX MOV SI,AX 地址法例题分析/1 求偏移 地址表 编号 劝 请 曙 姑 此 昌 写 闷 轧 车 底 邹 荚 欧 傍 谁 首 诸 翼 曼 段 赦 剖 罢 果 覆 渭 迹 孵 毛 弧 静 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 MOV BX,ADTABSI JMP BX ADDR0:MOV DL,30H JMP EXIT ADDR1:MOV DL,31H JMP EXIT ADDR2:MOV DL

23、,32H JMP EXIT ADDR3:MOV DL,33H JMP EXIT ADDR4:MOV DL,34H EXIT: MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS END START 地址法例题分析/2 转移指令 哮 挤 灌 农 墨 策 曰 打 琵 挨 涛 灸 葫 牲 铰 睡 刺 暂 磋 贾 连 瘦 罐 歹 羡 蔷 捉 录 弃 纸 闭 伪 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 5.3 位操作指令 1、逻辑运算指令 AND OR XOR NOT TEST 2、移位指令 SHL SHR SAR,ROL ROR

24、RCL RCR 刘 盘 就 烷 噬 荣 绣 帝 焰 蜂 厦 峨 棕 潮 息 膨 鞠 咐 摧 沤 屿 烧 腆 骂 辛 陆 茎 卡 玩 面 恐 综 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 一、 逻辑运算指令 1. AND 逻辑与指令 n指令格式:AND DST,SRC n指令功能:将源操作数和目标操作数按位进行逻 辑“与”运算,然后将结果送入目标操作数。 AND reg, imm/reg/mem AND mem, imm/reg nAND指令设置CF = OF = 0,根据结果设置SF、ZF 和PF状态,而对AF未定义 枣 箍 澎 某 隔 腰 藤 倡 豆 舅 哦 木

25、 超 敲 蛾 跃 玄 墅 僧 虎 鸦 澄 溉 井 拭 乾 敢 脆 锅 蛊 樊 比 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 *AND应用举例* nAND指令可用于复位某些位(同0相与),不影响 其他位 例:将某一位十进制数的ASCII码转化成十进制数 MOV AL,37H AND AL,0FH ;屏蔽AL的高4位 运算结果(AL)=07H 盅 朵 宅 芒 致 裙 耽 赤 翁 屉 缝 醇 育 蹄 贼 嗅 惯 拟 狠 赣 又 娥 责 诺 言 涉 练 拱 莉 邀 筷 敞 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 2. OR 逻辑或指令 n指

26、令格式:OR DST,SRC n指令功能:将源操作数与目标操作数按位进行逻 辑“或”运算并将结果送入目标操作数。 OR reg,imm/reg/mem OR mem,imm/reg nOR指令设置CF = OF = 0,根据结果设置SF、ZF 和PF状态,而对AF未定义 砒 巴 钠 垃 罕 咱 晒 兢 列 颐 骇 骸 谅 黄 蟹 氮 猫 件 薛 躺 笛 霉 劫 漠 秒 聂 藻 型 刷 碑 础 饥 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 *OR应用举例* n利用OR指令可以方便地设置某些位。 例:将一位十进制数转化成相应的ASCII码 MOV AL,09H OR

27、AL,30H ;将AL的高4位设置为3 运算结果 (AL)=39H 膘 抵 帜 概 鲜 规 驱 曙 询 寓 透 风 吼 碱 白 棘 竿 挂 蛮 帆 乾 刺 茅 俞 酱 见 臣 魂 绕 极 材 看 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 3. NOT 逻辑非指令 n指令格式:NOT OPR n指令功能:本指令将给定的操作数按位求反。 NOT reg/mem ;reg/memreg/mem n对标志位的影响:不影响。 氮 奴 萎 况 朱 磊 垫 喊 舟 渺 宦 宾 肥 驭 权 贝 亡 脚 崎 粘 哑 谆 亦 鼠 弹 妒 灾 臻 驰 站 箍 霍 第 5 章 分 支 程

28、 序 设 计 第 5 章 分 支 程 序 设 计 4. XOR 逻辑异或指令 n指令格式:XOR DST,SRC n指令功能:将源操作数与目标操作数按位进行“异 或”运算,其结果保留在目标操作数中。 XOR mem,imm/reg ;memmemimm/reg XOR reg,imm/reg/mem ;regregimm/reg/mem nXOR指令设置CF = OF = 0,根据结果设置SF、ZF和 PF状态,而对AF未定义 蔚 叶 莉 瘸 嘶 罪 惧 毖 悉 蕴 再 及 滓 践 眼 中 椽 呸 腥 禄 汽 乌 钎 懒 侨 牟 李 之 糟 桂 培 晶 第 5 章 分 支 程 序 设 计 第

29、5 章 分 支 程 序 设 计 *XOR应用* n可以用来给寄存器置0。 nXOR指令可用于求反某些位(同1相异或),不影响其他 位。 纪 虾 放 堂 栖 喳 意 迄 尔 救 撮 郴 灯 桐 奋 腕 柔 滑 涵 冻 坍 汝 浴 坏 到 俗 鉴 衷 拘 店 哨 幅 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 *XOR应用举例* 例1: 将CX置为0 XOR CX,CX 例2: 将BL中D3和D0位求反,其他不变(对指定 位) XOR BL, 00001001B 樱 颈 朗 耍 邪 帖 犊 粳 从 拄 寨 七 顽 舞 酌 譬 轴 郁 涩 锈 绒 席 羹 骏 耽 诗 式

30、足 箩 赁 琐 比 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 5. TEST 测试指令 n指令格式:TEST OPR1,OPR2 n指令功能:TEST指令将两个操作数按位进行逻辑“与 ”运算,但不保存结果,只根据特征设置状态位 TEST mem,imm/reg TEST reg,imm/reg/mem nOR指令设置CF = OF = 0,根据结果设置SF、ZF和PF 状态,而对AF未定义 熔 巴 撂 摸 坦 杭 厩 伶 俱 赛 趟 赁 水 历 睡 颁 让 瀑 昨 揉 培 科 便 睛 广 稽 沪 睡 妨 辖 币 颊 第 5 章 分 支 程 序 设 计 第 5 章

31、分 支 程 序 设 计 *TEST应用举例:* 例: 测试AL第二位是否为1,若为1则转移到EXIT执行。 指令序列如下: TEST AL,00000100B JNZ EXIT ;结果为1转移到EXIT 不改变操作数,测试操作数或操作数的指定位 乖 省 茵 问 躇 隶 玻 叁 蚊 厅 窑 勒 势 儡 稻 散 绢 断 泵 菲 振 恿 赊 朝 碗 培 辛 舜 椽 教 连 浑 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 二、 移位指令 n移位指令 n循环移位指令 记 朔 迎 涨 毒 薄 定 闸 脊 恿 销 涪 爹 均 卞 诸 譬 钡 竹 毁 熏 男 尖 菠 犊 侗 国 奥

32、 膏 殆 巍 渴 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 1. 移位指令 n逻辑左右移与算术左右移 SHL reg/mem,1/CL;逻辑左移,最高位进入CF,最低位补0 SHR reg/mem,1/CL;逻辑右移,最低位进入CF,最高位补0 SAL reg/mem,1/CL;算术左移,最高位进入CF,最低位补0 SAR reg/mem,1/CL;算术右移,最低位进入CF,最高位不变 演示演示示意图示意图 next 酱 璃 蹭 菜 谆 霓 裸 松 涌 香 旗 勤 尺 盎 土 扬 挺 东 过 兹 恒 辐 谅 孕 纵 采 灌 矣 蕊 酌 涕 誊 第 5 章 分 支

33、程 序 设 计 第 5 章 分 支 程 序 设 计 示意图 锣 云 抛 孵 娇 硫 冗 跺 涡 沪 磺 千 奋 那 百 拖 爸 描 列 智 茂 出 埂 怔 矢 瘸 幂 渐 筹 个 查 渔 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 逻辑左移 SHL AL,1的执行 曲 窑 非 还 朋 飘 尖 巡 嗽 顽 籽 奥 股 粟 鸡 戒 毫 己 吊 喂 致 守 吵 团 注 秆 碑 违 招 戌 提 治 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 移位指令应用举例 mov cl,4 mov al,0f0h;al=f0h,无符号数240d,有符号数-16

34、d sal al,1 ;al=e0h,无符号数224d,有符号数-32d ;CF=1,SF=1、ZF=0、PF=0,OF=0 shr al,1;al=70h,无符号数112d,有符号数112d, sar al,1;al=38h,无符号数56d,有符号数56d, sar al,cl;al=03h,无符号数3d,有符号数3d, ;CF=1,SF=0、ZF=0、PF=1 硼 欲 恐 彪 贤 羡 尤 海 探 然 杨 双 呛 杰 常 呕 堪 哺 艰 叭 灼 椭 经 堆 龟 鄙 侧 射 堕 揩 骨 惕 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 移位指令的应用 n算术运算指令用

35、于带符号数运算 SAL用于乘2,SAR用于除2 n逻辑移位指令则用于无符号数运算 SHR用于除2 示例示例 招 逛 劲 贴 怀 既 超 嗡 搭 拷 撰 镐 睦 吃 旷 分 听 神 允 兜 勃 凋 康 嗓 镑 扒 捌 晤 谎 福 瞻 破 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 * 可以做字节操作,也可以做字操作,还可以做双字操作 * CNT=1,SHL OPR, 1 CNT1,MOV CL, CNT SHL OPR, CL ; 以SHL为例 * 条件标志位: CF = 移入的数值 1 CNT=1时,最高有效位的值发生变化 0 CNT=1时,最高有效位的值不变 当C

36、NT1时,OF位不确定。 SF、ZF、PF 根据移位结果设置,AF无定义 OF = *移位指令注意事项:* 示意图示意图 板 酞 悯 七 拾 刽 桌 郊 苔 奶 娱 瓶 胳 婆 宫 祸 佩 逸 囊 努 玖 宛 扼 样 孵 俭 嫂 姆 赌 俞 桨 涝 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 移位指令分析 SHL AX,1 SAR BP+SI,1 错误 SHR BH,1 SAR AL,3 错误 涌 礁 免 喜 钠 吃 便 独 舟 咐 星 核 岗 铆 神 铣 猿 诛 咆 廖 喘 痉 做 柑 刚 啼 吱 吞 掺 绑 篙 呸 第 5 章 分 支 程 序 设 计 第 5 章

37、 分 支 程 序 设 计 2.循环移位指令 ROL reg/mem,1/CL;不带进位循环左移 ROR reg/mem,1/CL;不带进位循环右移 RCL reg/mem,1/CL;带进位循环左移 RCR reg/mem,1/CL;带进位循环右移 示意图示意图 示意图示意图 若 娠 屠 夏 峰 高 雹 鹿 愧 鸳 掸 癸 卵 无 普 何 卿 泉 矫 汪 卫 欧 舀 坤 凌 鲁 臀 恼 孰 康 飘 熊 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 不带进位循环移位指令 洛 晨 柯 栅 唬 检 拧 帜 冲 胳 厂 瞳 抚 掠 淄 桔 捧 檄 癌 骚 焉 糟 封 拜 选 搭

38、 浴 排 作 蠢 耘 标 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 带进位循环移位指令 肃 狠 诡 尽 朝 洲 顶 昭 膘 听 啃 桃 脚 钉 志 端 楷 靶 聊 馈 色 烷 滨 郭 辟 华 失 莱 宙 火 世 遍 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 例: 例1. 将DX,AX中的32位数左移一位。 SHL AX,1 RCL DX,1 移位指令和循环移位指令结合,可实现32位数乘2除2。 DX AX 孜 氦 比 赤 夸 焦 硒 盟 兜 琢 宝 暇 添 裴 仓 浇 颤 弦 刹 于 内 铁 坍 粒 桂 怂 洁 网 铁 级 悠 阮 第

39、 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 *循环移位指令注意事项:* *可以进行字节操作,也可以进行字操作。 *条件标志位: CF = 移入的数值 1 CNT=1时,最高有效位的值发生变化 0 CNT=1时,最高有效位的值不变 当CNT1时,OF位不确定。 不影响 SF、ZF、PF、AF OF = 郡 逢 尔 悬 寂 胰 撅 侵 拘 炼 芋 啄 葛 朽 疫 同 绑 漆 洲 液 便 爹 锌 囚 剧 夷 帜 昭 碴 凭 动 崔 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计 Thank you! 舒 劳 忽 蠕 砂 繁 停 酋 忽 极 狭 盾 咋 劝 痴 大 峭 花 元 墒 弹 完 疯 危 高 哺 瑶 揖 脐 糯 凰 权 第 5 章 分 支 程 序 设 计 第 5 章 分 支 程 序 设 计

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

当前位置:首页 > 其他


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