版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章逻辑运算7.1逻辑运算指令7.2移位及循环移位7.1逻辑运算指令所有的逻辑指令都将处理寄存器或存储器中的一个字节或一个字。指令将被操作(参与运算)的字节、字的各位予以配对,并且设定CF、OF、PF、SF和ZF标志的状态,AF标志对于用户没有意义。7.1.1逻辑指令1.AND与运算假如被配对的两个位都为1,则其结果为1;而在其他的情况中,它的值均为0。2.OR或运算假如被配对的两个位其中有一个为1,则其结果为1;假如两者都是0,则结果为0。3.XOR异或运算假如被配对的两个位其中一个为0,而另一个为1,则结果为1;假如被配对的两个位是相同值(都为0或都为1),其结果为0。参与逻辑运算的操作数有两个,第一个操作数所指定的字节或字,存放在寄存器或存储器单元中,其中的值是唯一可改变的,因为最后的结果存放在此寄存器或存储器单元中。例如,下面的AND、OR及XOR指令,使用的操作数值是相同的。例7.1下列逻辑运算中,各题目彼此是互不相关的,假设AL的内容为11000101,BH的内容为01011100,进行下列逻辑运算后,相应的寄存器被设为:(1)ANDAL,BH ;将AL设为01000100(2)ORBH,AL ;将BH设为11011101(3)XORAL,AL ;将AL设为00000000(4)ANDAL,00 ;将AL设为00000000(5)ANDAL,0FH ;将AL设为00000101(6)ORCL,CL ;设定SF及ZF例7.1中的(3)和(4)提供了一个将寄存器清为0的方法。(5)将AL的高4位清为0。可以利用OR来完成下面的操作目的,也可以利用CMP指令(这样可能会更清楚)。
例7.2OR的使用。(1)ORCX,CX ;测试CX是否为0JZ… ;如果为0则转移(2)ORCX,CX ;测试CX的正负号JS… ;如果为负则转移4.TESTTEST的功能与AND相似,但是它只设定标志的值,不将结果存于第一个操作数的寄存器或存储器单元中。
例7.3TEST的使用。(1)TESTBL,11110000B ;BL的高4位是否有不为0的位?JNZ…(2)TESTAL,00000001B ;AL的内容是否为奇数?JNZ…(3)TESTDX,0FFH ;DX的内容是否为0?JZ…5.NOTNOT是另一种逻辑运算指令,它的作用是将寄存器或存储器单元中的字节或字的每个位取反,即0→1,1→0。例如,假设AL的内容为11000101,那么NOTAL指令会将AL的内容变为00111010。NOT与NEG二者并不相同,NEG是求一个数的相反数,它会将所有的位取反,然后再加1(即求补)。NEG进行的是0-操作数。例如,0FFH(-1)经NEG后变为01H(+1)。TEST与AND作用相同也是与运算,但是只设定标志,并不改变该位的值。7.1.2将小写转换为大写
例7.4将小写转换成大写。在许多情况下,需要将大写与小写字母进行转换。例如,你可能接收到一个文件,里面的内容是由大写字母所组成的,或者一个程序,允许使用者以大写或小写回答命令(例如YES或yes),你需要将它们转换后再进行测试。大写字母A~Z,以十六进制的ASCII码表示即41H~5AH;而小写字母a~z的ASCII码是61H~7AH。二者唯一不同之处是,大写的b5位是0,而小写的b5位是1,如下所示:位:76543210位:76543210字母A:01000001字母Z:01011010字母a:01100001字母z:01111010例7.4的程序清单(L74.LST)如下:;filename:L74.ASM———————————————0000 CODESEGMENTPARA‘CODE’ ASSUMECS:CODE,DS:CODE,SS:CODE0100 ORG100H0100EB1C90 BEGIN:JMPMAIN;—————————————————————4368616E676520 TITLEXDB‘Changetouppercaseletters’746F2075707065 7263617365206C 657474657273 ;—————————————————————011EMAINPROCNEAR011E8D1E0104R LEABX,TITLEX+1
;被转换字母开始地址
B9001A MOVCX,26 ;被转换字母数
0125 B20:8A27 MOVAH,[BX] ;从TITLEX栏取字母
80FC61 CMPAH,61H ;若字母小于a012A720A JBB30 ;若字母大于z012C80FC7A CMPAH,7AH ;则
012F7705JAB30;转B3080E4DFANDAH,11011111B ;若字母是小写转换成大写8827MOV[BX],AH ;转换结果仍存入TITLEX0136 B30:43 INCBX ;指向下一个字母
0137E2EC LOOPB200139C3 RET013A MAINENDP013A CODEENDSENDBEGIN例7.4的程序,从TITLEX+1的偏移地址开始,将TITLEX字符串的字母从小写转换为大写,此程序设定BX的初值为TITLEX+1的偏移地址,然后利用此地址,把从TITLEX+1开始的字节一一传送给AH。假如,字节的值是在61H到7AH的范围内,则AND指令将会把b5位设为0:ANDAH,11011111B所有不是a~z的字节,则不会改变其内容。这个程序同时把被转换后的字节再送回TITLEX,并且增加BX的值,以便处理下一个字节。7.2移位及循环移位移位和循环移位指令是CPU逻辑处理能力的一部分。它们具有下列几项功能。(1)可以作用在一个字节或字上;(2)可以作用在寄存器或存储器上;(3)可以向左或向右移位/循环移位;(4)假如作用的是字节,则最多可以移位/循环移位8位;如果是字,则可以达到16位;(5)可分为逻辑(不带正负号)或算术(带有正负号)的移位;(6)如果移位的位是1位,则可以直接写成操作数1;假如,移位的位数大于1位,那么就要将此值传送给CL寄存器。7.2.1移位被移出的位将置入CF标志中。图7-1是移位指令的助记符和图形说明。图7-1移位指令的助记符和图形说明例如,SHR的使用(下面的指令是连续的)。MOVCL,03(AL)MOVAL,10110111B;10110111SHRAL,1;01011011向右移1位SHRAL,CL;00001011向右移3位第一条SHR将AL的内容向右移1位。被移出的位放在CF标志中,CF为1;并在AL的最左(最高)位移入0。第二条SHR将AL向右移3位。CF标志的内容依序变化为1、1及0,并且在AL的最左边三个位补0。例如,利用SAR向右算术移位的情况。MOV CL,03(AL)MOV AL,10110111B ;10110111SAR AL,1;11011011向右移1位SAR AL,CL;11111011向右移3位SAR与SHR有一重要的不同点,即SAR利用正负号位去填补最左边(最高位)空出的位,即最高位保持不变。利用这种方法,正值与负值都保持它们原来的正负号。上面的例子正负号位的值为1。向左移位是在右边的位置上补0。因此,SHL及SAL的作用就完全相同了。向左移位可以使移位的值乘以2,向右移位可以使移位的值除以2。这是一种非常有用的方法,并且二者都比用乘除指令更快速。奇数(例如,5和7)在除以2时,所得的值会比真正的值小(分别是2和3),并且CF被设定为1。如果要移动两个位,可以连续使用两条移位指令,这样会比将2放入CL中,再用一条移位指令效率更高。利用JC(如有进位则转移)指令,可以测试被移入CF标志的位。7.2.2循环移位循环移位指令会将被移出的位再回送给空出的位。图7-2是循环移位指令的助记符和图形说明。图7-2循环移位指令的助记符和图形说明例如,下面的指令序列用来说明ROR的作用。MOVCL,03(BL)MOVBL,10110111B;10110111RORBL,1;11011011向右循环移1位RORBL,CL;01111011向右循环移3位第一条ROR,是把BL的最右边的一个位移出,将它放在BL最左边空出来的位中。第二条ROR移出最右边的三个位,将它依顺序放在BL最左边的3个位中。RCR和RCL两条指令,将和CF标志一起循环移位。被移出的位移入CF中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度金融信息服务临时工劳动合同书
- 2025年度商铺租赁合同范本:现代商业综合体租赁管理细则3篇
- 个性化私人合作协议模板2024版B版
- 2025年度个人与个人草原保护管理服务合同范本3篇
- 2025年字画装裱作品定制与售后服务合同3篇
- 2025年度美甲行业品牌形象设计与承包合同
- 2025年精装房装修材料运输与储存合同3篇
- 土地登记相关法律知识-土地登记代理人《土地登记相关法律》押题密卷1
- 2025年度生态环保技术引进承包合同规范范本4篇
- 2025版文化创意设计师专属聘用协议3篇
- 《社会工作实务》全册配套完整课件3
- 单位违反会风会书检讨书
- 2024年4月自考00832英语词汇学试题
- 《电力用直流电源系统蓄电池组远程充放电技术规范》
- 《哪吒之魔童降世》中的哪吒形象分析
- 信息化运维服务信息化运维方案
- 汽车修理厂员工守则
- 公安交通管理行政处罚决定书式样
- 10.《运动技能学习与控制》李强
- 冀教版数学七年级下册综合训练100题含答案
- 1神经外科分级护理制度
评论
0/150
提交评论