3 / 3 / 0
Регистрация: 17.11.2015
Сообщений: 31
|
||||||
1 | ||||||
Несколько готовых процедур для программирования в 64 bit Windows10.07.2016, 02:15. Показов 2338. Ответов 4
Поделюсь с миром несколькими процедурами на Ассемблере под win 64bit.
Большими проектами не занимаюсь, а так на досуге бывает, когда есть вдохновение, что нибудь да попишу. Синтаксис Fasm. Итак первая: Процедура конвертирует число в строку (64 бит версия) Входы: rax - число которое нужно сконвертировать. rdi – адрес строки куда записывать конвертируемое число. Максимальное входное число, переданное через регистр rax в процедуру равно: 18446744073709551615 (64bit). Длина строки на которую показывает регистр rdi может быть не более 21 байт (20 это максимальное число + 1 символ для конца строки ‘0’). Процедура использует стёк (для наибольшего входного числа, может быть до 20 последовательных записей. Но потом, в ней же он и восстанавливается). Процедура может быть полезна если нужно к примеру отобразить содержимое какого либо регистра в API функции MessageBox. Кликните здесь для просмотра всего текста
Завтра еще выложу парочку.
0
|
10.07.2016, 02:15 | |
Ответы с готовыми решениями:
4
Критические отличия работы ядра Windows 7 64-bit и Windows 10 64-bit или их ошибки Сохранение драйверов после смены windows xp sp3 32 bit на windows SL 8 64 bit Как залить треугольник без использования готовых процедур? Обясните мне, если Windows 32 bit, процессор 64 bit, то работает ли 2-ое ядро? |
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
|
|
10.07.2016, 02:41 | 2 |
Не всё так просто в этой жизни. Число 18446744073709551615, да и вообще любое число, большее 32бит*10 ты командой div на 10 не поделишь.
1
|
3 / 3 / 0
Регистрация: 17.11.2015
Сообщений: 31
|
|
10.07.2016, 03:03 [ТС] | 3 |
Почему интересно? И кстати процедура правильно работает и с 64 битным числом.
0
|
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
|
|
10.07.2016, 04:01 | 4 |
Потому что результат деления не влезет в 32 бита и ЦП выдаст исключение DIV0.
Я тоже лет 10 назад, когда только узнал про ассемблер, думал, что всё так просто, и сейчас я понаделаю за пару часов своих универсальных библиотек ввода-вывода, до которых до меня почему-то никто не догадался. Добавлено через 5 минут А, тут на самом деле 128-битное число делится. Ну тогда влезет, наверное. Только этот алгоритм правда всем известен давно) Добавлено через 9 минут Так не интересно. Ты попробуй хотя бы 32-разрядное число, да ещё и со знаком, в RealMode вывести. Про FP вообще умолчу из скромности.
0
|
3 / 3 / 0
Регистрация: 17.11.2015
Сообщений: 31
|
|
10.07.2016, 13:21 [ТС] | 5 |
0
|
10.07.2016, 13:21 | |
10.07.2016, 13:21 | |
Помогаю со студенческими работами здесь
5
Ноут Aspire 5560G: не ставится Windows 7 64-bit, в отличие от 32-bit Как узнать какая у меня винда (Windows XP SP3 2008): 32 bit или 64 bit? Несколько готовых программ на C# Тормозит Windows 8.1 64-bit по сравнению с Windows 7 64-bit Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |