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


          

В программе такого типа другая


MOV AX,STOKNIN LEA SI,STOKTAB C20: MOV BX,[SI] CMP AX,BX JA или JB ...
В программе такого типа другая таблица может определять стоимость единицы товара. Программа может локализовать элемент таблицы, вычислить продажную стоимость (количество товара умножить на стоимость единицы товара) и выдать на экран наименование и прадажную стоимость товара. В примере на рис. 14.2 таблица содержит двухбайтовые номера и десятибайтовые наименования. Детальное программиро вание будет oтличаться для различного числа и длины элементов. Например, для сравнения трехбайтовых полей можно использовать команду REPE CMPSB, хотя эта команда также включает использование pегистра CX.
Таблицы с ранжированием
Подохожный налог дает характерный пример таблицы с ранжированными значениями. Представим себе таблицу, содержащую размеры доходов oблагаемых налогами, процент налога и поправочный коэффициент:
Размер дохода Процент налога Поправочный к-нт
0-1000.00 10 0,00 1000,01-2500,00 15 050,00 2500,01-4250,00 18 125,00 4250,01-6000,00 20 260,00 6000,01 и более 23 390,00
Ассемблер для IBM PC. Глава 14 28
В налоговой таблице процент увеличивается в соответствии с увеличением налогооблагаемого дохода. Элементы таблицы доходов содержат максимальные величины для каждого шага:
TAXTBL DD 100000,250000,425000,600000,999999
для организации поиска в такой таблице, программа сравнивает доxод налогоплатильщика с табличным значением дохода:
если меньше или равно, то использовать соответствующий процент и поправку; если больше, то перейти к следующему элементу таблицы.
Величина налога рассчитывается по формуле:
Доход х Процент налога : 100 - поправочный к-нт
Табличный поиск с использованием сравнения строк
Если элемент таблицы превышает длину в два байта, то для операции сравнения можно использовать команду REPE CMPS. Предположим, что таблица инвентарных номеров (рис.14.2) переделана для трехбайтовых номеров. Если STOKNIN является первым полем в области данных, а STOKTAB - вторым, то они могут выглядеть cледующим образом:

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