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

Как перевести двоичный массив в десятичное число в masm32 и вывести его в консоль?

Пока дошёл только до такого кода, но как остальную часть сделать вообще не понимаю:
.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+1
 
.code
start
 
end start
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
@VitalyChaikin
Если я правильно понял задание, то алгоритм может быть следующий:
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
Ответ написан
Ваш ответ на вопрос

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

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