
四·逻辑指令指令分类逻辑运算AND、OR、XOR、NOT、TEST移位SHL、SAL、SHR、SAR循环移位ROL、ROR、RCL、RCR
四.逻辑指令 指令分类 逻辑运算 AND、OR、XOR、NOT、TEST 移 位 SHL、SAL、SHR、SAR 循环移位 ROL、ROR、RCL、RCR

逻辑运算:与、或、非、异或特点:二进制数运算,按位进行与运算:有0则0,全1则0例:0A111101 11000011B入1011 10100001A^B10011000或运算:有1则1,全0则0例:01010 11000A11001B10011.10010111AVB1011 1101
逻辑运算 :与、或、非、异或 特点:二进制数运算 ,按位进行 `与`运算:有0则0,全1则 `或`运算:有1则1,全0则0 A B 0 0 0 1 1 0 1 1 A∧B 0 0 0 1 A B 0 0 0 1 1 0 1 1 A∨B 0 1 1 1 例: 1101 1100 ∧ 1011 1010 1001 1000 例: 1010 1100 ∨ 0011 1001 1011 1101

非运算:0则1,1则0例:1A1011 1010A0100.0101异或运算:异则1,同则0例:10101100A00110011 1001文00B1100111001.0101AVIB
`非`运算: 0则1,1则0 `异或`运算:异则1,同则0 A 0 1 A 1 0 A B 0 0 0 1 1 0 1 1 A∨ B 0 1 1 0 例: 1011 1010 0100 0101 例: 1010 1100 ∨ 0011 1001 1001 0101

1.逻辑运算指令指令格式执行操作AND(dst)(dst) ^ (src)dst,src(dst)(dst) (src)ORdst, srcNOToprd(oprd)(oprd) ←(dst))←(dst) →(src)XORdst, srcTEST(oprd1)^ ((oprd2)oprd1, oprd2
指令格式 执行操作 AND dst,src (dst) ← (dst)∧(src) OR dst,src (dst) ← (dst)∨(src) NOT oprd (oprd)← (oprd) XOR dst,src (dst) ← (dst)∨(src) TEST oprd1,oprd2 (oprd1)∧(oprd2) 1. 逻辑运算指令

ANDAL, 0000 1111BORBX,00FFHNOTCLXORDL, ALTESTAL,0000 0001B除NOT指令单操作数外,其它均为双操作数可进行字节或字操作NOT指令不影响标志置CF、OF为0,AF不定(无意义其他指令SF、ZF、PF据结果置位TEST只影响标志位,不影响操作数
AND AL , 0000 1111B OR BX , 00FFH NOT CL XOR DL, AL TEST AL, 0000 0001B ⚫ 除NOT指令单操作数外,其它均为双操作数 ⚫ 可进行字节或字操作 ⚫ NOT指令不影响标志 ⚫ TEST只影响标志位,不影响操作数 其他指令 置CF、OF为0,AF不定 ( 无意义 ) SF、ZF、PF据结果置位

例数字字符的ASCII一→对应的二进制数ASCII数字 0~930H~39H39 H00111001BΛ0FH0000 1111 B09 H0000 1001B应用:MOV:利用DOS调用AH, 1INT21H从键盘输入字符到AL中ANDAL, 0000 1111B高4位为0,低4位不变
例 数字字符的ASCII → 对应的二进制数 ASCII 数字 0~9 30H~39H 应用: MOV AH, 1 ;利用DOS调用 INT 21H ;从键盘输入字符到AL中 AND AL, 0000 1111B ;高4位为0,低4位不变 、 0011 1001B 39 H ∧ 0000 1111 B 0F H 0000 1001B 09 H

逻辑运算常用于使操作数的某位为0或1,或测试某位为0还是1?使某位为1用该位与1相或,不变的位与0或使某位为0用该位与0相与,不变的位与1与。?使某位求反用该位与1异或,不变的位与0异或。●测试某位的值用TEST指令,据标志判断
逻辑运算常用于使操作数的某位为0或1, 或测试某位为0还是1。 ⚫使某位为1 用该位与1 相或,不变的位与0或。 ⚫使某位为0 用该位与0 相与,不变的位与1与。 ⚫使某位求反 用该位与1 异或,不变的位与0异或。 ⚫测试某位的值 用TEST指令,据标志判断

例21H端口管理中断系统,管理8个外设的中断0765214301010001D7D4D3D2D6D5D1DO为0,允许键盘中断为1,禁止允许键盘中断:INAL ,21H读入21端口内容ANDAL 1111 1101B置D1=0.其他位不变OUT21H AL送出屏蔽字到21H端口禁止键盘中断:INAL /21HOR;使D1为1AL.00000010BOUT21HAL
例 21H端口管理中断系统,管理8个外设的中断 为0, 允许键盘中断 为1, 禁止 7 6 5 4 3 2 1 0 1 0 1 0 0 0 1 0 D7 D6 D5 D4 D3 D2 D1 D0 允许键盘中断: IN AL,21H ;读入21端口内容 AND AL,1111 1101B ;置D1 = 0,其他位不变 OUT 21H ,AL ;送出屏蔽字到21H端口 禁止键盘中断: IN AL,21H OR AL,0000 0010B ;使D1为1 OUT 21H,AL

例379H端口的D7存放打印机的状态0764215310100100D7D3D2D0D6D5D4D1为0,表示打印机忙为1打印机空闲用查询方式控制打印机工作:MOVDX. 379HINAL, DX:从379H端口读状态ask::检测D7位TESTAL,1000 0000BJZask;为0,继续查询;输出字符打印print:
例 379H端口的D7存放打印机的状态 为0, 表示打印机忙 为1, 打印机空闲 7 6 5 4 3 2 1 0 1 0 1 0 0 0 1 0 D7 D6 D5 D4 D3 D2 D1 D0 用查询方式控制打印机工作: MOV DX, 379H ask: IN AL, DX ;从379H端口读状态 TEST AL, 1000 0000B ;检测D7位 JZ ask ;为0,继续查询 print: 、 ;输出字符打印

2.移位指令指令格式执行操作(cLSHLoprd,CFEI冈0(a.SAL oprd,CFEIF04taSHR oprd,0山CFCF(a.中+SAR (oprd
2 . 移位指令 SHL oprd, 1 CL SAL oprd, 1 CL SHR oprd, 1 CL SAR oprd, 1 CL CF 0 CF 0 0 CF CF 指令格式 执行操作