Ассемблер и программирование для IBM PC



       

ГЛАВА 13. Арифметические операции II: - часть 9


ПРОГРАММА: ПРЕОБРАЗОВАНИЕ ВРЕМЕНИ И РАСЦЕНКИ РАБОТ ДЛЯ РАСЧЕТА ЗАРПЛАТЫ ------------------------------------------------------------

Программа, приведенная на рис.13.6, позволяет вводить с клавиатуры значения продолжительности и расценки работ и отображать на экран pасчитанную величину заработанной платы. Для краткости в программе опущены некоторые проверки на ошибку. Программа содержит следующие процедуры:

B10INPT Вводит значения времени работы на ее расценку с клавиатуры. Эти значения могут содержать десятич ную запятую. D10HOUR Выполняет преобразование значения времени из ASCII в двоичный формат. E10RATE Выполняет преобразование значения расценки из ASCII в двоичный формат. F10MULT Выполняет умножение, округление и сдвиг. Величина зарплаты без дробной части или с одним или двумя знаками после запятой не требует округления и сдви га. Данная процедура ограничена тем, что позволяет обрабатывать величину зарплаты с точностью до шести десятичных знаков, что, конечно, больше, чем требуется. G10WAGE Вставляет десятичную запятую, определяет правую позицию для начала записи ASCII символов и преобразует двоичное значение зарплаты в ASCII-формат.

Ассемблер для IBM PC. Глава 13 10

K10DISP Заменяет лидирующие нули на пробелы и выводит результат на экран. M10ASBI Преобразует ASCII в двоичный формат (общая процедура для времени и расценки) и определяет число цифр после запятой в введенном значении.

------------------------------------------------------------ ------------------------------------------------------------ Рис.13.6. Расчет заработной платы.

Ограничения. Первое ограничение в программе, приведенной на рис.13.6, cостоит в том, что допускает не более шести десятичных знаков после запятой. Другое ограничение - размер самой зарплаты и тот факт, что сдвиг включает деление на число, кратное 10, a преобразование в ASCII-формат включает деление на 10. Если значение времени или расценки содержит больше шести десятичных знаков или зарплата превы шает величину около 655350, то программа выдает нулевой результат. На практике программа может предусмотреть в данном случае вывод предупреждающего сообщения или иметь подпрограммы для исключения таких ограничений.




Содержание  Назад  Вперед