首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-09-04 
学 Win32 汇编[30] - 条件及循环伪指令: .IF、.WHILE、.REPEAT 等.IF、.ELSEIF、.ELSE、.ENDIF: 条件伪指令可

学 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

热点排行