欢迎来到天天文库
浏览记录
ID:61916092
大小:303.50 KB
页数:35页
时间:2021-03-29
《微机原理4[1].4逻辑运算及串操作指令.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、三、位操作指令可对8位或16位的寄存器或存储器单元中的内容按位进行操作,包括:1、逻辑运算指令2、逻辑移位指令1、逻辑运算指令(1)逻辑与指令AND(2)逻辑或指令OR(3)逻辑异或指令XOR(4)测试指令TEST(5)求反指令NOT(1)逻辑与指令AND指令格式:ANDdest,src;dest←dest∧src指令功能:将目的操作数和源操作数进行逻辑与运算,结果存入目的操作数。另外,AND指令可使目的操作数的某些位保留(和“1”相“与”)或清除(和“0”相“与”),常用于屏蔽某些位,同时可使CF=0。指令规范同算术运算ADD指令。例1:A
2、NDDX,50H[SI+BX]设DX=A800H,[50H+SI+BX]=6677H结果:DX=2000H10101000000000000110011001110111∧0010000000000000例2:将AL中第3位和第7位清零。ANDAL,77H(2)逻辑或指令OR指令格式:ORdest,src;dest←dest∨src指令功能:将目的操作数和源操作数进行逻辑或运算,结果存入目的操作数。另外,OR指令可使目的操作数的某些位保留(和“0”相“或”)或置1(和“1”相“或”).常用于:对操作数某些位置1;组合某一特定数;清CF(CF=
3、0)。例3:将AL寄存器中第3位和第7位置1。ORAL,88H例4:ORAL,80H;AL最高位置1,其余位不变ORAL,AL;AL不变,CF=0ORAX,00FFH;AX低8位置1,高8位不变ORBUFFER[SI],CX;两数的“或”操作(3)逻辑异或指令XOR指令格式:XORdest,src;dest←dest⊕src指令功能:目的操作数与源操作数做按位异或运算,结果送入目的操作数。说明:按位异或运算法则为:1⊕0=1,1⊕1=0,0⊕1=1,0⊕0=0。常用于:使某操作数清零,同时进位位清零(CF=0);使目的操作数中若干位取反(不变
4、位与0异或,取反位与1异或)。例5:按位异或运算。MOVAL,45H;AL=45HXORAL,31H;AL=74H例6:XORAL,AL;使AL=00H,CF=0XORAL,3;使AL低两位取反,其余不变XORAX,BXXORBUFFER[SI],CX0100010100110001⊕01110100(4)测试指令TEST指令格式:TESTdest,src;dest∧src指令功能:源操作数和目的操作数的内容执行按位的逻辑与运算,根据结果置SF、PF、ZF,且CF=OF=0,而AF位无定义。dest,src内容不变。常用于:在不改变原来操作数
5、的情况下,检测某一位或某几位是否为1或为0。编程时,用在条件转移指令前产生条件。例7:测试AX中的第12位是否为0,不为0则转L1。TESTAX,1000H;0001000000000000BJNEL1第12位(5)求反指令NOT指令格式:NOTOPR;B/W指令功能:将操作数OPR逐位取反后再送OPR。操作结果不影响任何标志位。OPR是通用寄存器或存储器,不能为立即数。例8:逻辑非运算。MOVAX,878AH;AX=878AHNOTAX;AX=7875H例9:从4000H开始的单元中有32个带符号数,统计出其中负数个数并存入BUFFER单元
6、。XORDX,DXMOVSI,4000HMOVCX,20HAGAIN:MOVAL,[SI]INCSITESTAL,80HJZNEXTINCDXNEXT:DECCXJNZAGAINMOVBUFFER,DXHLT4000H4001H401FHMDS:SIBUFFER2、逻辑移位指令(1)非循环移位指令:1)SHL逻辑左移2)SAL算术左移3)SHR逻辑右移4)SAR算术右移(2)循环移位指令:1)ROL不带进位循环左移2)ROR不带进位循环右移3)RCL带进位循环左移4)RCR带进位循环右移SHLdest,count;逻辑左移SHRdest,co
7、unt;逻辑右移SALdest,count;算术左移SARdest,count;算术右移CML00MLCCML0MLC注意:移位指令影响标志位CF、OF、PF、SF和ZF。如果只移一位,指令中用1指出移位的位数,如果超过1位,必须用CL预先指明移位的位数。例10:SALDX,1;DX中的数左移1位MOVCL,4SALAX,CL;AX中的数左移4位SHLAL,CL;SHRAL,CL;AL中的数右移4位例11:将两个非组合BCD数(高阶存BL,低阶存于AL中),转换成一个组合的BCD数,存于AL中。0000****BL0000****ALOR**
8、**0000BLSHL程序段:MOVCL,4SHLBL,CLORAL,BLHLT********AL例12:计算x*10。(1)采用乘法指令:MOVBL,10MUL
此文档下载收益归作者所有