tenho o seguinte codigo:
section .data
valor_id db "digite 2 valores", 0xA, 0xD
size_id equ $ - valor_id
maior db "valor é maior", 0xA, 0xD
size_maior equ $ - maior
menor db "valor é menor", 0xA, 0xD
size_menor equ $ - menor
section .bss
positivo resb 1
negativo resb 1
section .text
global _start
_start:
mov eax, 0x4
mov ebx, 0x1
mov ecx, valor_id
mov edx, size_id
int 0x80
; recebe primeiro valor
mov eax, 0x3
mov ebx, 0x1
mov ecx, positivo
mov edx, 0xD
int 0x80
; recebe segundo valor
mov eax, 0x3
mov ebx, 0x1
mov ecx, negativo
mov edx, 0xD
int 0x80
mov eax, DWORD [positivo]
mov ebx, DWORD [negativo]
cmp eax, ebx
jg inteiro
mov ecx, maior
mov edx, size_maior
jmp castrado
inteiro:
mov ecx, maior
mov edx, size_maior
castrado:
mov ecx, menor
mov edx, size_menor
mov eax, 0x1
mov ebx, 0x0
int 0x80
mas quando executo ele, ele pega os valores e finaliza, e não faz a comparação.
Atualização: 27/04/2024 16:02
tenho o seguinte codigo:
section .data
valor_id db "digite 2 valores", 0xA, 0xD
size_id equ $ - valor_id
maior db "valor é maior", 0xA, 0xD
size_maior equ $ - maior
menor db "valor é menor", 0xA, 0xD
size_menor equ $ - menor
section .bss
positivo resb 1
negativo resb 1
section .text
global _start
_start:
mov eax, 0x4
mov ebx, 0x1
mov ecx, valor_id
mov edx, size_id
int 0x80
; recebe primeiro valor
mov eax, 0x3
mov ebx, 0x1
mov ecx, positivo
mov edx, 0xD
int 0x80
; recebe segundo valor
mov eax, 0x3
mov ebx, 0x1
mov ecx, negativo
mov edx, 0xD
int 0x80
mov eax, DWORD [positivo]
mov ebx, DWORD [negativo]
cmp eax, ebx
jg inteiro
mov ecx, maior
mov edx, size_maior
jmp castrado
inteiro:
mov ecx, maior
mov edx, size_maior
castrado:
mov ecx, menor
mov edx, size_menor
mov eax, 0x1
mov ebx, 0x0
int 0x80
mas quando executo ele, ele pega os valores e finaliza, e não faz a comparação.
perdoe-me qualquer erro, sou iniciante com assembly