hi,the following is a loop_code example.In this example, will show you. do and. loop, . rept and. endr, . repeat and. until, . while and. endw, IF/..1 WHILE, Advanced syntax simulation techniques for scanf and printf macros.
example one:
; *******************************************************
include \masm32\include64\masm64rt.inc
.data
a dq ?
b dq ?
s dq ?
.code
; ******************************************************
entry_point proc
printf("\t please input a and b \t")
scanf("%ld%ld", offset a, offset b)
mov rax,a
add rax,b
mov s,rax
printf("\t a+b=%ld",s)
printf("\n")
waitkey
.exit
entry_point endp
;*******************************************************
end
example two:
; ******************************************************************
include \masm32\include64\masm64rt.inc
.code
;******************************************************************
entry_point proc
;-------------------------------------------------------------------
USING rax
;-------------------------------------------------------------------
LOCAL var1 :QWORD
LOCAL var2 :QWORD
LOCAL var3 :QWORD
LOCAL var4 :QWORD
var5 equ <32>
;-------------------------------------------------------------------
conout "hello word",lf
waitkey "Press any key to see the new .do .loop technique"
; ------------------------------------------------------------------
mov var1, 60
mov var2, 66
.do
conout str$(var1),";"
add var1, 1
.loop IF var1 le var2
;-------------------------------------------------------------------
conout lf
waitkey "Press any key to see the new .rept .endr technique"
;-------------------------------------------------------------------
mov var1, 60
mov var2, 66
.rept IF var2 GE var1
conout str$(var2),";"
sub var2, 1
.endr
;---------------------------------------------------------------------------
conout lf
waitkey "Press any key to see the new .repeat .until technique"
;---------------------------------------------------------------------------
mov var1, 60
mov var2, 66
.repeat
conout str$(var2),";"
sub var2, 1
.until var2{=0
;---------------------------------------------------------------------------
conout lf
waitkey "Press any key to see the new sigleline .IF/.WHILE technique"
;--------------------------------------------------------------------------
mov var1, 60
mov var2, 66
lb_10:
conout str$(var1),";"
add var1, 1
.WHILE var1 LE var2 goto_back_to lb_10
;--------------------------------------------------------------------------
conout lf
waitkey "Press any key to see the new jump technique"
; -------------------------------------------------------------------------
mov var1, 60
mov var2, 66
lb_11:
conout str$(var1),";"
add var1, 1
jump lb_11 WHILE var1 LE var2
; -------------------------------------------------------------------------
conout lf
waitkey "Press any key to see the new sigleline .while/.endw technique"
; --------------------------------------------------------------------------
mov var2, 10
mov rax,1
mov var1,rax
.while ( (var2{0) || (var2}0) )
conout str$(var2),";"
sub var2,1
.endw
;---------------------------------------------------------------------------
conout lf
waitkey
;---------------------------------------------------------------------------
.if ((var1}=1) || (var2{1))
printf("%d",80*50)
printf("\t%d",50*60)
.endif
;---------------------------------------------------------------------------
conout lf
waitkey
;---------------------------------------------------------------------------
invoke ExitProcess,0
ret
;---------------------------------------------------------------------------
entry_point endp
;***************************************************************************
end
Masm64 is as powerful as masm32, and masm64 advanced syntax simulation technology allows it to be used to develop large applications. I love masm64!
Hi,hutch, you must teach me MASM64, I strive to be your good student
Hello stevenxie,
There are nice tutorials on the net. You can also study the examples and help files created by Hutch.
The above example has shown MASM64 powerful development capabilities for anyone who laughs at MASM64, and the underlying foundation of the entire Microsoft development capability is based on incomparably powerful MASM64. MASM64 is the real driver of application development. Hutch, I will always support you and MASM! forever.