-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEnWin-Imprimir
More file actions
36 lines (29 loc) · 1.43 KB
/
EnWin-Imprimir
File metadata and controls
36 lines (29 loc) · 1.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
segment .data
argsTerminateProcess db 0x00,0x00 ;Argumentos para la llamada al sistema nativa NTTerminateProcess()
handleConsola dd 1 ;Primer argumento para la llamada al sistema _WriteConsoleA()
cadImprimir db 'Ensamblando en Windows',0x0A ;Segundo argumento
longitudCadena dd 1 ;tercer argumento
caractEscritos dd 1 ;Cuarto argumento
ultimoArgumento dd 1 ;Quinto argumento
segment .text
global _main
extern _GetStdHandle@4 ;Acceso externo a la llamada al sistema _GetStdHandle()
extern _WriteConsoleA@20 ;Acceso externo a la llamada al sistema _WriteConsoleA()
extern _ExitProcess@4
_main: push dword -11 ;Argumento pasado por pila y usado por _GetStdHandle para la salida estandar
call _GetStdHandle@4 ;Invocacion de _GetStdHandle
mov [handleConsola],eax ;Devolucion del manejador de consola para escritura en registro eax
xor eax,eax ;limpieza del registro eax
mov eax,23d ;longitud de la cadena
mov [longitudCadena],eax ;se guarda la longitud de la cadena
xor eax,eax ;limpieza del registro eax
mov eax,0d ;Es el valor del ultimo argunto de _WriteConsoleA()
mov [ultimoArgumento],eax ;Se guarda el valor del ultimo arguneto en memoria
push dword [ultimoArgumento]
push dword caractEscritos
push dword [longitudCadena]
push dword cadImprimir
push dword [handleConsola]
call _WriteConsoleA@20
push dword 0
call _ExitProcess@4