首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

[填写指令](AL)=BFH,要求屏蔽第0,1两位,则要执行指令( AND AL,3F );如果要求第0,1位变反,可使用指令( XOR AL,3F

(AL)=BFH,要求屏蔽第0,1两位,则要执行指令( AND AL,3F );如果要求第0,1位变反,可使用指令( XOR AL,3F )

为什么是3F,是写错了吧?应该是BF的吧!
昵称: kartik  时间: 2010-12-25 22:47:28
第0,1两位?D0和D1么?,应该是指低2位吧
如果是D0和D1置0,那么
and al,0fch
xor al,03h
如果是D6,D7高两位,那么
and al,3fh
xor al,3fh
你可以DEBUG下试试

昵称: va_zaixuexi  时间: 2010-12-25 22:59:09
引用 1 楼 va_zaixuexi 的回复:
第0,1两位?D0和D1么?,应该是指低2位吧
如果是D0和D1置0,那么
and al,0fch
xor al,03h
如果是D6,D7高两位,那么
and al,3fh
xor al,3fh
你可以DEBUG下试试

为什么是3f啊
昵称: kartik  时间: 2010-12-25 23:16:27
0011 1111 = 3F,高2位置0
昵称: va_zaixuexi  时间: 2010-12-25 23:28:47
引用 3 楼 va_zaixuexi 的回复:
0011 1111 = 3F,高2位置0

这么说跟AL的值无关了?
昵称: kartik  时间: 2010-12-25 23:40:50
大哥,AL是8位的啊,不是4位的......
昵称: va_zaixuexi  时间: 2010-12-25 23:50:26
不是,那0111 1111与3f(即00111111)异或结果应该是01000000
正好是把除了高二位的所有的取反,不就错了吗?
昵称: 昕姐99  时间: 2013-06-03 21:41:36
对劲,是我错了
昵称: 昕姐99  时间: 2013-06-03 22:58:00