Курсовая работа: Микропроцессорная система управления предназначенная для использования на лесопильном заводе

; сохраняет A, BC, DE

MINUS OR A ; A не меняется, но флаг CY=0

SBCHL, DE ;

RET ;

Умножение

При умножении первый множитель хранится в паре BC (скопируем его туда из HL в начале), второй множитель хранится в DE. Результат первоначально получается в четырехбайтном виде HL.DE, затем “обрезается” до H.L.

Результат произведения накапливается в HLDE. В течение 16 циклов сдвигов HLDE второй множитель DE постепенно выдвигаясь, уходит вправо и на его место приходит из HL готовые биты произведения. Они получаются при суммировании первого множителя (BC) и левой половины накопленной суммы HLDE (HL). Суммирование делается в случае, если перед этим при сдвиге HLDE вправо из DE был выдвинут единичный бит.

Листинг 10 : подпрограмма MUL

; – – – подпрограмма умножения

; HL´DE®HL

; все регистры меняются

MUL LD B, H ; BC=1-й множитель

LD C, L ;

LD HL, 0 ; HL=0

LD A, 16 ; счетчикцикла

MUL2 SRL H ; сдвиг 0®HLDE®CY

RRL ;

RRD ;

RR E ;

JR NC, MUL1 ; если выдвинут 0, то на конец цикла

ADD HL, BC ; если выдвинута 1, то сложить

MUL1 DEC A ;

JR NZ, MUL2 ;

LD H, L ; получено произведение HL.DE

LD L, D ; которое “обрезаем” до L.D и переносим в H.L

RET

Деление

При делении делимое хранится в HL, делитель в DE. Результат получается в виде трех байт [стек.L] (где “стек” – содержимое вершины стека), в конце программы младший байт стека переносится в H и окончательный результат имеет формат H.L. Регистровая пара BC в начале обнуляется.

Деление производится в течение 24-х циклов. В каждом цикле делается сдвиг BC¬HL¬0, т.е. делимое HL выдвигается влево в пару BC. Затем BC сравнивается с DE (путем вычитания BC–DE и проверки флага переноса). Если BC>DE, то младший разряд HL устанавливается единицей, в противном случае он остается нулем. Это один из разрядов частного.

К-во Просмотров: 423
Бесплатно скачать Курсовая работа: Микропроцессорная система управления предназначенная для использования на лесопильном заводе