Advertisement
Guest User

Untitled

a guest
Mar 18th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $ADR 0000h
  2. LXI B, 400h; записываем адрес массива
  3. MVI D, 0; тут храним кол-во повт символом(изначально 0)
  4. MVI H, 0; тут храним кол-во итераций цикла(изначально 0)
  5.  
  6. BEGIN: ; цикл: проходим по всем эл-там и срав со след.
  7. MOV A, H; ; проверяем усл. выхода из цикла(число итераций 255)
  8. CMP FF
  9. JZ OUT_C ; выход из цикла
  10. LDAX B; записываем i-ый эл-т массива в А
  11. MOV E, A; сохр его в регистр E
  12. INX B; в регистре B теперь хранится адрес i+1 эл-та
  13. LDAX B; записываем i+1 эл-т в А
  14. CMP E; сравниваем А(i+1 эл-т) с E(i-ый эл-т)
  15. JNZ INCREMENT ; если они разные, то сразу переходим след инкр итератора и след итерации
  16. INR D; если одинак, то инкрементируем кол-во одинак эл-тов
  17. INCREMENT:
  18. INR H; инкрементируем итератор цикла
  19. JMP BEGIN ; переходим к след итерации
  20.  
  21. OUT_C: ; выход из цикла
  22. MOV A, D; записываем в аккумулятор А данные из регистра D(кол-вол одинак жл-тов массива)
  23. OUT 50h; выводим(возвращаем) данные из А на 50 порт
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement