Я пытаюсь заставить эту программу кода ассемблера сравнивать три целых числа и возвращать наибольшую переменную, я считаю, что этот код должен работать, однако моя печать дает мне целые числа 6 и 9. Три переменные установлены в 3, 6 и 9 в ASCII
Вот мой код:
section .data
str: db 'Hello world!', 0Ah
var1: dw 51
var2: dw 54
var3: dw 57
result: dw 00h
section .text
global _start
_start:
mov eax, dword [var1]
mov ebx, dword [var2]
cmp eax, ebx
jge nextstate
mov dword [result], ebx
jmp print
nextstate:
mov eax, dword [var1]
mov ebx, dword [var3]
cmp eax, ebx
jge finalstate
mov dword [result], ebx
finalstate:
mov dword [result], eax
print:
mov eax, 4
mov ebx, 1
mov ecx, result
mov edx, 13
int 80h
mov eax, 1
mov ebx, 0
int 80h