Что делает команда loop $ ? - Assembler
Формулировка задачи:
Имеется некоторая процедура подскажите что делает команда loop $. как работает команда Loop понятно ( Количество повторений тела цикла указывается в регистре CX. По достижению команды LOOP содержимое этого регистра автоматически уменьшается на 1. Пока содержимое регистра CX не равно нулю, управление передается на метку, указанную в операнде) НО что такое $
push ax bx cx dx si di mov si,0 loopdel: mov cx,2000 loop $ inc si mov dx,delaytime cmp si,dx jle loopdel pop di si dx cx bx ax
Решение задачи: «Что делает команда loop $ ?»
textual
Листинг программы
push ax bx cx dx si di mov si,0 ; обнулить счётчик количества накрученных циклов loopdel: mov cx,2000 ; loop $ ; фиксированный по времени цикл в две тысячи единиц времени ; знак $ будет заменён адресом текущей строки т.е. команда loop ; выполнит сама себя 2000 раз inc si ; счётчик того сколько раз было сделано loop 2000 раз mov dx,delaytime ; занести в DX число сколько их сделать надо cmp si,dx, ; сравнить сделаное с тем сколько нужно сделать jle loopdel ; крутить ещё один цикл из 2000 ед.времени пока SI не превысит DX ; т.е. равное числу занесённому в переменную delaytime pop di si dx cx bx ax
Объяснение кода листинга программы
Список не превышает 20 элементов:
- Команда pushaxbxcxdxsi обнуляет счётчик количества накрученных циклов.
- Значение переменной si устанавливается равным 0.
- Далее, в переменную cx записывается значение 2000.
- Далее, выполняется цикл, который будет выполняться 2000 раз, это фиксированное по времени действие.
- Увеличивается значение переменной si на единицу.
- В переменную dx записывается значение задержки (delaytime).
- Сравниваются значения переменных si и dx.
- Если si меньше или равно dx, то выполняется цикл из 2000 единиц времени (jle loopdel).
- Делается рекурсивный вызов функции loop.
- Находятся значения переменных di, si, dx, cx, bx, ax.
- Команда popdi Si Dx Cx Bx Ax завершает работу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д