Size: a a a

Ассемблер

2020 May 14

LW

Loren White in Ассемблер
перемещение исходя из состояния флагов
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
выполнить присваивание если установлены флаги, соответствующие знаковому больше или меньше
источник

d

damagekidϡ in Ассемблер
спасибо
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Loren White
перемещение исходя из состояния флагов
думаю слово "перемещение" некоректно в случае с mov
источник

LW

Loren White in Ассемблер
да, ошибочная формулировка. Привык просто читать целиком сокращение и написал первое, что пришло в голову при ассоциации со словом move
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
damagekidϡ
кто-то может сказать, что делают команды cmovg && cmovl
интересная довольно таки инструкция по своим возможностям
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
вот как бы многие реализовали алгоритм взятия числа по модулю.
if val<0 then return -val
else return val
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
а cmov может этот алгоритм сделать без ветвления
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
mov edx, eax
neg eax
cmovs eax, edx
источник

𝑀

𝑀𝓇. 𝐼𝓈𝓀𝒶𝓃𝒹𝒶𝓇... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
а вот и новый челендж. имея 2 целых числа, разделить одно на другое. вывести полученный вещественный результат на экран. все вычисления выполнять только инструкциями х86 (без fpu, без simd). в качестве входных данных принять числа 111 и 7. 111/7=?
десятичную дробь можно написать циклом
источник

d

damagekidϡ in Ассемблер
Как заокруглить цифру к 7 с помощью frndint?
источник

d

damagekidϡ in Ассемблер
источник

d

damagekidϡ in Ассемблер
Если заюзать, то оно округляет до 8
источник

d

damagekidϡ in Ассемблер
источник

d

damagekidϡ in Ассемблер
Разобрался. Кому интересно - https://www.website.masmforum.com/tutorials/fptute/fpuchap1.htm
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
там в каком-то управляющем регистре есть бит(ы), отвечающий в какую сторону выполнять округление
источник

d

damagekidϡ in Ассемблер
1111111111111111b
источник

d

damagekidϡ in Ассемблер
😎
источник

A

Aleksandr in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
а вот и новый челендж. имея 2 целых числа, разделить одно на другое. вывести полученный вещественный результат на экран. все вычисления выполнять только инструкциями х86 (без fpu, без simd). в качестве входных данных принять числа 111 и 7. 111/7=?
Сделал. Простор для оптимизаций еще остался, но лень. Числа A, B и количество цифр после запятой жестко задаются в коде (делать ввод лень)
источник

A

Aleksandr in Ассемблер
собственно
источник