| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7993 人关注过本帖
标题:一个被人忽视的条件语句: 逻辑取反 "!"
取消只看楼主 加入收藏
tigerdown
Rank: 1
等 级:新手上路
帖 子:72
专家分:8
注 册:2017-8-21
结帖率:64.29%
收藏
已结贴  问题点数:5 回复次数:1 
一个被人忽视的条件语句: 逻辑取反 "!"
刚开始,我把它误作为"不等于 != "条件语句,随后我查了二本书,它们是这样叙述的:
中文书:!逻辑取反 ---- 对变量取反或对表达式的结果取反
英文书: ! express ---- Returns true when express is false

显然前者解释得更具体,更精准。下面我举个例子来看一下,这条件语句是怎样被巧妙运用的,这对程序员是非常有用的。
这是程序中的一段,它是用来阅读文件的:

;循环读出文件并处理每个字节
;********************************************************************
..............
        xor    eax,eax
        mov    @dwBytesRead,eax
        .while    TRUE
            lea    esi,@szReadBuffer
            invoke    ReadFile,@hFile,esi,sizeof @szReadBuffer,addr @dwBytesRead,0
            .break    .if ! @dwBytesRead  ;!- 逻辑取反 0>>1,1>>0
            invoke    _FormatText,esi,@dwBytesRead,@hFileNew
        .endw
.................

用while语句来循环阅读文件,当阅读完文件后,@dwBytesRead为0, 取反后为1, 跳出循环,另外,当@dwBytesRead
不为0时,设置为0, 这是reafIle()的前置要求,所以只有用这语句才能更好地实现。如果谁能更详细更准确地解读这语句,请让我们分享一下。
搜索更多相关主题的帖子: 取反 语句 条件 循环 逻辑 
2020-10-06 15:55
tigerdown
Rank: 1
等 级:新手上路
帖 子:72
专家分:8
注 册:2017-8-21
收藏
得分:0 
回复 2楼 Valenciax
确实如此,另外面对繁多的汇编指令,运用起来总觉得有点力不从心,你是否能推荐一本类似指令大全的书,能让程序员快速查询,谢谢了。
2020-10-08 06:09
快速回复:一个被人忽视的条件语句: 逻辑取反 "!"
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016491 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved