文档详情

数据处理位操作和字符串操作指令.pptx

发布:2025-04-16约5.02千字共10页下载文档
文本预览下载声明

计算机中最基本的数据单位是二进制位针对二进制位进行操作、实现位控制的指令逻辑运算指令移位指令……进行一位或若干位处理,采用位操作类指令3.6位操作类指令

23.6.1逻辑运算指令逻辑与指令AND逻辑或指令OR逻辑非指令NOT逻辑异或指令XOR测试指令TEST除NOT指令不影响标志外其他逻辑指令使OF=CF=0根据结果按定义影响ZF、SF和PF

1.逻辑与指令AND逻辑与(逻辑乘)运算规则:两位都是逻辑1,则结果是1;否则,结果是0逻辑与指令AND:按位进行逻辑与,结果返回目的操作数ANDdest,src ;逻辑与:dest←dest?src设置CF=OF=0影响SF,ZF和PFTBATAB010111001000真值表与门电路逻辑表达式010001010011000100000001?

2.逻辑或指令OR逻辑或(逻辑加)运算规则:两位都是逻辑0,则结果是0;否则,结果是1逻辑或指令OR:按位进行逻辑或,结果返回目的操作数ORdest,src ;逻辑或:dest←dest?src设置CF=OF=0影响SF,ZF和PFTBATAB110111101000真值表或门电路逻辑表达式010001010011000101110101?

3.逻辑非指令NOT逻辑非(逻辑反)运算规则:原来为0的位变成1,原来为1的位变成0逻辑非指令NOT:按位进行逻辑非,结果返回操作数NOTreg/mem ;逻辑非:reg/mem←~reg/mem不影响状态标志位TA真值表非门电路逻辑表达式0110TAT=A0100010110111010~

4.逻辑异或指令XOR逻辑异或(逻辑半加)运算规则:两位不同(相异),则结果是1;否则,结果是0逻辑异或指令XOR:按位进行逻辑异或,结果返回目的操作数XORdest,src ;逻辑或:dest←dest?src设置CF=OF=0影响SF,ZF和PFTAB010001010011000101110100?110011101000TBA真值表异或门电路逻辑表达式

01;定义数据段:02varAdwordvarBdword03varT1dword?04varT2dword?05moveax,varA06;EAX=07noteax08;EAX=09andeax,varB10;EAX=〔例〕逻辑运算程序-1

movebx,varB01;EBX=02notebx03;EBX=04andebx,varA05;EBX=06oreax,ebx07;EAX=08movvarT1,eax09

0102moveax,varAxoreax,varB;EAX=movvarT2,eax;moveax,varT1 ;二进制形式显示VART1calldispbdcalldispcrlf ;换行显示moveax,varT2 ;二进制形式显示VART2calldispbd运行结果〔例〕逻辑运算程序-2

AND指令复位某些位(同0与),不影响其他(同1与)1OR指令置位某些位(同1或),不影响其他(同0或)2XOR求反某些位(同1异或),不影响其他(同0异或)3andbl ;BL中D0和D3清0,其余位不变4orbl ;BL中D0和D3置1,其余位不变5xorbl ;BL中D0和D3求反,其余位不变复位Reset:清0,清除Clear置位Set:置16逻辑运算的屏蔽作用

5.测试指令TEST按位进行逻辑与运算,不返回逻辑与结果TESTdest,src;作逻辑与运算:dest?srcTEST指令像AND指令一样来设置状态标志TEST指令常用于检测一些条件是否满足,一般后跟条件转移指令,目的是利用测试条件转向不同的分支AND与TEST?TEST与CMP?

3.6.2移位指令逻辑左移指令SHL逻辑右移指令SHR算术左移指令SAL算术左移指令SARS:ShiftR:RotateL:LeftR:RightA:ArithmeticC:Carryflag不带进位循环左移指令ROL不带进位循环右移指令ROR带进位循环左移指令RCL带进位循环右移指令RCR

1.移位指令分逻辑(Logical)和算术(Arithmetic)移位具有左移(Left)或右移(Right)操作 SHLreg/mem,i8/CL ;逻辑左移:最低位补0,最高位进入CF SHRreg/mem,i8/CL ;逻辑右移:最高位补0,最低位进入CF SALreg/mem,i8/CL ;算术左移,与SHL是同一条指令 SARreg/mem,i8/CL ;算术右移:最高位不变,最低

显示全部
相似文档