Проверка трёх введённых чисел на кратность 7 - Assembler
Формулировка задачи:
Здравствуйте. Помогите пожалуйста сократить программу, направьте в нужное русло
Задание: являются ли три введённые числа кратными семи
Текст:
Пытаюсь сделать через цикл, но не получается. Не знаю как заменить итерации на переменные a,b,c
Листинг программы
- var o,l,g:byte;
- a,b,c:word;
- begin
- o:=0;
- writeln ('vvedite a');
- readln (a);
- asm
- mov ax,a
- mov cl,7
- div cl
- test ah,ah
- jnz @k
- mov o,1
- @k: nop
- end;
- writeln ('o=',o);
- begin
- l:=0;
- writeln ('vvedite b');
- readln (b);
- asm
- mov ax,b
- mov cl,7
- div cl
- test ah,ah
- jnz @k
- mov l,1
- @k:nop
- end;
- writeln ('l='l);
- end;
- begin
- g:=0;
- writeln ('vvedite c');
- readln (c);
- asm
- mov ax,c
- mov cl,7
- div cl
- test ah,ah
- jnz @k
- mov g,1
- @k: nop
- end;
- writeln ('g='g);
- end;
- end.
Решение задачи: «Проверка трёх введённых чисел на кратность 7»
textual
Листинг программы
- var a:array [0..2] of word;
- begin
- readln(a[0],a[1],a[2]);
- asm
- lea si,a
- mov bx,7
- mov cx,3
- @Cycle:
- lodsw
- xor dx,dx
- div bx
- cmp dx,0
- mov ah,2
- mov dl,'N'
- jnz @No
- mov dl,'Y'
- @No:
- int 21h
- mov dl,' '
- int 21h
- loop @Cycle
- end;
- readln;
- end.
Объяснение кода листинга программы
- Объявление переменной
a
типаarray [0..2] of word
- Ввод трех чисел с помощью функции
readln(a[0],a[1],a[2])
- Начинается ассемблерный блок
- Переменная
si
ссылается на первый элемент массиваa
- Переменная
bx
содержит число 7 - Переменная
cx
содержит число 3 - Начинается цикл
Cycle
- Чтение двух байтов из массива
a
в регистрdx
- Регистр
dx
делится на число 7 - Если результат деления равен нулю, то выполняется блок кода до инструкции
jnz @No
- Если результат деления не равен нулю, то выполняется блок кода после инструкции
jnz @No
- Вывод символа 'N' или 'Y' с помощью функции
int 21h
- Вывод символа пробела с помощью функции
int 21h
- Цикл повторяется до тех пор, пока не будет выполнено условие
jnz @Cycle
- Код на ассемблере завершается
- Вывод символа 'N' или 'Y' с помощью функции
readln
- Код на языке Pascal завершается
- Программа завершается
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д