例数字字符的ASCⅡ→对应的二进制数 ASCII 数字0~930H~39H 00111001B 39H ∧0000111B OFH 00001001B 09H 应用: MOV AH.I 利用DOS调用 NT 21H ;从键盘输入字符到AL中 AND AL,0000111;高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指令,据标志判断
例2IH端口管理中断系统,管理8个外设的中断 76543210 10|100|010 D7 D6 D5 D4 D3 D2 D1 DO 为0,允许键盘中断 为1,禁止 允许键盘中断: AL 21H 读入21端口内容 AND AL,1110B;置D1=0,其他位不变 OUT 21H AL ;送出屏蔽字到21H端口 禁止键盘中断: AL 21H ORAL,000000;使D1为1 OUT 2IH AL
例 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存放打印机的状态 765432 10100|0 0 D7 D6 D5 D4 D3 D2 DI DO 为0,表示打印机忙 为1,打印机空闲 用查询方式控制打印机工作: MOV DX. 379H ask N AL。DX ;从379H端口读状态 TEST AL,100000;检测D7位 JZ ask 为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.移位指令 指令格式 执行操作 SHL oprd,tcL CF+EI +0 SAL oprd, LCL CF 10 SHR oprd, CL 0- +ECE SAR oprd, CF CL
2 . 移位指令 SHL oprd, 1 CL SAL oprd, 1 CL SHR oprd, 1 CL SAR oprd, 1 CL CF 0 CF 0 0 CF CF 指令格式 执行操作