WIN32汇编的高级语法
来源:互联网 发布:小米盒子 软件 编辑:程序博客网 时间:2024/06/04 15:19
1.条件测试语句
操作符和逻辑运算 操 作 用 途
==
等于
变量和操作数之间的比较
!=
不等于
变量和操作数之间的比较
>
大于
变量和操作数之间的比较
>=
大于等于
变量和操作数之间的比较
<
小于
变量和操作数之间的比较
<=
小于等于
变量和操作数之间的比较
&
位测试
将变量和操作数做“与”操作
!
逻辑取反
对变量取反或对表达式的结果取反
&&
逻辑与
对两个表达式的结果进行逻辑“与”操作
||
逻辑或
对两个表达式的结果进行逻辑“或”操作
x==3
eax!=3
(y>=3)&&ebx
(z&1)||!eax
MASM的条件测试采用的是和C语言相同的语法。对于不含比较符的单个变量或寄存器,MASM也将所有非零值认为是“真”,零值认为是“假”
MASM的条件测试语句有几个限制:
(1)表达式的左边只能是变量或寄存器,不能为常数;
(2)表达式的两边不能同时为变量,但可以同时是寄存器。
这些限制来自于80x86的指令,因为条件测试伪操作符只是简单地把每个表达式翻译成cmp或test指令,80x86的指令集中没有cmp 0,eax之类的指令,同时也不允许直接操作两个内存中的数。
标志位的状态条件测试:
CARRY? 表示Carry位是否置位
OVERFLOW? 表示Overflow位是否置位
PARITY? 表示Parity位是否置位
SIGN? 表示Sign位是否置位
ZERO? 表示Zero位是否置位
2.分支语句、只能用于无符号数
3.循环语句
.while 条件测试表达式
指令
[.break [.if 退出条件]]
[.continue]
.endw
或
.repeat
指令
[.break [.if 退出条件]]
[.continue]
.until 条件测试表达式 (或.untilcxz [条件测试表达式]
.while eax > 1
mov esi,1
.break .if ebx
.continue
mov esi,2
.endw
loop指令可以自动递减ecx的值来控制循环,不使用loop将会在循环体内多设置一条参数递减的指令,但不用loop指令的好处是带来更多的灵活性。
- WIN32汇编的高级语法
- win32汇编-高级语法
- Win32汇编教程二 Win32汇编程序的结构和语法
- Win32汇编教程二:Win32汇编程序的结构和语法
- Win32 Linux汇编语法区别
- WIN32汇编的一些基础知识
- 学习WIN32汇编的方法
- WIN32汇编实现的HashTable
- 关于win32汇编的调试
- Win32汇编 API的调用
- WIN32汇编对话框的使用
- WIN32汇编定时器的使用
- WIN32汇编 状态栏的使用
- WIN32 汇编 工具栏的使用
- Win32汇编教程之一:Win32汇编的环境和基础
- 罗云彬win32汇编教程笔记 Win32汇编的标号和 @@
- 汇编的基本语法
- Win32 汇编
- _beginThreadex的用法
- 用户界面线程实现
- 8086 汇编指令速查手册(转)
- Win32中的字符串处理
- EnumWindow 枚举窗口
- WIN32汇编的高级语法
- 读《奇特的人生》的一些感受
- 开发人员应该用好的一些网站[转]
- 对C++ TR1 regular expressions的简单使用
- 用户 组 交叉性权限管理 概念
- 集群技术综述
- 快速了解集群和双机热备相关知识
- vc 中关于Unicode的一些总结
- 参考文献怎么写~(这个老是忘,所以贴在这里)