Вопрос № 110317: Єксперты помогите плз надо срочно решить задачу !!!
Для матрицы размером 5Х10 определить максимальный елемент матрицы если первый елемент находится в оперативной памяти по адресу 1000А а второй 1001h .... итд результат занести в стек по адре...Вопрос № 110318: Здравствуйте, Эксперты!!! Помогите, пожалуйста, разобраться. Например, надо сложить три числа:
Res=X+Y+Z, где x,y -однобайтные, z – четырехбайтное
Я пытаюсь, но пока мои попытки тщетны. Скажите, что я не так делаю и как нужно правильно писать...Вопрос № 110320: Здравствуйте, у меня такой вопрос:
Найти всех соседей заданного символа в исходной строке. Первый и последний символ считать соседями.
Спасибо за внимание!...Вопрос № 110326: Привет, народ. Появилась такая вот проблемка с асмом. Нужно считать 22 числа. первые два образуют некий диапазон MIN..MAX.
После этого поочередно вводится еще 20 чисел. если число входит в диапазон, то нужно его занести в общую сумму. в конце выв...
Вопрос № 110.317
Єксперты помогите плз надо срочно решить задачу !!!
Для матрицы размером 5Х10 определить максимальный елемент матрицы если первый елемент находится в оперативной памяти по адресу 1000А а второй 1001h .... итд результат занести в стек по адресу 5000h ....
Зранее СПС
Отправлен: 20.11.2007, 18:35
Вопрос задал: VaNuk (статус: 3-ий класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Зенченко Константин Николаевич
Здравствуйте, VaNuk!
Т.к. все элементы матрицы расположенны последовательно в памяти то можно все реализовать только в одном цикле.
mov si,1000h;настраиваемся на матрицу
cld;выбираем напрвление +1
mov cx,5*10;всего 50 элементов
lodsb;читаем первый элемент
jmp short C;переходим, чтобы запомнить максимальный элемент
A:lodsb;читаем текущий элемент
cmp ah,al;сравниваем текущий элемент с максимальным
jae B;если ah больше al переходим
C:mov ah,al;теперь новый максимальный элемент
B:loop A;проверяем все элементы в цикле
mov [5000h],ah;записываем по адресу
Удачи!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Здравствуйте, Эксперты!!! Помогите, пожалуйста, разобраться. Например, надо сложить три числа:
Res=X+Y+Z, где x,y -однобайтные, z – четырехбайтное
Я пытаюсь, но пока мои попытки тщетны. Скажите, что я не так делаю и как нужно правильно писать.
Приложение:
Отправлен: 20.11.2007, 18:46
Вопрос задала: Алена (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Sov
Здравствуйте, Алена!
...
xor ax,ax
xor bx,bx
mov al,x
mov bl,y
add ax,bx
add ax,word ptr z ;mojet vozniknut perenos
mov word ptr Res,ax;rezultat slojenia x y i mladshaia chast z
mov ax,word ptr [z+2]
adc word ptr [Res+2],ax
...
Ответ отправил: Sov (статус: 8-ой класс)
Ответ отправлен: 21.11.2007, 08:05 Оценка за ответ: 5 Комментарий оценки: Спасибо Вам БОЛЬШОЕ!!!:-) Удачи Вам!;-)
Отвечает: an42
Здравствуйте, Алена!
Не много подправил ваше приложение.
Удачи
Приложение:
Ответ отправил: an42 (статус: 6-ой класс)
Ответ отправлен: 22.11.2007, 11:03 Оценка за ответ: 5 Комментарий оценки: Огромное спасибо, an42!:-) И Вам удачи!!!:-)
Вопрос № 110.320
Здравствуйте, у меня такой вопрос:
Найти всех соседей заданного символа в исходной строке. Первый и последний символ считать соседями.
Спасибо за внимание!
Отправлен: 20.11.2007, 18:57
Вопрос задал: Primus (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Primus!
Смотрите приложение.
ps:вопросы задавайте в мини-форум, он Вам доступен как автору вопроса.
Удачи!
Приложение:
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 21.11.2007, 20:30 Оценка за ответ: 5
Вопрос № 110.326
Привет, народ. Появилась такая вот проблемка с асмом. Нужно считать 22 числа. первые два образуют некий диапазон MIN..MAX.
После этого поочередно вводится еще 20 чисел. если число входит в диапазон, то нужно его занести в общую сумму. в конце вывести эту сумму. как это сделать в принципе понятно. а вот перевод на асм немного не получается. В приложении есть код. там идет просто ввод одного числа и вывод. Я написал отдельно процедуры ввода и вывода. если все это записать в кучу без процедур для ввода и вывода одного числа, то все работает. а так нет. Ошибке мне кажется сидит в процедуре вывода writed. но словить я ее не могу. помогите
кто-нить ее исправить или просто решить задачу.
всем спасибо )
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Решетник Д!
Смотрите приложение.
Первое, что бросилось в глаза:
writed proc near;выводит на экран число из ax pop ax;в стеке находится адрес возврата
. . . push di
RET;возврат на число в di
ex2:
RET
endp readd
Удачи!
Приложение:
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 21.11.2007, 11:35 Оценка за ответ: 5 Комментарий оценки: Большое спасибо.
Работает отлично. только в начало добавил еще кусочек небольшой инициализации. а то мусор выбивало сначала.
Отвечает: an42
Здравствуйте, Решетник Д!
Предлагаю свое приложение.
Макрос dos2109 служит для вывода текстовых сообщений.
Процедура Ascii служит для ввода цифр с клавиатуры
Процедура AsciiBin служит для перевода числа в двоичное представление
Процедура BinAscii служит для перевода из двоичного числа в десятеричный формат
При воде с клавиатуры идет контроль, блокировка не цифровых клавиш (звонок)
Контроль количество введенных символов (четыре)
Введен контроль определение максимального и минимального числа
Нет контроля на переполнение переменной sum, поэтому чтобы все работало корректно максимальное число не должно превышать 3276 десятичное. (3276*20=FFF0h)
Остальные пояснения в программе
Удачи
Приложение:
Ответ отправил: an42 (статус: 6-ой класс)
Ответ отправлен: 24.11.2007, 15:22 Оценка за ответ: 5 Комментарий оценки: Болльшое спасибо за ответ. буду разбираться