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

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


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

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

Выпуск № 789
от 26.06.2007, 15:35

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


Вопрос № 92203: Здравствуйте уважаемые Эксперты! Волей случая так получилось, что мне нужна срочная помощь в написании программы на Ассемблере. Если кто нибудь сможет помочь в этом, буду очень признателен. Вот сама задача: Умножить два двухбайтных числа...
Вопрос № 92276: Добрый вечер! Помогите пожалуйста с програмкой: Ввести размерность m х n и элементы матрицы (байты, положительные числа).Заменить минимальные элементы в нечетных строках на нули. Сложность возникла при объявлении матрицы размерностью m x ...
Вопрос № 92296: Здраствуйте ! У меня такой вопрос : Как вывести сообщение через видеобуфер если программка запускается из 1 сектора дискеты, т.е при загрузке. Я пытаюсь вывести в es(b800):XXXX , но его нет на экране. Как настроить монитор на видеобуфер ....
Вопрос № 92345: подскажите как установить ПО для работы с ассемблером. Скачал МАСМ с сайта майкрософт, скачас С++ Експресс едишн. Все установилось нормально. файлы .asm распознаются и открываются. Как их дальше преобразовывать в объектный и т.д. Как потом запуст...

Вопрос № 92.203
Здравствуйте уважаемые Эксперты! Волей случая так получилось, что мне нужна срочная помощь в написании программы на Ассемблере. Если кто нибудь сможет помочь в этом, буду очень признателен.

Вот сама задача:
Умножить два двухбайтных числа в памяти с адресами 0d50 (младший байт числа) 0d51 (старший байт числа) 0d52 (младший байт числа) 0d53 (старший байт числа). Результат записать по адресам с000h (младший байт числа) с001H (старший байт числа).

Я так понимаю что ответ будет четырехбайтным, и как его записать в 2 ячейки памяти? Возможна ошибка в задании. Давайте запишем в 4 ячейки.

Виноват, извините за повторный вопрос, просто забыл сказать что это нужно сделать коммандами для процессора KP580BM80A. Ещё раз спасибо!
Отправлен: 20.06.2007, 15:35
Вопрос задал: Мазур Сергей Викторович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Мазур Сергей Викторович!

Смотрите приложение.
При умножении двух 16-битных чисел результат получается 32-битный.
По адресу 0C004h хранится счетчик умножения.
Удачи!

Приложение:

---------
И только наступив на грабли мы преобретаем драгоценный опыт!

Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 20.06.2007, 18:38


Вопрос № 92.276
Добрый вечер!
Помогите пожалуйста с програмкой:
Ввести размерность m х n и элементы матрицы (байты, положительные числа).Заменить минимальные элементы в нечетных строках на нули.
Сложность возникла при объявлении матрицы размерностью m x n.
mas db m DUP (5 DUP (?)) он не воспринимает, а
mas db ?
m db ?
n db ?
путсються...
заранее спасибо)

Отправлен: 20.06.2007, 22:53
Вопрос задал: Mikelado (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Олег Владимирович
Здравствуйте, Mikelado!
Прокомментирую только проблему с объявлением. Прекрасно воспринимается объявление вроде
mas db 5 dup (5 dup (?))
Другое дело, что недопустимо
m db ?
n db ?
mas db m dup (n dup (?))
так как ассемблер должен точно знать, сколько памяти отводить под переменную mas. Можно сделать так:
m equ 5
n equ 5
mas db m dup(n dup (?))
Но твёрдо прописывать в программе размер матрицы противоречит заданию. Можно предложить слдующее: задать максимальный возможный размер матрицы и исходя из него, выделять память: mas db 100 dup (100 dup (?)).
Другой вариант - после ввода пользователем m и n создавать матицу в стэке -
mov ax, n ; m и n - word
imul ax, m ; Теперь в AX m*n - размер матрицы в байтах
sub sp, ax ; Сдвигаем SP, выделяя область размером mn
mov bp, sp ; Устанавливаем указатель на неё в BP
Если будут вопросы или возникнут трудности с самой программой - обращайтесь в минифорум. Удачи!
---------
Факультет ПМ-ПУ - лучший в СПбГУ!
Ответ отправил: Олег Владимирович (статус: Студент)
Ответ отправлен: 20.06.2007, 23:36
Оценка за ответ: 5


Вопрос № 92.296
Здраствуйте ! У меня такой вопрос :
Как вывести сообщение через видеобуфер если программка запускается из 1 сектора дискеты, т.е при загрузке.
Я пытаюсь вывести в es(b800):XXXX , но его нет на экране.
Как настроить монитор на видеобуфер .
Пытался
mov ax,3
int 10h ;video mode = 3

mov ah,5
xor al,al ; page 0
int 10h

thanks forward
Отправлен: 21.06.2007, 01:46
Вопрос задал: James (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 7)

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

Вспомните формат MBR.
1)Программа должна начинатся с 0000h по этому адресу стоит переход на программу.
2)Далие идет описание диска.
3)Сама программа.
4)Таблица разделов.
и все заканчивается кодом 55h,AAh
(итого 512 байт)
Подробности смотрите в книге В. Кулакова работа с дисками.
Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 22.06.2007, 10:42
Оценка за ответ: 5


Вопрос № 92.345
подскажите как установить ПО для работы с ассемблером.
Скачал МАСМ с сайта майкрософт, скачас С++ Експресс едишн. Все установилось нормально. файлы .asm распознаются и открываются. Как их дальше преобразовывать в объектный и т.д. Как потом запустить?
Отправлен: 21.06.2007, 12:57
Вопрос задал: Шамигулов Тимофей Ринатович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Зенченко Константин Николаевич
Здравствуйте, Шамигулов Тимофей Ринатович!
Посмотрите вопрос 92197.
Скорее всего Вы скачали версию для Windows(32-bit он не компилирует программы 16-bit и Вам нужно скачать версию для Дос(16-bit): MASM 6.11, 6.12)
Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 21.06.2007, 13:17


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

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

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

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

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


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


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

В избранное