Проблема вывода цвета символа в консоль asm
section .data
output db "O"
section .bss
color resb 1
section .text
global _start
randColor:
; генерируем случайное число от 0 до 15
mov eax, 0x2d
xor ebx, ebx
int 0x80
; сохраняем результат в переменную color
mov byte [color], al
; проверяем цвет, если он больше 7, то меняем на цвет светлее
cmp byte [color], 7
ja changeColor
ret
changeColor:
add byte [color], 8
ret
printO:
; выводим символ "O" в случайном цвете
mov eax, 4
mov ebx, 1
mov ecx, output
mov edx, 1
int 0x80
; устанавливаем цвет консоли
mov eax, 4
mov ebx, 1
mov ecx, color
mov edx, 1
int 0x80
ret
_start:
; вызываем функцию генерации случайного цвета
call randColor
; вызываем функцию вывода символа "O"
call printO
; завершаем программу
mov eax, 1
xor ebx, ebx
int 0x80
В консоль выводится 0, но он стабильно белого цвета, проблема в компиляторе или ошибка в коде?
Источник: Stack Overflow на русском