jueves, 31 de enero de 2019

Unidad No.1-Emuladores online

1-assembler online




Código:

; Simple example
; Writes Hello World to the output

JMP start
hello: DB "Ivan Gutierrez!" ; Variable
       DB 0 ; String terminator

start:
MOV C, hello    ; Point to var 
MOV D, 232 ; Point to output
CALL print
        HLT             ; Stop execution

print: ; print(C:*from, D:*to)
PUSH A
PUSH B
MOV B, 0
.loop:
MOV A, [C] ; Get char from var
MOV [D], A ; Write to output
INC C
INC D  
CMP B, [C] ; Check if end
JNZ .loop ; jump if not

POP B
POP A
RET
2-assembler online


Código:

section .text
global _start       ;must be declared for using gcc
_start:                     ;tell linker entry point
mov edx, len    ;message length
mov ecx, msg    ;message to write
mov ebx, 1     ;file descriptor (stdout)
mov eax, 4     ;system call number (sys_write)
int 0x80        ;call kernel
mov eax, 1     ;system call number (sys_exit)
int 0x80        ;call kernel

section .data

msg db 'Ivan Gutierrez!',0xa ;our dear string
len equ $ - msg ;length of our dear string


3-simulador assembler


Código:

;nasm 2.11.08

section .data
    hello:     db 'Ivan Gutierrez!',10    ; 'Hello world!' plus a linefeed character
    helloLen:  equ $-hello             ; Length of the 'Hello world!' string

section .text
global _start

_start:
mov eax,4            ; The system call for write (sys_write)
mov ebx,1            ; File descriptor 1 - standard output
mov ecx,hello        ; Put the offset of hello in ecx
mov edx,helloLen     ; helloLen is a constant, so we don't need to say
                     ;  mov edx,[helloLen] to get it's actual value
int 80h              ; Call the kernel

mov eax,1            ; The system call for exit (sys_exit)
mov ebx,0            ; Exit with return code of 0 (no error)
int 80h;












No hay comentarios.:

Publicar un comentario