标签:main REPEAT lib 30 伪指令 eax includelib include inc
学 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
posted on 2010-04-21 17:26 万一 阅读(6424) 评论(0) 编辑 收藏
标签:main,REPEAT,lib,30,伪指令,eax,includelib,include,inc 来源: https://blog.51cto.com/u_14617575/2745487
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。