65 lines
1.8 KiB
Text
65 lines
1.8 KiB
Text
; include examples
|
|
; assembly X86 window
|
|
; download and install visual studio 2022 free site microsoft
|
|
; search and open X64 native tools command prompt
|
|
; compil and link program with this command :
|
|
; ml64 lenString.asm /link /ENTRY:main /SUBSYSTEM:console kernel32.lib user32.lib Shell32.lib
|
|
; this program respects the 64-bit calling convention :
|
|
; registers arguments : rcx rdx r8 r9 and stack
|
|
; registers saved : rbx,rbp,rdi,rsi, r12-r15
|
|
; ATTENTION les registres rax,rcx,rdx,r8-r11 peuvent être
|
|
; perdus lors d'un appel de fonction
|
|
;*********************************
|
|
; constantes
|
|
;*********************************
|
|
STD_OUTPUT_HANDLE equ -11
|
|
|
|
;*********************************
|
|
; macros
|
|
;*********************************
|
|
; macros file
|
|
include macrosInclude.asm
|
|
|
|
;*********************************
|
|
; user data
|
|
;*********************************
|
|
.data
|
|
szMessAccueil db "Hello word.",0
|
|
LGMESSACCUEIL equ $ - szMessAccueil
|
|
|
|
szCarriageReturn db 10,0
|
|
|
|
|
|
align 8
|
|
hConsole dq 0
|
|
sConvArea db 24
|
|
;*********************************
|
|
; user code fonction principale
|
|
;*********************************
|
|
.code
|
|
|
|
extern WriteFile : proc, GetStdHandle : proc, ExitProcess : proc
|
|
extern GetLastError : proc
|
|
|
|
main PROC public
|
|
displayLib "Program X86-64 start." ; call macro label display
|
|
|
|
mov rcx,offset szMessAccueil ; message address
|
|
mov rdx,LGMESSACCUEIL ; message length
|
|
call afficherConsole ; call display routine
|
|
|
|
mov rcx, offset szCarriageReturn ; message address
|
|
mov rdx,1 ; display 1 character
|
|
call afficherConsole
|
|
|
|
|
|
finProgramme:
|
|
displayLib "Programm end." ; call macro label display
|
|
sub rsp,28h
|
|
mov rcx,0 ; return code
|
|
call ExitProcess
|
|
main ENDP
|
|
;
|
|
; routines file
|
|
include routinesInclude.asm
|
|
end
|