Вроде правильный код, но есть проблемы. Программа выбмрает из трех введеных чсел самое большое

Программа выбирает из трех введеных чисел самое большое.

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

Ответы (0 шт):