学 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的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 学 Win32 汇编[23] - 位测试与位扫描指令: BT、BTC、BTR、BTS、B
  2. 学 Win32 汇编[22] - 逻辑运算指令: AND、OR、XOR、NOT、TEST
  3. 学 Win32 汇编[21] - 传送指令: MOV、LEA、XCHG、XLATB、XLAT、M
  4. 学 Win32 汇编[20]: 洞察标志寄存器
  5. 学 Win32 汇编[29] - 串指令: MOVS*、CMPS*、SCAS*、LODS*、REP
  6. 学 Win32 汇编[27] - 乘除指令: MUL、IMUL、DIV、IDIV
  7. 学 Win32 汇编[26] - 加减指令: INC、DEC、NEG、ADD、ADC、SUB、
  8. 学 Win32 汇编[25] - 符号扩展指令: CBW、CWDE、CDQ、CWD
  9. jQuery中的$.ajax方法,以及基本的vue指令操作

随机推荐

  1. Android(安卓)HorizontalScrollView嵌套C
  2. android studio 程序员有福了—从layout
  3. Android设计模式-原型模式
  4. android 开发实现静默安装
  5. 数据存储之——Android内、外存储分区&常
  6. Andriod开发必备资料
  7. 关于android WebViewClient的方法解释
  8. Android使用XML全攻略(2)
  9. android Keycode 完全对照表
  10. Android重力感应实现方式简介