学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等
16lz
2021-04-30
学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等
.IF、.ELSEIF、.ELSE、.ENDIF: 条件伪指令
;可以使用和 C 语言类似的条判断:a == ba != ba > ba >= ba < ba <= ba && ba & ba || b!a;还可以直接判断几个常用的标志位:CARRY? ;进位标志OVERFLOW? ;溢出标志PARITY? ;奇偶标志SIGN? ;符号标志ZERO? ;零标志
; Test30_1.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc xor eax, eax .if !eax PrintText 'EAX = 0' .endif ; mov eax, 3 .if eax == 3 PrintText 'EAX = 3' .else PrintText 'EAX != 3' .endif ; mov eax, 4 .if eax == 3 PrintText 'EAX = 3' .elseif eax > 3 PrintText 'EAX > 3' .else PrintText 'EAX < 3' .endif retmain endpend main; Test30_2.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc mov eax, 1 mov edx, 0 .if eax && edx PrintText '&&' .endif .if eax || edx PrintText '||' ; .endif .if eax & edx PrintText '&' .endif retmain endpend main
.WHILE、.ENDW: While 循环伪指令:
; Test30_4.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc mov eax, 9 .while eax > 0 PrintDec eax dec eax .endw retmain endpend main
.REPEAT、.UNTIL: Repeat 循环伪指令:
; Test30_5.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc mov eax, 9 .repeat PrintDec eax dec eax .until eax == 0 retmain endpend main
.While 与 .Repeat 都支持 .Break 和 .Continue
.WHILE 与 .BREAK:
; Test30_6.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc mov eax, 9 .while TRUE PrintDec eax dec eax .break .if eax == 5 .endw retmain endpend main
.REPEAT 与 .CONTINUE:
; Test30_7.asm.386.model flat, stdcallinclude windows.incinclude kernel32.incinclude masm32.incinclude debug.incincludelib kernel32.libincludelib masm32.libincludelib debug.lib.codemain proc mov eax, 0 .repeat inc eax .continue .if eax == 2 PrintDec eax .until eax > 3 retmain endpend main
posted on 2010-04-21 17:26 万一 阅读(6424) 评论(0) 编辑 收藏©著作权归作者所有:来自51CTO博客作者JLee79的原创作品,如需转载,请注明出处,否则将追究法律责任
更多相关文章
- 学 Win32 汇编[23] - 位测试与位扫描指令: BT、BTC、BTR、BTS、B
- 学 Win32 汇编[22] - 逻辑运算指令: AND、OR、XOR、NOT、TEST
- 学 Win32 汇编[21] - 传送指令: MOV、LEA、XCHG、XLATB、XLAT、M
- 学 Win32 汇编[20]: 洞察标志寄存器
- 学 Win32 汇编[29] - 串指令: MOVS*、CMPS*、SCAS*、LODS*、REP
- 学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
- 学 Win32 汇编[26] - 加减指令: INC、DEC、NEG、ADD、ADC、SUB、
- 学 Win32 汇编[25] - 符号扩展指令: CBW、CWDE、CDQ、CWD
- jQuery中的$.ajax方法,以及基本的vue指令操作