Marcos-Carros-Amorim / Assembly

0 stars 0 forks source link

Tarefa 13-11.asm #2

Open Marcos-Carros-Amorim opened 1 year ago

Marcos-Carros-Amorim commented 1 year ago

;Média entre dois números ;Introdução ao Assembly ;Kaue Klein Matos, Marcos Carros Amorim , FEAP AVARÉ ;Engenharia da Computação, Sistemas Operacionais

SYS_EXIT equ 1 SYS_READ equ 3 SYS_WRITE equ 4 STDIN equ 0 STDOUT equ 1 STDOP equ 2

section .data numero1 db 'Digite o primeiro número: $' numero2 db 'Digite o segundo número: $' result_msg db 'A média é: $'

section .bss num1 resw SYS_EXIT num2 resw SYS_EXIT sum resw SYS_EXIT

section .text global _start

_start: ; Solicita o primeiro número mov eax, SYS_WRITE mov ebx, STDOUT mov ecx, numero1 mov edx, 27 int 0x80

; Lê o primeiro número
mov eax, SYS_READ
mov ebx, STDIN
lea ecx, [num1]
mov edx, STDOP
int 0x80

; Solicita o segundo número
mov eax, SYS_WRITE
mov ebx, STDOUT
mov ecx, numero2
mov edx, 26
int 0x80

; Lê o segundo número
mov eax, SYS_READ
mov ebx, STDIN
lea ecx, [num2]
mov edx, STDOP
int 0x80

; Soma os dois números
mov ax, [num1]
add ax, [num2]
mov [sum], ax

; Divide por 2
mov ax, [sum]
shr ax, STDOUT
mov [sum], ax

; Exibe a mensagem do resultado
mov eax, SYS_WRITE
mov ebx, STDOUT
mov ecx, result_msg
mov edx, 13
int 0x80

; Exibe o resultado
mov eax, SYS_WRITE
mov ebx, STDOUT
lea ecx, [sum]
mov edx, STDOP
int 0x80

; Sair
mov eax, STDOUT
xor ebx, ebx
int 0x804