Вроде правильный код, но есть проблемы. Программа выбмрает из трех введеных чсел самое большое
Программа выбирает из трех введеных чисел самое большое.
segment .bss
num1 resb 1
num2 resb 1
num3 resb 1
langer resb 2
segment .data
msg1 db "Enter first num: ",0xA,0xD
len1 equ $ - msg1
msg2 db "Enter second num: ",0xA,0xD
len2 equ $ - msg2
msg3 db "Enter third num: ",0xA,0xD
len3 equ $ - msg3
msg4 db "The lagerst num is: ",0xA,0xD
len4 equ $ - msg4
segment .text
global _start
_start:
mov eax, 4
mov ebx, 1
mov ecx, msg1
mov edx, len1
int 0x80
mov eax, 3
mov ebx, 0
mov ecx, num1
mov edx, 1
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, msg2
mov edx, len2
int 0x80
mov eax, 3
mov ebx, 0
mov ecx, num2
mov edx, 1
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, msg3
mov edx, len3
int 0x80
mov eax, 3
mov ebx, 0
mov ecx, num3
mov edx, 1
int 0x80
mov ecx, [num1]
cmp ecx, [num2]
jg check_third_num
mov ecx, [num1]
cmp ecx, [num3]
jg check_second_num
mov ecx, [num2]
cmp ecx, [num1]
jg check_first_num
check_first_num:
mov ecx, [num2]
cmp ecx, [num1]
jg exit_num1
check_second_num:
mov ecx, [num3]
cmp ecx, [num2]
jg exit_num3
check_third_num:
mov ecx, [num2]
cmp ecx, [num3]
jg exit_num1
exit_num1:
mov ecx, [num1]
mov [langer], ecx
mov eax, 4
mov ebx, 1
mov ecx, msg4
mov edx, len4
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, langer
mov edx, 2
jmp exit
exit_num2:
mov ecx, [num2]
mov [langer], ecx
mov eax, 4
mov ebx, 1
mov ecx, msg4
mov edx, len4
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, langer
mov edx, 2
jmp exit
exit_num3:
mov ecx, [num3]
mov [langer], ecx
mov eax, 4
mov ebx, 1
mov ecx, msg4
mov edx, len4
int 0x80
mov eax, 4
mov ebx, 1
mov ecx, langer
mov edx, 2
jmp exit
exit:
mov eax, 1
int 0x80