Data segment

A DB 0FAh, 0C7h, 0ACh

B DW?

DATA ENDS

CODE SEGMENT

...

MOV AL, A;в AL первый байт последовательности A

MUL A+2;произведение в регистре AX

MOV B, AX; результат заносится в память

...

Умножение слова на слово: Здесь множимое находится в регистре AX, а множитель в слове памяти или в регистре. После умножения произведение образуется в двойном слове, для которого требуется два регистра: старшая часть произведения находится в регистре DX, а младшая часть в регистре AX.

Пример. В сегменте данных два слова, требуется вычислить их произведение:

DATA SEGMENT

A DW 0F3A7h.20C7h.0A

B DW?,?

DATA ENDS

CODE SEGMENT

...

MOV AX,A

MUL A+2;произведение в регистрах DX:AX

MOV B, DX;результат

MOV B+2, AX;заносится в память

Команды деления

Операция деления для беззнаковых данных выполняется командой DIV, существуют две основные операции деления:

Деление слова на байт: Делимое находится в регистре AX, а делитель в байте памяти или в однобайтовом регистре. Остаток от деления получается в AH, а частное в регистре AL.

Пример. В сегменте данных зарезервированы два

Разделить первое слово на второй байт:

DATA SEGMENT

AC DW 0ECDAH, 0CB78H

CC DB 0D7H, 0CDH

C1 DW?,?

C2 DB?,?

DATA ENDS

CODE SEGMENT

...

MOV AX,AC;занесение делимого в регистр

DIV CC+1

MOV C2, AH;результат заносится в память

MOV C2+1,AL;эти два оператора можно заменить одним:

; MOV C1, AX

...

Деление слова на слово: Делимое находится в регистровой паре DX:AX, а делитель в слове памяти или в регистре. Остаток от деления получается в DX,а частное в регистре AX.

Пример. Сегмент данных оформлен как в предыдущем примере. Требуется вычислить частное от деления двойного слова на слово, образование из двух байтов:

MOV DX, AC; в DX старшая часть делимого

MOV AX,AC+2; в AX младшая часть делимого

MOV BH,CC; в регистре BX

MOV BL,CC+1; формируется слово делителя

DIV BX; деление

MOV C1,DX; остаток от деления записывается в память

MOV C1+2,AX; в память записывается частное от деления

Индивидуальные задания

Вариант №1

Написать программу, в которой используются следующие данные: шесть слов со значениями 6A81h,A356h,FE32h,A33h,D310h,C12Ah. Найти сумму первых трёх чисел, результат разделить на шестое число. Частное от деления записать в память по адресу, следующему за последним шестым числом. Остаток умножить на четвёртое число. Результат записать в память.

Вариант №2

Написать программу, в которой используются следующие данные: шесть байтов со значениями ABh, CDh,EFh,4Ah,CFh,56h. Найти сумму второго и третьего байтов, из полученного результата вычесть четвёртый байт. Результат умножить на слово 54ACh.Произведение разделить на слово, составленное из пятого и шестого байтов заданной последовательности. Полученный результат записать в память по адресу, следующему за указанной последовательностью.

Вариант №3

Написать программу, в которой используются следующие данные: семь байтов со значениями AFh,3Dh,8Ah,5Dh,FCh,EAh,EEh. Найти разность седьмого и второго байтов, результат сложить с третьим байтом и поделить на шестой байт. Частное от деления записать в память по адресу, следующему за заданной последовательностью. Остаток умножить на первый байт последовательности. Результат записать в память.

Вариант №4

Написать программу, в которой используются следующие данные: пять байтов со значениями FDh,FFh,A3h,3Fh,F2h и два слова: 3A6h, 5134h.Найти сумму второго и третьего байтов, результат умножить на второе слово и разделить на первое. Из остатка вычесть первое слово, результат записать в память, так же как и частное от деления.

Вариант №5

Написать программу, в которой используются следующие данные: пять байтов со значениями 3Ch,F3h,5Fh,66h,E4h и три слова: 5A34h,6FC1h,D1E2h. Найти сумму второго и третьего байтов, результат умножить на второе слово. Из младшего слова произведения вычесть третье слово и разделить на первое слово. Частное и остаток записать в память по адресу, следующему за данной последовательностью.

Вариант №6

Написать программу, в которой зарезервировано четыре слова со значениями A031h,8FFAh,5FD3h,4FAFh и два байта FAh CDh. Получить разность второго и четвёртого слов, разделить её на первый байт, остаток сложить со вторым байтом и записать в память, а частное от деления умножить на седьмой байт последовательности слов. Результат записать в память.

Вариант №7

Написать программу, в которой зарезервированы два слова со значениями: FACDh, FE37h и пять байтов: 5Ah,6Fh,AAh,BCh,CDh. Получить сумму второго, четвёртого и пятого байтов, вычесть из полученного результата второе слово. Разность разделить на третий байт последовательности байт. Остаток записать в память, а частное от деления умножить на четвёртый байт последовательности слов. Результат записать в память.

Вариант №8

Написать программу, в которой зарезервировано два слова со значениями:FСС1h, CF11h и три байта Ch,FFh,88h.Получить сумму второго слова и третьего байта. Результат умножить на первое слово. Старший байт результата записать в память. Младшее слово результата разделить на второй байт байтовой последовательности. Частное от деления и остаток записать в память.

Вариант №9

Написать программу, в которой зарезервировано четыре слова со значениями: E010h,1E4Ah,2BC7h,B781h и три байта со значениями: AAh,ABh,ACh. Найти разность между первым словом последовательности слов и вторым байтом байтовой последовательности.

Результат разделить на третий байт. Частное от деления умножить на первый байт, а остаток сложить с третьим словом последовательности слов. Полученные результаты записать в память.

Вариант №10

Написать программу, в которой зарезервировано три слова со значениями: F11Fh, A332h, 2878h и четыре байта ADh,DDh,CDh,1Dh. Получить сумму второго слова последовательности слов и второго байта последовательности байт. Результат разделить на четвёртый байт. Остаток от деления вычесть из третьего слова последовательности слов и записать в память, а частное от деления умножить на третий байт. Полученный результат записать в память.

Вариант №11

Написать программу, в которой зарезервировано, пять байт со значениями:1Dh,D7h, ECh, C7h, ACh и два слова 87FEh, 7FA8h.Вычесть из второго слова последовательности слов третий байт последовательности байт. Результат умножить на первое слово. Старшее слово результата сложить с третьим байтом байтовой последовательности, а младшее слово результата разделить на пятый байт. Все полученные результаты записать в память.

Вариант №12

Написать программу, в которой зарезервировано четыре слова:AABBh,BC1Dh, EC2Ch,146Dh и три байта со значениями DFh,7Fh,8Ah. Найти сумму первого и третьего слов, результат разделить на второе слово. Остаток от деления умножить на слово, составленное из первого и третьего байтов последовательности байт, а из частного от деления вычесть второй байт байтовой последовательности.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: