@pefbruteq
Джаваскриптезёр

Как переместить значение из регистра eax в регистр al?

Здравствуйте, есть такой код:

.model small
.stack 100h
.data
array db 0,0,0,0,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,1
len = $-array
 
.code
start
xor eax, eax ; eax = 0
xor bx, bx ; bx = 0
cycle:
 sal eax ; сдвинули влево
 neg bx
 mov cl, array[len][bx] ; получаем байт с конца массива
 neg bx
 cmp cl, 0
 je set0
set1: inc eax ; 1 бит в 1
set0: nop ; после сдвига 1 бит и так = 0
inc bx
cmp bx, len 
jle cycle
; eax = число из битов* массива array
end start


И мне нужно сделать вывод получившегося значения в консоль с помощью регистра al.
Подскажите, пожалуйста, как это сделать и возможно ли это?
  • Вопрос задан
  • 116 просмотров
Решения вопроса 1
@galaxy
al - часть регистра eax (младшие 8 бит), так что результат уже там (если он помещается в 8 бит).
Для верности можно обнулить старшие биты eax:
and eax, 0FFh
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Dorbah
Нужно перекидывать по 8 бит в другой регистр и выводить в hex формате
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы