Вопрос № 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Вопрос № 154.081
Доброго вермени суток! Начал изучать ассемблер по книге Калашникова "Ассемблер Это просто! Учимся программировать". Столкнулся с такой проблемой - практически одна из первых программ у меня не работает. Если у Вас есть эта книга, то программа содержится в разделе 3.4>листинг 3.2 (если нет привожу текст ниже). Программа должна выводить символ ASCII путем прямого отображения в видеобуфер. В моем случае все корректно компилируется и работает, но при запуске программа только ожидает
нажатия клавиши и все. У меня Celeron 1.7, если это важно, в книге ведь все время приводят пример старых процессоров. Заранее спасибо!
Ответ отправил: Airyashov (статус: Студент)
Ответ отправлен: 12.12.2008, 13:36
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 238405 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 1 Комментарий оценки: И что нам это дает? Почему мы вставили эти строки?
Отвечает: an42
Здравствуйте, Корнатовский Лев Игоревич! Необходимо перейти в текстовый режим. В приложении добавлена 4-я и 5-я строка, это переход в текстовый режим. Удачи
Приложение:
Ответ отправил: an42 (статус: Студент)
Ответ отправлен: 15.12.2008, 01:28
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 238640 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 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 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.