有理数混合运算口诀.doc_第1页
有理数混合运算口诀.doc_第2页
有理数混合运算口诀.doc_第3页
有理数混合运算口诀.doc_第4页
有理数混合运算口诀.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

饭客网络安全培训基地中国最大的网络安全培训. 只做网络安全 信息安全方面的培训宗旨:坚持 宣传 信誉 实力 回报专业培训网络信息安全人才 成就中国网络安全边防军团第十课逻辑运算类指令与移位类指令需要掌握的内容:1. 学会逻辑运算类指令2. 学会移位类指令1. 逻辑运算类指令AND(And)逻辑与指令OR(Or)逻辑或指令NOT(Not)逻辑非指令XOR(Exclusive Or)异或指令TEST(Test)测试指令1) AND(And)格式:and dst,src(dst是目的Destination,src是源Source)执行操作:dstdstsrc全1为1,有0则0。and al,ahand ax,bxand ax,es:123H例:将AL寄存器第0位清0moval,00001111Band al,0FEH;=and al,11111110Bmov al,11011110Bandal,00110011B;al=0001 0010H2) OR(Or) 格式:or dst,src执行操作:dstdstsrc有1则1,全0则0。or al,ahor ax,bxor al,123H例:将AL寄存器第0位置1or al,1mov al,11001100Bor al,00010011B;al=11011111B3) NOT(Not)格式:not opr执行操作:opr1变0,0变1。not alnot axnot byte ptr 123H例:将AL寄存器全部按位取反not almov al,11001100Bnot al;al=00110011B4) XOR(Exclusive Or)格式:xor dst,src执行操作:dstdst src相同则0,不同则1。xor ax,bxxor ax,bx例:将AL寄存器全部清0xor al,al测试AL与AH寄存器的内容是否相等xor al,ah;=cmp al,ah5) TEST(Test)格式:test opr1,opr2执行操作:opr1opr2,但不保存结果,仅置标志位。test al,bltest ax,bxtest al,es:bx例:测试AL寄存器的最高位是1还是0test al,80H;test al,1000000B 如果al最高位为1则SF=1,为0则SF=0以上五种指令中,NOT不允许使用立即数,其它4条指令的目的操作数不能使用立即数,并且最多只能有一个操作数为内存寻址。NOT指令不影响标志位,其它4种指令将使CF和OF位为0,AF位无定义,而SF、ZF、和PF位则根据运算结果设置。逻辑运算指令对字或字节执行按位操作,主要用于将字或字节的指定位进行置1、清0、取反操作,测试字或字节指定的位,以及对字、字节数据进行拆分与拼装操作。2. 移位类指令SHL(Shift Logical Left)逻辑左移指令SAL(Shift Arithmetic Left)算术左移指令SHR(Shift Logical Right)逻辑右移指令SAR(Shift Arithmetic Right)算术右移指令ROL(Rotate Left)循环左移指令ROR(Rotate Right)循环右移指令RCL(Rotate Left with Carry)带进位循环左移指令RCR(Rotate Right with Carry)带进位循环右移指令1) SHL(Shift Logical Left)格式:shl opr,cnt (oproprand,cntcounter)逻辑左移SHL OPR,CNTCFOPR0执行操作:其中,OPR可以是除立即数以外的任何寻址方式。移位次数由CNT决定,CNT可以是1或CL。CNT为1时只移一位,如需要移位次数大于1,则可以在该移位指令前把移位次数置于CL寄存器中,并将移位指令中的CNT写为CL即可。11010011B10100110B 算术左移SAL OPR,CNTCFOPR02) SAL(Shift Arithmetic Left)格式:sal opr,cnt执行操作:3) SHR(Shift Logical Right)CFOPR0逻辑右移SHR OPR,CNT格式:shr opr,cnt执行操作:11010011B01101001;111010011B00110100;24) SAR(Shift Arithmetic Right)CFOPR算术右移SAR OPR,CNT格式:sar opr,cnt执行操作:逐位右移,同时最高位复制,即如果原来最高位是0,则仍为0,如果原来是1,则仍为1。这是补码算术右移的规则。11010011B11111010B;3CFOPR循环左移ROL OPR,CNT5) ROL(Rotate Left)格式:rol opr,cnt执行操作:11010011B01001111B;2CFOPR循环右移ROR OPR,CNT6) ROR(Rotate Right)格式:ror opr,cnt执行操作:11010011B01101001B;1CFOPR带进位循环右移RCL OPR,CNT7) RCL(Rotate Left with Carry)格式:rcl opr,cnt执行操作:11010011B(CF=0) 10100110B CF=1CFOPR带进位循环右移RCR OPR,CNT8) RCR(Rotate Right with Carry)格式:rcr opr,cnt执行操作:所有移位指令都可以对字或字节进行操作。对标志位的影响:CF位根据各指令的规定设置。OF位只有当CNT=1时方有效,移位后最高有效位的值发生变化时(原来为0,移位后为1;原来为1,移位后为0)OF位置1,否则清0。循环移位指令不影响除CF和OF以外的其他标志。而其它移位指令则根据移位后的结果设置SF、ZF和PF位,但对AF位则无定义。算术移位指令用于带符号数乘以2或除以2的运算;逻辑移位指令则用于无大小意义的移位操作。循环移位用于多精度移位,及字、字节数据的拆分、拼装。CFOPR0逻辑右移SHR OPR,CNTCFOPR算术右移SAR OPR,CNTCFOPR循环右移ROR OPR,CNTCFOPR带进位循环右移RCR OPR,CNTCFOPR循环左移ROL OPR,CNTCFOPR带进位循环右移RCL OPR,CNT逻辑及算术左移SHL(SAL)OPR,CNTCFOPR0移位指令的操作示意图例:将AL寄存器高4位与低4位互换movcl,4rolal,cl或者:movcl,4ror al,cl例:若不发生溢出,求1.5*AXAX的程序段。movbx,axsalax,1;2AXAXaddax,bx;3AXAXsarax,1;1.5AXAX例:设x为32位双字数据,内存的存放地址为X,求2X及X/2的程序段。Xdd*H2X程序段:salword ptr X,1;X的低16位乘以2,移出的位存于CFrclword ptr X+2,1;X的高16位乘以2,并将低16位移出的位移入第16位X/2程序段:sarword ptr X+2,1;X的高16位除以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论