标题:一个被人忽视的条件语句: 逻辑取反 "!"
取消只看楼主
tigerdown
Rank: 1
等 级:新手上路
帖 子:63
专家分:3
注 册:2017-8-21
结帖率:69.23%
已结贴  问题点数: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
等 级:新手上路
帖 子:63
专家分:3
注 册:2017-8-21
得分:0 
回复 2楼 Valenciax
确实如此,另外面对繁多的汇编指令,运用起来总觉得有点力不从心,你是否能推荐一本类似指令大全的书,能让程序员快速查询,谢谢了。
2020-10-08 06:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-503361-1-1.html




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

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