Лабораторная №3. Интерфейс системных вызовов. Простейшие подпрограммы.
Лабораторная №3. [3 балла]
-
[
task-1.s
] [0.5 балла] Создайте процедуру вывода на консоль строки "Hello world!" После вывода строки переведите курсор в начало следующей строки. Вызовите данную процедуру в основной программе. Не забудьте корректно закончить работу программы. В конце работы основной программы на стеке должны лежать только код возврата и адрес возврата. [
task-2.s
] [0.5 балла] Создайте функцию печати числа на консоль. Число должно передаваться в функцию через стек. После вывода числа, стек должен очищаться. В основной программе с помощью написанной функции распечатайте число, заданное в секции инициализированных данных.[
task-3.s
] [1 балл] С помощью созданной в предыдущей программе функции, распечатайте все значения массива, заданного в секции инициализированных данных. Для этого в основной программе необходимо реализовать цикл по массиву, загружать на стек каждый элемент массива и вызывать для него функцию печати.- [
task-4.s
] [1 балл] Создайте функцию суммирования всех отрицательных элементов массива (адрес массива и его длина в словах передаются функции как параметры, через стек). После вызова функции сумма должна остаться в регистре AX. В основной программе вызовите написанную Вами функцию для массива, объявленного в секции инициализированных данных. По завершению работы функции распечатайте найденную сумму и переведите курсор в начало следующей строки.
Дополнительное задание [1 балл]
[task-5.s
] Создайте функцию вычисления произведения всех элементов массива (адрес массива и его длина в словах передаются функции как параметры, через стек). После вызова функции произведение должно остаться в регистре AX. Если произведение будет выходить за пределы регистра AX (т. е. после умножения регистр DX будет отличен от 0), следует выдать сообщение "Переполнение регистра AX". В основной программе вызовите написанную Вами функцию для массива, объявленного в секции инициализированных данных. По завершению работы функции распечатайте найденное произведение и переведите курсор в начало следующей строки.