Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 911
от 26.11.2007, 03:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 361, Экспертов: 20
В номере:Вопросов: 4, Ответов: 6


Вопрос № 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;
записываем по адресу

Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Специалист)
Ответ отправлен: 22.11.2007, 12:20


Вопрос № 110.318
Здравствуйте, Эксперты!!! Помогите, пожалуйста, разобраться. Например, надо сложить три числа:
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. но словить я ее не могу. помогите кто-нить ее исправить или просто решить задачу.
всем спасибо )

Приложение:

Отправлен: 20.11.2007, 21:17
Вопрос задал: Решетник Д (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Решетник Д!

Смотрите приложение.
Первое, что бросилось в глаза:
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
Комментарий оценки:
Болльшое спасибо за ответ. буду разбираться


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.64 от 24.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное