Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ASSUME cs:mycode
- mycode SEGMENT
- mystart:
- ; инициализация начальных адресов сегментов
- ; DS:[SI] настраиваем на i-ый символ(изначально 10033)
- ; ES:[DI] настраиваем на i+1 символ(изначально 10034)
- MOV AX, 1003h;
- MOV DS, AX
- MOV ES, AS
- MOV SI, 3;
- MOV DI, 4;
- ; инициализируем кол-во одинак символов
- MOV BX, 0;
- ; инициализируем инкремент цикла(255 итераций)
- MOV CX, 255;
- cycle:
- ; находим первое совпадение(a[i] == a[i+1])
- REPNE CMPSB
- ; сделали 255 итераций
- CMP CX,0;
- ; могли упустить последнюю итерацию
- JZ lastCmp:
- INC BX; если не сделали все итерации, но нашли совпадение
- ADD SI, 1;
- ADD DI, 1;
- jmp cycle;
- ; последняя итерация
- lastCmp:
- MOV AL, DS:[SI]
- CMP ES:[DI], AL
- JNZ finalOut
- ; последние два элемента также равняются
- INC BX
- MOV FFFFEh, BX;
- finalOut:
- MOV AX, 4C00h
- INT 21H
- mycode ENDS
- END mystart
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement