- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 8086/8088指令系统 莫善军 中山大学工学院 Tel:(020师生交流博客 8086指令系统 从功能上包括六大类: 三、逻辑运算和移位类 逻辑运算 移位操作 逻辑运算和移位指令 指令类型 逻辑运算 与,或,非,异或 移位操作 非循环移位,循环移位 一、逻辑运算 逻辑运算指令对操作数的要求大多与MOV指令相同。“非”运算指令要求操作数不能是立即数; 除“非”运算指令外,其余指令的执行都会使标志位OF=CF=0 运算过程不进位、不借位 1.“与”指令: 格式: AND OPRD1,OPRD2 操作: 两操作数相“与”,结果送目标地址。 “与”指令的应用 实现两操作数按位相与的运算 AND BL,[SI] 使目标操作数的某些位不变,某些位清零 AND AL,0FH 高4位置0,保留低4位 在操作数不变的情况下使CF和OF清零 AND AX,AX “与”指令应用例 从地址为3F8H的端口中读入一个字节数,如果该数的bit1位为1,则可从38FH端口将DATA为首地址的一个字输出,否则就不能进行数据传送。 编写相应的程序段。 “与”指令应用例 “与”指令应用例 LEA SI,DATA MOV DX,3F8H WATT:IN AL,DX AND AL,02H JZ WATT ;ZF=1转移 MOV DX,38FH MOV AX,[SI] OUT DX,AX 2.“或”运算指令 格式: OR OPRD1,OPRD2 操作: 两操作数相“或”,结果送目标地址 “或”指令的应用 实现两操作数相“或”的运算 OR AX,[DI] 使某些位不变,某些位置“1” OR CL,0FH 保留高4位,低4位置1 在不改变操作数的情况下使OF=CF=0 OR AX,AX “或”指令的应用例 “或”指令的应用 3.“非”运算指令 格式: NOT OPRD 操作: 操作数按位取反再送回原地址 注: 指令中的操作数不能是立即数 指令的执行对标志位无影响 例:NOT BYTE PTR[BX] 4.“异或”运算指令 格式: XOR OPRD1,OPRD2 操作: 两操作数相“异或”,结果送目标地址 例: XOR BL,80H XOR AX,AX 5.“测试”指令 格式: TEST OPRD1,OPRD2 操作: 执行“与”运算,但运算的结果不送回目标地址。 应用: 常用于测试某些位的状态 例: 从地址为3F8H的端口中读入一个字节数,当该数的bit1, bit3, bit5位同时为1时,可从38FH端口将DATA为首地址的一个字输出,否则就不能进行数据传送。 编写相应的程序段。 源程序代码: LEA SI,DATA MOV DX,3F8H WATT:IN AL,DX MOV DX,38FH MOV AX,[SI] OUT DX,AX 逻辑运算指令应用 置1 OR 等同赋值 置0 AND 等同赋值 判断某一位是否是1,TEST 比较两个数是否相等,XOR 清除,全部赋值为0,XOR AX,AX 二、移位指令 非循环移位指令 循环移位指令 1. 非循环移位指令 逻辑左移 算术左移 逻辑右移 算术右移 算术左移和逻辑左移 算术左移指令: SAL OPRD,1 SAL OPRD,CL 逻辑左移指令: SHL OPRD,1 SHL OPRD,CL P124例3-30 左移指令实现乘法运算 逻辑右移 格式: SHR OPRD,I SHR OPRD,CL 逻辑右移例: MOV AL,68H MOV CL,2 SHR AL,CL 算术右移 格式: SAR OPRD,I SAR OPRD,CL 非循环移位指令的应用 左移可实现乘法运算 右移可实现除法运算 2. 循环移位指令 不带进位位的循环移位 带进位位的循环移位 不带进位位的循环移位 带进位位的循环移位 循环移位指令的应用
文档评论(0)