Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ЛАБОРАТОРНАЯ РАБОТА №6
Цель работы: изучить правила работы с командами передачи управления.
Написать процедуру, которая размещает два 16-битных числа со знаком в памяти в порядке возрастания (меньшее число заносится в ячейку с меньшим адресом).
Результат: Смещение адреса первого числа берется из регистра ВХ; смещение адреса второго числа - из регистра DI
Дано: (0 <= a < 1000, 0 <= b < 1000)
Написать процедуру, которая осуществляет выбор:
Если а < b, то с=a + b;
если a = b, то c=a;
если a > b, то c=a - b
Дано: (10 <= x < 240)
Написать процедуру, которая осуществляет выбор:
;Если x < 10, то c=x + 10
;если x = 10, то c=x/10 (частное)
;если x > 10, то c=x - 10
Поиск ненулевой ячейки в блоке памяти.
Составить программу, которая находит первый ненулевой элемент в заданном блоке памяти из пяти байтовых элементов. Смещение начального адреса блока берется из регистра ВХ; смещение конечного адреса блока берется из регистра DI.
Смещение адреса ненулевого байта возвращается в регистре ВХ. Если ненулевой байт ненайден, то по возвращении в регистре ВХ будет содержаться то же значение, что и в DI
Указание: использовать команду JNZ.
Инвертирование строки.
Написать программу, которая производит замену в строке символов длиной n байт строчных букв латинского алфавита на прописные.
Указание: Строчным буквам в таблице ASCII соответствует диапазон кодов 61h-7ah, а прописным 41h-5ah. Для составления оптимального алгоритма необходимо сравнить представление соответствующих прописных и строчных букв в двоичном виде:
a 0110 0001……z 0111 1010
A 0100 0001…..Z 0101 1010
Составить программу, которая производит подсчет количества нулевых элементов в области blok длиной n байт.
Указание: использовать команды LOOP, JCXZ, CMP, JNE.
На выходе в AL количество нулевых элементов.
Составить процедуру, которая производит деление двух беззнаковых чисел с учетом деления на 0. Вычислить:
а) 10/3
b) 10/0
Указание: Делитель в регистре BL. При делении на 0 выдать на экран соответствующее сообщение.
Составить процедуру (тип NEAR) заполнения блока памяти из N слов рядом натуральных чисел. Если число делится на 4 то вместо него заносится 0.
Адрес начала блока в регистре ВХ
Написать процедуру выбора двух альтернатив (0 <= a <= 100, 0 <= b < 100)
;Если а <= b, то с=a * b
;если a > b, то c=a / b
Указание: ;а в регистре AL; ;b в регистре BL; ;c в регистре DX
Сегмент данных отсутствует.
Вычислить для: а) а=5, b=25; в) а=25, b=5
Поиск ненулевой ячейки в блоке памяти.
Составить программу, которая находит первый ненулевой элемент в заданном блоке памяти из пяти байтовых элементов. Смещение начального адреса блока берется из регистра ВХ; смещение конечного адреса блока берется из регистра DI.
Смещение адреса ненулевого байта возвращается в регистре ВХ. Если ненулевой байт ненайден, то на экран выдается сообщение.
Указание: использовать команду JNZ.
Пересылка блоков памяти.
Составить процедуру, которая пересылает блок памяти длиной N байт в такой же блок. Смещение начального адреса первого блока берется из регистра SI; смещение начального адреса второго блока берется из регистра DI; N в регистре СХ
Указание: Использовать команду JCXZ.
Пересылка блоков памяти.
Составить процедуру, которая пересылает блок памяти длиной N байт в такой же блок. Смещение начального адреса первого блока берется из регистра SI; смещение начального адреса второго блока берется из регистра DI; N в регистре СХ
Указание: Использовать команду JNZ.
Написать процедуру, которая размещает два 16-битных числа без знака в памяти в порядке убывания (меньшее число заносится в ячейку с старшим адресом).
Результат: Смещение адреса первого числа берется из регистра ВХ; смещение адреса второго числа - из регистра DI
Дано: (0 <= a < 2000, 0 <= b < 2000)
Написать процедуру, которая осуществляет выбор:
Если а < b, то с=b - a;
если a = b, то c=b;
если a > b, то c=a + b
Дано: (20 <= z < 200)
Написать процедуру, которая осуществляет выбор:
;Если z < 20, то c=z + 20
;если z = 20, то c=z/20 (частное)
;если z > 20, то c=z - 20
Поиск нулевой ячейки в блоке памяти.
Составить программу, которая находит первый нулевой элемент в заданном блоке памяти из восьми байтовых элементов. Смещение начального адреса блока берется из регистра ВХ; смещение конечного адреса блока берется из регистра DI.
Смещение адреса нулевого байта возвращается в регистре ВХ. Если нулевой байт ненайден, то по возвращении в регистре ВХ будет содержаться то же значение, что и в DI
Указание: использовать команду JZ.
Преобразование регистра символов.
Написать программу, которая производит замену в строке символов длиной n байт больших букв латинского алфавита на малые.
Указание: Строчным буквам в таблице ASCII соответствует диапазон кодов 61h-7ah, а прописным 41h-5ah. Для составления оптимального алгоритма необходимо сравнить представление соответствующих прописных и строчных букв в двоичном виде:
a 0110 0001……z 0111 1010
A 0100 0001…..Z 0101 1010
Составить программу, которая производит подсчет количества ненулевых элементов в области blok длиной n байт.
Указание: использовать команды LOOP, JCXZ, CMP, JE.
На выходе в AL количество ненулевых элементов.
Составить процедуру, которая производит деление двух беззнаковых чисел с учетом деления на 0. Вычислить:
а) 300000/300
b) 300000/0
Указание: Делитель в регистре BХ. При делении на 0 выдать на экран соответствующее сообщение.
Составить процедуру (тип NEAR) заполнения блока памяти из 10 байт рядом квадратов натуральных чисел. Если квадрат числа делится на 8 то вместо него заносится символ «а».
Написать процедуру выбора двух альтернатив (0 <= a <= 100, 0 <= b < 100)
;Если а <= b, то с=a + b
;если a > b, то c=a - b
Указание: ;а в регистре AL; ;b в регистре BL; ;c в регистре DX.
Сегмент данных отсутствует.
Вычислить для: а) а=5, b=25; в) а=25, b=5
Поиск нулевой ячейки в блоке памяти.
Составить программу, которая находит первый нулевой элемент в заданном блоке памяти из пяти байтовых элементов. Смещение начального адреса блока берется из регистра ВХ; смещение конечного адреса блока берется из регистра DI.
Смещение адреса нулевого байта возвращается в регистре ВХ. Если нулевой байт ненайден, то на экран выдается сообщение.
Указание: использовать команду JZ.
Пересылка блоков памяти.
Составить процедуру, которая пересылает блок памяти длиной N байт в такой же блок. Смещение начального адреса первого блока берется из регистра SI; смещение начального адреса второго блока берется из регистра DI; N в регистре СХ
Указание: Использовать команду LOOP.
Вычислить значение функции:
(a-b)/a+1, если a > b,
Y= 25, если a = b,
(a-5)/b, если a < b,