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



Автор 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)
спросили в ITBA
Деление отрицательного числа. Ассемблер
Денис Евдоченко, не обижайтесь, но здесь нужно просто правильно применить знаковое деление, а не
подробнее...

Что значит Native программист и Managed программист ? и в чем разница ?
Впервые слышу эти слова применимо к программисту как профессионалу. Программист решает задачи
подробнее...
спросили в Поколение Front Mission
эвм 1 поколения краткое описание
ЭВМ первого поколения в качестве элементной базы использовали электронные лампы и реле; оперативная
подробнее...
спросили в Ассемблер
Проблема знака при умножении/делении (ассемблер) , MUL, IMUL, DIV, IDIV
В предыдущем ответе ссылка не рассматривает результат деления. Надо иметь в виду, что при делении
подробнее...
спросили в MOL
1 чем отличаются команды MUL и IMUL 2 какую команду расширения нужно использовать при делении на 16-разрядное число
mul - это беззнаковое умножение
imul - знаковое
Если твой ассемблер 16-разрядный, а
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Free Pascal Ассемблер
Assembler лаба не могу разобраться
Не вижу здесь Ассемблер, вижу Паскаль со встроенным ассемблером, а это не одно и то же.
подробнее...

C++. Типы данных. Создание типа данных.
Минимальная граница для адресации процессора - 1 байт. Рекоммендуемая - 4 байта.
Если нужна
подробнее...

чем отличается низкоуровневое программирования от высокоуровневого?
Низкоуровневое ближе к прямому программированию железа (процессора, внешних устройств)
тебе
подробнее...
спросили в Dirt 4 Randomness
Assembler
Вопрос 1
Вот макрос, генерирующий случайные числа от 0 до n-1. Алгоритм взят из модуля System
подробнее...
спросили в DJ США
что такое DX?
всё просто как Ассемблер - это регистр.

Регистр DX является регистром данных. Он
подробнее...
 

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

Имя*

E-mail:*

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