|
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 28
|
||||||
Ввод символов и отображение в различных системах счисления31.03.2016, 16:22. Показов 6141. Ответов 20
Метки нет (Все метки)
Здравствуйте, форумчане!
Есть проблема, прошу подсказки. Нужно создать прогу на ассемблере, которая при введении с клавы двух байт (*1234 естественно в 16-ричной) пересчитывала бы их в другие, например в двоичную, десятичную, шестнадцатеричную и т.д. Сама логика перевода понятна, сравнение, добавление 30h или 37h (для hex) или деление на 10 (для 10-ричной). Мне непонятно, как сохранить введенные с клавы байты например в BX, чтобы потом из них доставать, преобразовывать и выводить на экран по своему желанию. Ниже приведу свои потуги, которые моментально выдадут во мне чайника. Наведите на путь истинный.
0
|
||||||
| 31.03.2016, 16:22 | |
|
Ответы с готовыми решениями:
20
Ввод и вывод чисел в различных системах счисления Ввод и вывод чисел в различных системах счисления Ввод и вывод чисел в различных системах счисления, исправить код |
|
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
|
|
| 31.03.2016, 16:34 | |
|
Jrog, обработку из строки в число, тоже все просто,
например ввели 1234 = берем символ 1) (1 -30h)*1000 2) (2-30h)*100 3) (3-30h)*10 4) 4-30h все складываем, получим число
1
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||||||||||
| 31.03.2016, 17:13 | |||||||||||
Опредделитесь, где должна стоять Write_str, до или после Write_digit_hex Вы должны ввести два байта, а это 4-е цифры в 16-ой системе.
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 28
|
|
| 01.04.2016, 14:23 [ТС] | |
|
День добрый! Благодарю tahir и Constantin Cat за оперативную реакцию. Про функцию вывода не знал, спасибо, буду использовать впредь.
Constantin Cat, ввод 4-ех чисел реализовал через Write_digit_hex со смещением в старший полубайт, или я не так понял? Tahir, по поводу "берем символ" как раз так и не понял. После ввода с клавы проверил содержание dl, судя по всему оно затирается, и ничего не остается после прерывания int 21. Поэтому и наивно полагал, что нужно как-то их в регистре например BX сохранить, а оттуда уже смело брать для обработки и дальнейшего отображения в нужной мне системе счисления с выводом на экран. Может просто не там смотрю, но debug ничего не показывает ни в dx ни в других регистрах.
0
|
|
|
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
|
||||||
| 01.04.2016, 16:01 | ||||||
|
Jrog, можно так, вот мой пример , писал для чела в другой теме.
1
|
||||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||||||
| 01.04.2016, 20:04 | ||||||
Сообщение было отмечено Jrog как решение
Решение
Jrog, tahir_,
Да, как говорит Mikl___, "Знаете Вы толк в извращениях". ![]() Вы работаете с числом, переводите число в любую СС(Система счисления), зачем извращатся ещё со строками? Работайте с числами сразу без всякого фанатизма? Любая СС на входе(2..Z), любая СС c декрементом на выходе, и любое число в заданной СС.
1
|
||||||
|
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
|
|
| 01.04.2016, 22:50 | |
|
Constantin Cat, на словах объясни, запутался, пример приведи пожалуйста
1
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|
| 04.04.2016, 08:26 | |
|
tahir_, Что именно не понятно?
1
|
|
|
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
|
|
| 04.04.2016, 09:12 | |
|
Constantin Cat, формат ввода пользователем, той программы который ты привел
1
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|
| 04.04.2016, 10:10 | |
|
Ввод системы счисления в 10-ой системе, ввод числа пользователем в выбраной системе.
1
|
|
|
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 28
|
||||||
| 19.04.2016, 08:59 [ТС] | ||||||
|
В продолжении темы опять обращаюсь к экспертам за советом. Написал код ввода 4-х hex чисел c клавы, который сохраняет их в регистре BX. В коде процедуры ввода и перевода из ISCII в hex возникли проблемы при компиляции, подскажите, где ошибка.
0
|
||||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||||||
| 19.04.2016, 09:46 | ||||||
|
Jrog, сделал так, все получилось.
1
|
||||||
|
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 28
|
|
| 19.04.2016, 10:20 [ТС] | |
|
Спасибо за молниеносный ответ!
А зачем sub al,7h? Например при печати A (ISCII код 41h) нужно из него 37h вычесть, чтобы А получить.
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|
| 19.04.2016, 10:45 | |
|
Jrog,
Вы набрали "А" отняли 0х37, а потом отняли ещё и 0х30, т.е. получается Вы отняли уже 0х67
1
|
|
|
Эксперт Hardware
|
||||||
| 19.04.2016, 10:55 | ||||||
|
Jrog, вот тебе код, который сохраняет юзерское число в HEX, и выводит его на экран в различных СС.
Отличие в том, что сохраняется сразу всё число, а не каждый/его разряд. Ошибки - не обрабатываются, числа - без знаковые, размер - word: Кликните здесь для просмотра всего текста
1
|
||||||
|
0 / 0 / 0
Регистрация: 31.03.2016
Сообщений: 28
|
||||||
| 11.05.2016, 13:43 [ТС] | ||||||
|
Огромное спасибо R71MT за отличный код. Вроде разобрался, но пришлось модернизировать его немного. В частности поменять 1-ю функцию на 8-ю 21-го прерывания и ввести алгоритм, который не позволяет при вводе с клавиатуры вводить какие-либо символы кроме 0-9 A-F. И тут возникла проблема с переводом из ASC2 в HEX. Почему-то игнорируются операции SUB AL,30h и SUB AL,37h.
Прошу помочь разобраться, так как сам найти ошибку не могу, я ее просто не вижу. Заранее благодарен.
0
|
||||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||
| 11.05.2016, 14:19 | ||
|
Формирование НЕХ числа переместите перед функцией вывода.
1
|
||
|
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 70
|
||
| 10.09.2016, 07:15 | ||
|
0
|
||
|
Эксперт Hardware
|
|
| 10.09.2016, 07:59 | |
|
_lTaNaToSl_, число вводят для каких-нибудь математических операций, а не просто, чтоб его показать. Поэтому разделяются понятия: число и символ числа. Если посмотреть на ASCII-таблицу символов, то там видно, что числам 0-9 соответствуют коды символов 30-39h. То есть разница между числом и его символом составляет 30h.
В BCD-арифметике, математические операции можно производить и с ASCII-символами, но это неудобно. Поэтому символы переводят в числа, отняв от него 30h
0
|
|
|
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 70
|
||
| 10.09.2016, 08:08 | ||
|
Если я не правильно понял, поделитесь своим примером пожалуйста
0
|
||
| 10.09.2016, 08:08 | |
|
Помогаю со студенческими работами здесь
20
Вывести числа в различных системах счисления Программа для расчета выражения. Ввод/вывод в разных системах счисления Числа в разных системах счисления Организовать ввод значений в различных системах счисления
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|