chupocabra2.0

chupocabra2.0

Пикабушница
поставилa 3 плюса и 0 минусов
Награды:
5 лет на Пикабу
- рейтинг 1 подписчик 1 подписка 1 пост 0 в горячем

Надежда слабая, но есть ли тут люди, разбирающиеся в Ассемблере?

Дан массив из 9 байт. Рассматривая его как массив из 72 бит, посчитать число переходов между нулями и единицами (не 1 и 0)


Вот что получилось,переходы считает (выводит 9), но не считает переходы между байтами (например 10101010b,11111111b первый заканчивается на 0, а второй начинается с 1, это должно считаться, т.е должно быть 13). Как исправить, подскажите пожалуйста.


Assembler

data segment

mass db 10101010b,11111111b,0101010b, 11111111b, 10101010b, 11111111b,11111111b, 11111111b, 11111111b

data ends

code segment

assume cs: code, dsata

START: mov ax, data

mov ds, ax

xor ax,ax

lea bx, mass

mov cx, 9


beg: mov al, [bx]

push cx

mov cx,8


pr:shl al,1

jc no

test al, 10000000b

jz no

inc dl


no:

loop pr

pop cx

inc bx

loop beg


xor ax, ax

mov ax, 4c00h ; ??? ?????????? 0

Int 21h ; ????? ? DOS

code ends

end START

Показать полностью
Отличная работа, все прочитано!