Расширить bl до 16 бит:
cmp si, bx
Или использовать младший 8-битный регистр sil:
cmp sil, bl
Ошибка возникает, потому что команда cmp ожидает, что оба операнда будут одного размера, а в вашем случае si — это 16-битный регистр, а bl — 8-битный регистр. В ассемблере нельзя напрямую сравнивать регистры разного размера.
Чтобы исправить это, необходимо привести операнды к одному размеру. Например, можно расширить регистр bl до 16 бит с помощью регистра bx или уменьшить si до 8 бит с помощью его младшей части sil (в зависимости от архитектуры).
выдает на эту строку
cmp si, bl ; Сравниваем текущий индекс с BL