Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $ADR 0000h
- LXI B, 400h; записываем адрес массива
- MVI D, 0; тут храним кол-во повт символом(изначально 0)
- MVI H, 0; тут храним кол-во итераций цикла(изначально 0)
- BEGIN: ; цикл: проходим по всем эл-там и срав со след.
- MOV A, H; ; проверяем усл. выхода из цикла(число итераций 255)
- CMP FF
- JZ OUT_C ; выход из цикла
- LDAX B; записываем i-ый эл-т массива в А
- MOV E, A; сохр его в регистр E
- INX B; в регистре B теперь хранится адрес i+1 эл-та
- LDAX B; записываем i+1 эл-т в А
- CMP E; сравниваем А(i+1 эл-т) с E(i-ый эл-т)
- JNZ INCREMENT ; если они разные, то сразу переходим след инкр итератора и след итерации
- INR D; если одинак, то инкрементируем кол-во одинак эл-тов
- INCREMENT:
- INR H; инкрементируем итератор цикла
- JMP BEGIN ; переходим к след итерации
- OUT_C: ; выход из цикла
- MOV A, D; записываем в аккумулятор А данные из регистра D(кол-вол одинак жл-тов массива)
- OUT 50h; выводим(возвращаем) данные из А на 50 порт
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement