|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
||||||
TASM Ввести с клавиатуры строку, состоящую из целых чисел, разделенных пробелами. Найти минимальное число и вывести на экран25.03.2018, 23:36. Показов 5497. Ответов 15
Метки нет (Все метки)
Я вроде чё-то понял, но вроде и нет
. Можете подсказать, где и что не так? А то не понимаю, что не так. Вот например при вызове INT 21h у меня нет никакого ввода, я тыкаю, а ничего не вводится. Вот код:
. Заранее спасибо. Я новичок, где-то 2 недели учу его.
0
|
||||||
| 25.03.2018, 23:36 | |
|
Ответы с готовыми решениями:
15
Ввести строку, состоящую из слов, разделенных пробелами
|
|
Модератор
|
|
| 25.03.2018, 23:53 | |
|
Вот куда вводили - там символы и находятся - в буфере Buf, но не с самого начала, а по смещению
Смотрите по ссылке формат структуры (записи) буфера http://www.codenet.ru/progr/dos/dos_0018.php При начале обработки нужно настроить указатели на начало строки Смотрите описание lodsb https://www.cyberforum.ru/post5516354.html Такой case для выделения цифры можно не делать. Достаточно убедиться, что al в диапазоне символов '0'...'9' и вычесть из al код символа '0', а потом и умножение со сложением.
1
|
|
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
|
| 26.03.2018, 00:48 [ТС] | |
|
Ухты, спасибо, сейчас почитаю (:
0
|
|
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
||||||
| 27.03.2018, 21:50 [ТС] | ||||||
Ну хотя-бы строк меньше, но ещё надо что-то подправить... Спасибо кстати.
0
|
||||||
|
Модератор
|
|
| 27.03.2018, 22:17 | |
|
lodsb - согласно непрочтёной документации выполняет 2 операции 1)
[ds:si] -> al, 2) si:=si+1Где в программе настройка si на буфер? Ну и преобразование символов в число. Где находится текущее число? Вы бы набрали алгоритм преобразования символов строки в число в виде программы на C/Pascal. И сразу станет легче. Останется лишь преобразовать строки Pascal в ассемблер. Добавлено через 1 минуту Номер функции чтения буфера в AH - а не в AL.
1
|
|
|
Эксперт Hardware
|
||||||
| 27.03.2018, 22:45 | ||||||
|
Зачем сохранять в буфер, проверяй на-лету:
1
|
||||||
|
Модератор
|
|
| 27.03.2018, 22:51 | |
|
R71MT, если преподаватель ему предлагает ввести строку и обработать её, то выбор "на лету" не даст зачёта.
Другое дело, что "на лету" отличается от обработки строки лишь способом доступа к следующему символу.
1
|
|
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
||||||
| 28.03.2018, 22:27 [ТС] | ||||||
Добавлено через 18 минут Я исправил LEA SI, BUFER + 2, теперь другая проблема, в общем результат MUL BL по идее должен сохранять в AX, я туда захожу, а там ничего нет Добавлено через 16 минут У меня при LODSB изменяет AL и AX.
0
|
||||||
|
Модератор
|
||||||
| 28.03.2018, 22:32 | ||||||
|
Вы какой язык учили? Pascal?
Структура буфера
Добавлено через 1 минуту Пока набирал - вы исправили.
1
|
||||||
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
|
| 28.03.2018, 22:34 [ТС] | |
|
А что с LODSB'ом делать? неужели придётся старыми добрыми адресами пользоваться? или можно как-то исправить?
0
|
|
|
Модератор
|
||||||
| 28.03.2018, 22:48 | ||||||
|
И длину в CX нужно брать по BUF+1. Обнулить CX, загрузить CL из BUF+1
Добавлено через 11 минут
Добавлено через 1 минуту Единственно, нужно учесть, что по окончанию цикла может остаться необработанное число.
0
|
||||||
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
||||||
| 29.03.2018, 00:17 [ТС] | ||||||
|
Не могли бы вы просто подправить код? Пожалуйста (: Завтра лаба, а у меня ошибки в DX(он не воспринимает числа 1...2) и вроде всё, все ошибки, ну с выводом я попытаюсь сам справиться:
Я очень туго воспринимаю ассемблер, сразу извинияюсь, что задалбываю так долго, но просто мне нужен конкретный пример, тогда я буду понимать. А вот вы скинули про losdb - более-менее понял Добавлено через 36 минут ФедосеевПавел, просто не могу понять, как так умножать, чтоб AX не изменялось. Я DX поставил и туда присваивать начал, но потом понял, что тщетно
0
|
||||||
|
Модератор
|
||||||
| 29.03.2018, 00:25 | ||||||
Сообщение было отмечено cinekst_207 как решение
Решение
Дальше самостоятельно
1
|
||||||
|
7 / 7 / 5
Регистрация: 25.03.2018
Сообщений: 377
|
|
| 29.03.2018, 00:30 [ТС] | |
|
Вооооу, сколько строк. Но команды знакомые, попытаюсь понять. Спасибо большое. Чувствую летом меня не только плюсы ждут
0
|
|
|
Модератор
|
|
| 29.03.2018, 00:32 | |
|
Вывод с пояснениями в закреплённой теме. Смотрите там.
Если не сохранять регистры - при выводе всего 10 строчек кода.
0
|
|
| 29.03.2018, 00:32 | |
|
Помогаю со студенческими работами здесь
16
Вывести строку, состоящую из подстрок исходной строки, представленных в обратном порядке и разделенных пробелами Ввести одномерный массив из 7 целых чисел с клавиатуры и вывести его на экран. Найти его наименьший элемент
Ввести с клавиатуры массив из 10 целых чисел, посчитать сумму и вывести на экран Ввести с клавиатуры массив целых чисел и вывести его на экран в виде матрицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|