我正在尝试编写一个程序,比较两个数字x和y(在代码中预定义),并输出一条消息,说“最大的数字是”,然后输出更大的数字。但是,它有一个非常奇怪的错误,难以解释。
当然,如果我在消息中放入其他字符,也会使事情变得混乱。这是我的代码:
section .text
global _start
_start:
mov eax, [x]
sub eax, '0'
mov ebx, [y]
sub ebx, '0'
cmp eax, ebx
ja case1
case2: add ebx, '0'
mov [big], ebx
jmp next
case1: add eax, '0'
mov [big], eax
next: mov ecx, msg
mov edx, len
call cout
mov ecx, big
mov edx, 1
call cout
mov eax, 1
int 0x80
cout: mov ebx, 1
mov eax, 4
int 0x80
ret
section .data
big db 0
x db '9'
y db '8'
msg db "The biggest number is "
len equ $ - msg
segment .bss
sum resb 1