第五章第4讲 逻辑运算和移位指令.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章第4讲 逻辑运算和移位指令

逻辑运算与移位循环指令 逻辑运算指令 AND OR XOR NOT TEST 移位指令 SAL SHL SAR SHR 举例 例:移位 例:循环移位 改变AX中数据排列顺序,使 * * * 循环移位指令 ROL ROR RCL RCR 格式:AND dst,src 功能:dst←dst ∧ src 与运算 用途:屏蔽、清零部分信号 例:屏蔽AH的高4位 AND AH ,0FH 格式:OR dst,src 功能:dst←dst ∨ src 或运算 用途:置位部分信号 AH=05H,AL=08H,分别转换为‘5’和‘8’的ASCII码 OR AX,3030H 0000 0101 0000 1000 AX 0011 0101 0011 1000 AX 格式:XOR dst,src 功能:dst←dst⊕ src 异或运算 用途:清零整串信号,或取反部分信号 非运算 格式:NOT dst 功能:dst← dst 用途:取反整串信号 操作数不能是立即数 测试指令 格式:TEST dst,src 功能:dst ∧ src 用于测试操作数指定位是否为1。 用高电平1来测试 用ZF判断,若是1,则ZF=0,若不是,则ZF=1 测试DX中的有符号数是否为负数,若是,将其变为正数,若不是,将其清零。 TEST DX ,8000H XOR DX ,8000H JNZ CDL CDL: AND DX ,0000H HLT 测试AL中有多少个“1”,总数送往内存SUM单元。 MOV CL,00H TEST AL,01H JZ a ADD CL, 1 TEST AL,02H JZ b ADD CL, 1 TEST AL,04H JZ c ADD CL, 1 TEST AL,08H a: b: c: JZ d ADD CL, 1 TEST AL,10H JZ e ADD CL, 1 TEST AL,20H JZ f ADD CL, 1 TEST AL,40H JZ g ADD CL, 1 d: e: f: TEST AL,80H JZ h ADD CL, 1 MOV SUM, CL g: h: 移位指令 dst不可为立即数,count是移位次数, 移位1次的,在指令中直接给出,移位n次 的(n1)必须先把n送入CL。 SAL dst ,count;算术左移 SHL dst ,count;逻辑左移 SAR dst ,count;算术右移 SHR dst ,count;逻辑右移 高 低 CF 0 高 低 CF 高 低 CF 0 用移位指令实现AX×10 SHL AX,1 ;A×2 MOV BX,AX ;BX=AX=(A×2) SHL AX,1 ;AX=(A×4) SHL AX,1 ;AX=(A×8) ADD AX,BX ;AX←(A×10) 循环移位指令 dst不可为立即数,count是移位次数, 移位1次的,在指令中直接给出,移位n次 的(n1)必须先把n送入CL。 ROL dst ,count;左小循环 ROR dst ,count;右小循环 RCL dst ,count;左大循环 RCR dst ,count;右大循环 高 低 CF 高 低 CF 高 低 CF 高 低 CF 1 2 3 4 AX 4 3 2 1 AX MOV CL ,8 ROL AX,CL ;变成3 4 1 2 MOV CL,4 ROL AH,CL ;变成4 3 1 2 ROL AL,CL ;变成4 3 2 1 循环指令 格式:LOOP 标号 MOV AX ,0001H LOOP CDL MOV CX ,50 CDL: ADD AX ,0002H 循环次数送CX 练习:从1加到100,结果送AX 空操作指令 格式:NOP 用于延时程序 练习: 某CPU频率10KHz,执行NOP指令需10个时钟周期。编写延时1秒程序。 LOOP CDL MOV CX ,1000 CDL: NOP 过程(子程序、模块)定义 PROC XX ENDP XX RET 子程序内最后一条语 句必须是RET(返回) 调用子程序用CALL指令

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档