деление в ассемблере



Автор Scrin задал вопрос в разделе Другие языки и технологии

Обьясните деление (Assembler) и получил лучший ответ

Ответ от Миоко Таканава[гуру]
Это не просто деление, а часть какого-то более сложного алгоритма, если, конечно, не "творение" начинающего программиста очень невысокой квалификации.
mov al,220 ; Константа 220 (назначение неизвестно)
mul al ; Взведение в квадрат AX := 220^2 = 48400 = BD10h
cbw ; Обнуление старшего байта AX := 0010h = 16 (необычным способом)
mov bl,v1 ; Неизвестно значение переменной или константы v1
div bl ; Деление 16/v1, AL:=int(16/v1), AH:=16 mod v1
mov al,bl ; AX:=(16 mod v1)*256+v1
mov bl,v2 ; К данному фрагменту отношения не имеет. v2 используется где-то дальше в программе
div al ; AX/v1. AL:=int(((16 mod v1)*256+v1)/v1); AH:=((16 mod v1)*256+v1) mod v1
Что это за значения и для чего они нужны без контекста программы, из которого вырван фрагмент, неизвестно.
Jet Set, а причём здесь прерывания? Прерывание в данном случае может возникнуть только если v1 равно нулю (прерывание по ошибке деления на 0) или единице (частное не поместится в al).

Ответ от Jet Set[гуру]
ссылка
Вроде все понятно. К слову, прерывание это передача управления другой программе при неко

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Обьясните деление (Assembler)
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*