Вопрос № 154012: Здравствуйте, тоько начали изучать ассемблер Дали такое задание, помогите написать пожалуйста: Разработать программу, которая выводит на экран в текстовом режиме столбец единиц синего цвета на черном фоне, столбец двоек зеленого цвета на синем ...
Вопрос № 154030: Здравствуйте, недавно начали изучать асемблер, дали задание написать прогу: Из массива А(10) образовать масив Б(5) таким образом: b1=a1*a10. b2=a2*a9,..... b5=a5*a6,
помогите пожалуйста в написании данной проги...Вопрос № 154081: Доброго вермени суток! Начал изучать ассемблер по книге Калашникова "Ассемблер Это просто! Учимся программировать". Столкнулся с такой проблемой - практически одна из первых программ у меня не работает. Если у Вас есть э...Вопрос № 154082: Дорогие эксперты решите пожалуйста на Турбо Ассемб
лере в DOS: В отдельном каталоге создано несколько текстовых файлов (как минимум 4), с однотипными именами, отличающимися одной цифрой, например, File1.LAB, File2.LAB, File3.LAB, File4.LAB. Эти фай...Вопрос № 154118: Здравствуйте, уважаемые эксперты. Помогите пожалуйста чайнику разобраться . Почему mov sp,offset Lab_1 влияет на появление строки на экране? ...
Вопрос № 154.012
Здравствуйте, тоько начали изучать ассемблер Дали такое задание, помогите написать пожалуйста: Разработать программу, которая выводит на экран в текстовом режиме столбец единиц синего цвета на черном фоне, столбец двоек зеленого цвета на синем фоне и т. д. до конца экрана. Заранее спасибо
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Токарев Дмитрий Сергеевич! Предлагаю построить изображение на странице №1, а потом просто переключить... Если так не устраивает, можно легко переделать... Смена кодов реализована командой xor ax, 1303h. Посмотрите в отладчике, как это работает. Удачи!
Приложение:
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 12.12.2008, 13:20
Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 238403 на номер 1151 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 154.030
Здравствуйте, недавно начали изучать асемблер, дали задание написать прогу: Из массива А(10) образовать масив Б(5) таким образом: b1=a1*a10. b2=a2*a9,..... b5=a5*a6, помогите пожалуйста в написании данной проги
Отправлен: 12.12.2008, 00:14
Вопрос задал: Volk1290 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Volk1290! Предположим, что a - массив из байт, а b - из слов (байт*байт даст, вообще говоря, слово) Можно сделать так:
Код:
.mode tiny .data a db 0,1,2,3,4,5,6,7,8,9 b dw 5 dup (?)
.code .startup mov si, offset a ; адрес первого байта массива А mov
bx, offset a+9 ; адрес последнего байта массива А mov di, offset b ; адрес массива Б mov cx, 5 ; должны сформировать 5 элементов Б fLoop: ; начало цикла lodsb ; al = [si], si = si+1 mul byte ptr [bx] ; ax = al * [bx] dec bx ; подготовим адресацию для следующего шага stosw ; [di] = ax, di = di+2 loop fLoop ; зациклим mov ax,4c00h int 21h end
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 12.12.2008, 04:26
Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 238365 на номер 1151 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 154.081
Доброго вермени суток! Начал изучать ассемблер по книге Калашникова "Ассемблер Это просто! Учимся программировать". Столкнулся с такой проблемой - практически одна из первых программ у меня не работает. Если у Вас есть эта книга, то программа содержится в разделе 3.4>листинг 3.2 (если нет привожу текст ниже). Программа должна выводить символ ASCII путем прямого отображения в видеобуфер. В моем случае все корректно компилируется и работает, но при запуске программа только ожидает
нажатия клавиши и все. У меня Celeron 1.7, если это важно, в книге ведь все время приводят пример старых процессоров. Заранее спасибо!
Ответ отправил: Airyashov (статус: Студент)
Ответ отправлен: 12.12.2008, 13:36
Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 238405 на номер 1151 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 1 Комментарий оценки: И что нам это дает? Почему мы вставили эти строки?
Отвечает: an42
Здравствуйте, Корнатовский Лев Игоревич! Необходимо перейти в текстовый режим. В приложении добавлена 4-я и 5-я строка, это переход в текстовый режим. Удачи
Приложение:
Ответ отправил: an42 (статус: Студент)
Ответ отправлен: 15.12.2008, 01:28
Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 238640 на номер 1151 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 154.082
Дорогие эксперты решите пожалуйста на Турбо Ассемблере в DOS: В отдельном каталоге создано несколько текстовых файлов (как минимум 4), с однотипными именами, отличающимися одной цифрой, например, File1.LAB, File2.LAB, File3.LAB, File4.LAB. Эти файлы следует предварительно создать при помощи редактора текстов. Желательно создавать их не в порядке номеров, чтобы положение файлов в каталоге не совпадало с порядком номеров.
Такое задание: Создать новый файл, содержащий по 10 последних байтов из каждого
исходного файла.
Отвечает: Зенченко Константин Николаевич
Здравствуйте, васильев максим!
В приложении листинг компиляции Вашей программы. Команда mov sp,offset Lab_1 перемещает указатедь стека на метку Lab_1, после неё идут две команды mov ax,9090h и push ax, начнем с первой: код команды NOP(ничего не делать) - 90h, т.е. это два байта с командой NOP, при выполнении второй команды(push ax) будут затерты два байта 9 0107 CD 20 int 20h. При выполнении программы в памяти
вместо функции завершить программу(int 20h) будут стоять две команды NOP, т.е. Ваш код в памяти будет выглядеть так:
--------- Итерация от человека, рекурсия — от Бога (Питер Дойч)
Ответ отправил: Зенченко Константин Николаевич (статус: Профессор) Украина, Киев Тел.: +380979536619 Адрес: Украина г.Киев ---- Ответ отправлен: 12.12.2008, 20:54
Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 238452 на номер 1151 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Отвечает: an42
Здравствуйте, васильев максим! Команда mov sp,offset Lab_1, изменяет вершину стека. sp ---> 09b4 ;это mov ah,09h и дальше будет расположены команды для вывода строки и завершение программы, после этой программы. Область стека перешла в программу. Любые команды push, начнут изменять программный код. Этого в обычных программах стараются не допускать. После команда push ax, картина в стеке будет следующая sp ---> 9090 ;адрес вершины стека уменьшился на 2, и в стек поместили 2 команды nop sp+2-->09b4 ;это
mov ah,09h Блок программы будет в памяти выглядеть следующим образом: … Begin: mov sp,offset lab_1 mov ax,9090h push ax nop ;здесь стояла двух байтовая команда nop ;int 20h Lab_1: nov ah,09h … Удачи
Ответ отправил: an42 (статус: Студент)
Ответ отправлен: 15.12.2008, 02:51
Как сказать этому эксперту "спасибо"?
Отправить SMS#thank 238643 на номер 1151 (Россия) | Еще номера >>
Отправить WebMoney:
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вы имеете возможность оценить этот выпуск рассылки. Нам очень важно Ваше мнение!
* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.
Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!
Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.
Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.