Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ассемблер. Дан массив из 3 байт. Рассматривая его, как массив из 24 бит, посчитать ...

Александр Науменко Знаток (251), закрыт 9 лет назад
... количество одиночных единиц в окружении нулей. Конец последовательности рассматривать как нуль
Лучший ответ
Миоко Таканава Гений (51590) 9 лет назад
.model small
.386

.data
  Array db 10100101b, 01011010b, 11010101b

.code
N173219755:
    mov bp, @data
    mov ds, bp
    xor dl, dl
    xor eax, eax
    mov al, Array
    shl eax, 8
    mov al, Array+1
    shl eax, 8
    mov al, Array+2
    shl eax, 7
    rol eax, 2
    mov cx, 24
DoLoop:
    rol eax, 1
    mov dh, al
    and dh, 00000111b
    cmp dh, 00000010b
    jne No
    inc dl
No:
    loop DoLoop

;В регистре DL кол-во единиц в окружении нулей

    mov ah, 4Ch
    int 21h
    end N173219755
Остальные ответы
Alexey N Просветленный (34815) 9 лет назад
Берешь и считаешь, в условии содержится решение.
Александр НауменкоЗнаток (251) 9 лет назад
Если бы речь шла о каком-нибудь другом языке, то не вопрос Но ассемблер - тьма Главный вопрос, который волнует - каким образом в ассемблере рассматривать массив байт, как массив бит?
Alexey N Просветленный (34815) А зачем на трех байтах заводить массив? МОжно и по отдельным переменным считать. Ну если уж так хочется индексы - то mov ax, [di+cx] к примеру.
Похожие вопросы