|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.05.2015, 06:43 | #1 |
Пользователь
Регистрация: 07.05.2015
Сообщений: 18
|
FASM
FASM.Изменить регистр введенного символа на противоположный по всей строке. Обязательно использовать команду scas. Строку описать в сегменте данных. Помогите, пожалуйста, и, если можно, с выводом.
|
07.05.2015, 23:38 | #2 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Латиница..
ASCII заглавной буквы, на 20h меньше прописной. Диапазон заглавных - от 41h до 5Ah; прописных - от 61h до 7Ah. Выходит, чтоб выделить заглавную букву, достаточно проверки на "меньше или равно 5Аh" (JLE). Соответственно для выделения прописной, проверяем на "больше или равно 61h" (JGE). По-сути, оптимальным вариантом было-бы сразу проверять введённый символ, и записывать в сегмент данных уже 'противоположный'.., но раз-уж приспичил SCASB, то будет двойная работа.. В твоём случае можно сделать так: 1. читаем символ с клавиатуры, и сразу выводим его юзеру 2. записываем этот символ в сегмент данных (stosb). 3. по-Enter заканчиваем ввод. значение DI будет длинной строки. 4. переходим к (scasb). сначала переведём все/заглавные в прописные. 5. заносим в AL фактор 5Аh, условие - плюс 20h 6. если символ найден, перезаписываем его в ту-же ячейку 7. теперь, переведём прописные в заглавные: фактор 61h, условие - минус 20h 8. выводим результат юзеру (lodsb, int 29h) Код:
Нашедшего выход - затаптывают первым..
|
10.05.2015, 20:18 | #3 |
Пользователь
Регистрация: 07.05.2015
Сообщений: 18
|
Спасибо огромное! Очень помогли
|
17.02.2016, 02:56 | #4 |
Новичок
Джуниор
Регистрация: 17.02.2016
Сообщений: 3
|
вопрос
но ведь после выполнения перевода всех строчных букв в заглавные (scanBig) строка будет полностью состоять из заглавных, соответственно, после выполнения scanSmall строка будет целиком состоять из строчных? и задача будет решена неверно. поправьте, если я ошибаюсь.
|
17.02.2016, 08:55 | #5 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
..согласен, что код тупой до-безобразия (хотя и рабочий). Давно это было и много не знал. Вполне можно было обойтись и простыми/логическими операциями:
Код:
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 17.02.2016 в 09:00. |
18.02.2016, 05:53 | #6 |
Новичок
Джуниор
Регистрация: 17.02.2016
Сообщений: 3
|
спасибо)
Последний раз редактировалось kapetsa; 18.02.2016 в 06:00. |
18.02.2016, 05:59 | #7 |
Новичок
Джуниор
Регистрация: 17.02.2016
Сообщений: 3
|
ага, только теперь scas нету... ох уж эта извращенная фантазия преподавателей)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Учебник по FASM | Roof | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 33 | 09.12.2013 23:16 |
fasm : loop | Warn | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 27.04.2012 16:39 |
Чем отличаеться fasm от fasm editor&? | TotKtoNado | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 07.11.2011 17:00 |
add, sub(fasm) | Lunex.08 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 01.10.2011 12:21 |
создание ОС на FASM | vova65 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 29.09.2011 22:57 |