Не могу выйти с бесконечного цикла - Assembler

Узнай цену своей работы

Формулировка задачи:

Есть код, пробую запустить в emu8086, но не могу выйти с бесконечного цикла суть задания - Поиск и замена символа "9" на "5" в диапазоне 120..16F
Листинг программы
  1. MOV DI,0120 ; DI<- 120
  2. MOV AL,35 ; AL<- 35
  3. MOV AH,39 ; AH<- 39
  4. MOV CX,0050 ; CX<- 50
  5.  
  6. CMP [DI],AH ;
  7. JNZ 0110 ;
  8. MOV [DI],AL ;
  9. INC DI ;
  10. LOOP 010A [/CODE]
  11. INT 20 ; завершение

Решение задачи: «Не могу выйти с бесконечного цикла»

textual
Листинг программы
  1.     MOV DI,0120h ; DI<- 120
  2.     MOV AL,35h   ; AL<- 35
  3.     MOV AH,39h   ; AH<- 39
  4.     MOV CX,0050h ; CX<- 50
  5.  
  6. @@For:
  7.     CMP [DI],AH ;
  8.     JNZ @@Skip    ;
  9.     MOV [DI],AL ;
  10. @@Skip:
  11.     INC DI      ;
  12.     LOOP @@For   ;
  13.  
  14.     INT 20h      ; завершение

Объяснение кода листинга программы

  1. MOV DI,0120h — вначале код переносит значение 120 в регистр DI.
  2. MOV AL,35h — затем код переносит значение 35 в регистр AL.
  3. MOV AH,39h — после этого код переносит значение 39 в регистр AH.
  4. MOV CX,0050h — и, наконец, код переносит значение 50 в регистр CX.
  5. @@For: — затем код переходит к блоку @@For.
  6. CMP [DI],AH — внутри блока @@For код сравнивает значение в регистре AH с значением по адресу, который хранится в регистре DI.
  7. JNZ @@Skip — если значение в регистре AH не равно значению по адресу, код переходит к блоку @@Skip.
  8. MOV [DI],AL — в противном случае (когда значение в регистре AH равно значению по адресу), код переносит значение из регистра AL по указанному адресу.
  9. INC DI — после этого код увеличивает значение в регистре DI на единицу.
  10. LOOP @@For — и цикл повторяется до тех пор, пока не будет выполнено условие цикла.
  11. INT 20h — когда условие цикла выполняется, код завершает работу программы с помощью функции INT 20h.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут