汇编语句in al,port_val out port_val and 0feh,al的效果是什么

来源:百度知道 编辑:UC知道 时间:2024/06/25 11:59:09
in al,port_val
out port_val and 0feh,al
为什么这个语句能达到这样的效果:如果端口号port_val为偶数,则输出端口号与输入端口号相同,而如果port_val 为奇数则输出端口号比输入端口号小1?

因为port_val and 0feh这条语句表示把端口号和0fe(即11111110)相与,结果最后一位清零。
当端口号为奇数时,因为最后一位本来为1,相与后变为0,所以就小1;
当端口号为偶数时,因为最后一位本来为0,相与后还是为0,所以就保持原值不变。