`
zzc1684
  • 浏览: 1182905 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等

 
阅读更多

.IF、.ELSEIF、.ELSE、.ENDIF: 条件伪指令



;可以使用和 C 语言类似的条判断:
a == b
a != b
a >  b
a >= b
a <  b
a <= b
a && b
a &  b
a || b
!a

;还可以直接判断几个常用的标志位:
CARRY?    ;进位标志
OVERFLOW? ;溢出标志
PARITY?   ;奇偶标志
SIGN ;符号标志
ZERO ;零标志

 

; Test30_1.asm
.386
.model flat, stdcall

include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib

.code
main 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
    ret
main endp
end main

; Test30_2.asm .386 .model flat, stdcall include windows.inc include kernel32.inc include masm32.inc include debug.inc includelib kernel32.lib includelib masm32.lib includelib debug.lib .code main proc   mov eax, 1   mov edx, 0   .if eax && edx     PrintText '&&'   .endif     .if eax || edx     PrintText '||' ;   .endif     .if eax & edx     PrintText '&'   .endif   ret main endp end main


.WHILE、.ENDW: While 循环伪指令:



; Test30_4.asm
.386
.model flat, stdcall

include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib

.code
main proc
    mov eax, 9
    .while eax > 0 
        PrintDec eax
        dec eax
    .endw    
    ret
main endp
end main


.REPEAT、.UNTIL: Repeat 循环伪指令:



; Test30_5.asm
.386
.model flat, stdcall

include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib

.code
main proc
    mov eax, 9
    .repeat
        PrintDec eax
        dec eax
    .until eax == 0  
    ret
main endp
end main


.While 与 .Repeat 都支持 .Break 和 .Continue



.WHILE 与 .BREAK:



; Test30_6.asm
.386
.model flat, stdcall

include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib

.code
main proc
    mov eax, 9
    .while TRUE
        PrintDec eax
        dec eax
    .break .if eax == 5
    .endw    
    ret
main endp
end main


.REPEAT 与 .CONTINUE:



; Test30_7.asm
.386
.model flat, stdcall

include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib

.code
main proc
    mov eax, 0
    .repeat
        inc eax
    .continue .if eax == 2
        PrintDec eax
    .until eax > 3
    ret
main endp
end main
分享到:
评论

相关推荐

    汇编语言.chm 学习汇编语言入门

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言教程-学习的极佳资料

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言学习大全

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言.chm电子书

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编教程 非常详细 说明的非常清楚 学汇编很好的教程

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言程序教程(.chm格式)

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言基础学习资料

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言教程.chm

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言(在一个汇编网站上点击率在前三的电子书)

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言教程(AoGo汇编网站)

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言教程chm电子书

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言入门帮助文档.chm

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言程序设计 第二版

    9.6.3 循环伪指令WHILE 9.6.4 循环伪指令FOR 9.6.5 循环伪指令FORC 9.6.6 转移伪指令GOTO 9.6.7 宏扩充的举例 9.6.8 系统定义的宏 习题 第十章 应用程序设计 10.1 字符串的处理程序 10.2 数据的分类统计程序 10.3 ...

    汇编语言基础教程(8086).rar

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第 10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  10.3...

    (chm)汇编语言全接触

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    汇编语言学习大全 很实用的

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

    WINDOWS系统开发汇编语言教程

     3 循环伪指令WHILE  4 循环伪指令FOR  5 循环伪指令FORC  6 转移伪指令GOTO  7 宏扩充的举例  8 系统定义的宏  9.7 习题 第10章 应用程序的设计  10.1 字符串的处理程序  10.2 数据的分类统计程序  ...

Global site tag (gtag.js) - Google Analytics