Advertisement
Guest User

Untitled

a guest
Apr 29th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. ASSUME cs:mycode
  2. mycode SEGMENT
  3.  
  4. mystart:
  5. ; инициализация начальных адресов сегментов
  6. ; DS:[SI] настраиваем на i-ый символ(изначально 10033)
  7. ; ES:[DI] настраиваем на i+1 символ(изначально 10034)
  8. MOV AX, 1003h;
  9. MOV DS, AX
  10. MOV ES, AS
  11. MOV SI, 3;
  12. MOV DI, 4;
  13.  
  14. ; инициализируем кол-во одинак символов
  15. MOV BX, 0;
  16.  
  17. ; инициализируем инкремент цикла(255 итераций)
  18. MOV CX, 255;
  19. cycle:
  20. ; находим первое совпадение(a[i] == a[i+1])
  21. REPNE CMPSB
  22. ; сделали 255 итераций
  23. CMP CX,0;
  24. ; могли упустить последнюю итерацию
  25. JZ lastCmp:
  26. INC BX; если не сделали все итерации, но нашли совпадение
  27. ADD SI, 1;
  28. ADD DI, 1;
  29. jmp cycle;
  30.  
  31. ; последняя итерация
  32. lastCmp:
  33. MOV AL, DS:[SI]
  34. CMP ES:[DI], AL
  35. JNZ finalOut
  36. ; последние два элемента также равняются
  37. INC BX
  38. MOV FFFFEh, BX;
  39.  
  40. finalOut:
  41. MOV AX, 4C00h
  42. INT 21H
  43. mycode ENDS
  44.  
  45. END mystart
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement