Программирование на JAVA

Умножение двойного слова на слово. Процедура E10XMUL на рис. 4.27 умножает двойное слово на слово.

Множимое MULTCND состоит из двух слов, содержащих соответственно 3206Н и 2521Н. Определение данных в виде двух слов (DW) вместо двойного слова (DD) обусловлено необходимостью правильной адресации для команд MOV, пересылающих слова в регистр AX.

Множитель MULTPLR содержит 6400Н.

Область для записи произведения PRODUCT состоит из трех слов.

Первая команда MUL перемножает MULTPLR и правое слово поля MULTCND; произведение 0Е80 Е400 записывается в PRODUCT+2 и PRODUCT+4.

Вторая команда MUL перемножает MULTPLR и левое слово поля MULTCND, получая в результате  138А  5800. 

Далее выполняется сложение двух произведений следующим образом:

Произведение 1:    0000 0Е80 Е400 Произведение 2:    138А 5800 Результат:          138А 6680 Е400

Так как первая команда ADD может выработать перенос, то второе сложение выполняется командой  сложения с переносом ADC (ADd with Carry). В силу обратного представления байтов в словах   в   процессорах   8086/8088   область   PRODUCT   в действительности   будет содержать значение 8А13 8066 00Е4. Программа предполагает, что первое слово в области PRODUCT имеет начальное значение 0000.


<< назад вперед >>