1 / 19

Организация циклов в Ассемблере

Организация циклов в Ассемблере. Цикл – это многократно повторяющаяся последовательность операторов. Типы циклов. «ДО». «ПОКА». «ДЛЯ». Циклы в Паскале. Цикл «ПОКА». While X > 0 do S. A: If X > 0 then begin S ; тело цикла Goto A; end;. Цикл «ДО». Repeat S until X > 0.

lenka
Download Presentation

Организация циклов в Ассемблере

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Организация циклов в Ассемблере

  2. Цикл – это многократно повторяющаяся последовательность операторов

  3. Типы циклов «ДО» «ПОКА» «ДЛЯ»

  4. Циклы в Паскале

  5. Цикл «ПОКА» While X > 0 do S A: If X > 0 then begin S; тело цикла Goto A; end;

  6. Цикл «ДО» Repeat S until X > 0 A: S; тело цикла If (X < 0) or (X = 0) then Goto A;

  7. Цикл «ДЛЯ» For I := 1 to N do S I: = 1; A: S; тело цикла I:=I+1; If (I < N) or (I = N) then Goto A;

  8. Циклы в Ассемблере

  9. Цикл «ПОКА» While X > 0 do S A: CMP X , 0 JLE A2 S; тело цикла JMP A A2: …

  10. Цикл «ДО» Repeat S until X > 0 A: S; тело цикла CMP X , 0 JLE A

  11. Цикл «ДЛЯ» For I := 1 to N do S MOV CX , N A: S; тело цикла DEC CX CMP X , 0 JNE A

  12. Команда LOOP Общий вид: LOOP <метка> Функции команды: • Автоматически уменьшает значение счетчика. • Выполняет проверку на выход из цикла. • Выполняет переход на начало тела цикла. Используется в случае цикла с известным числом повторений, т.е. цикла «ДЛЯ». Количество повторений цикла должно быть присвоено регистру СХ до начала цикла.

  13. Цикл «ДЛЯ» Без использования команды LOOP С использованием команды LOOP MOV CX , N A: S; тело цикла DEC CX CMP X , 0 JNE A MOV CX , N A: S; тело цикла LOOP A

  14. ПРИМЕР Составим программу, которая выводит на экран 1000 нулей

  15. Решение: (1) prg segment para public 'code' (2) assume cs:prg,ss:prg,es:prg,ds:prg (3) org 100h (4) start: jmp go (5) go: (6) mov ax, 0600h (7) mov bh,07 (8) mov cx, 0000 (9) mov dx,184fh (10) mov cx,1000 (11) Zero: (12) mov ah,02 (13) mov dl,30h (14) int 21h (15) loop Zero (16) ret (17) prg ends (18) end start

  16. Задачи для практики

  17. Задача 1 Составить фрагмент программы на языке Ассемблер, подсчитывающий сумму первых 10 натуральных чисел (результат записать в АХ). Решение: ….. mov cx,10 mov ax,00 summa: add ax,cx loop summa …..

  18. Задача 2 Составить фрагмент программы на языке Ассемблер, вычисляющий значение выражения: (результат записать в АХ). ….. mov BX,00 mov CX,05 sum: mov AX,02 mul CX add BX,AX loop sum ….. Решение:

  19. Задача 3 Составить фрагмент программы на языке Ассемблер, вычисляющий факториал заданного числа К (К – от 0 до 8; результат записать в АХ). Решение: ….. movax, 1 movcx, К F: mul cx loop F …..

More Related