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

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


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

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

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

Выпуск № 1033
от 27.05.2008, 00:05

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 135948: Здравствуйте ! В регистре есть число, например, 22h. Нужно вывести его в десятичном формате на дисплей. Спасибо !...
Вопрос № 135963: Здравствуйте ! Ищу книгу: Справочная система по языку ассемблера IBM PC к книге В.И. Юров - Aссемблер учебный курс (Питер 1998). Три сслыки из инета "битые" - архив разворачитается нормально, но часть информации в нем потеряна (вмес...
Вопрос № 136029: Здраствуйте дорогие эксперты.Помогите пожалуйста мне в написании программы для решение системы.Я написал ее, но не полностю. Не могу вывести запрос ввода данных и непосредственно выдачу разельтата.Откориктируйте пожалуйста ее.Нужно решить такую арифм...
Вопрос № 136134: Здравствуйте! Помогите пожалуйста усовершенствовать функцию Del Например, если в слове HELLO удалить 3 букву будет HEL{пробел} O, а я хочу чтобы было HELO, без пробела, но не знаю, как это осуществить! ...
Вопрос № 136273: Здравствуйте ! Вопрос: есть два исполнимых файла (маленькие проги на ассемблере), необходимо сравнить их побайтно с помощью команды fc. Сделал это в командной строке, но окно закрылось. Подскажите, пожалуйста. Спасибо !...
Вопрос № 136300: Здравствуйте ! Вопрос: есть ассемблерный модуль. Директива PROC при указании модификатора языка побуждает транслятор генерировать код пролога в начале процедуры (при входе в процедуру) и код эпилога при выходе из процедуры (в каждом месте, г...
Вопрос № 136453: Здравствуйте, эксперты! У меня такая задача "Задать перемещение символа по экрану с образованием треугольника" из разряда "работа с дисплеями и прерываниями". Помогите, пожалуйста, потому что даже не знаю с какой стороны подс...
Вопрос № 136461: Добрый день! Срочно нужна программа на ассемблере, и если возможно, с комментариями. Текст задания: Дано описание X dw 50 dup (?) ; массив чисел со знаком Написать программу на языке Assembler, заменяющую нулевые элементы массива<br...
Вопрос № 136481: Здравствуйте! требуется написать программу: СОРТИРОВКА ЭЛЕМЕНТОВ ТАБЛИЦЫ ПУЗЫРЬКОВЫМ МЕТОДОМ. Как это реализовать на ассемблере?...
Вопрос № 136483: Уважаемые эксперты! Необходимо разобраться с кодом на асме, желательно прокомментировав построчно. Как я понял, данная программа выводит информацию об всех дисках системы. Буду очень благодарен если поможете разобраться<p><fieldset styl...
Вопрос № 136512: Здравствуйте,эксперты! Не могу справиться с заданием. Так как только начала заниматься ассемблером. Задача состоит в следующем,необходимо написать программу,которая переводит файл формата BMP в файл формата PCX. Прочитала про эти форматы,но не прилож...
Вопрос № 136701: Здравствуйте уважаемые эксперты! Такой вопрос. Я так понимаю в биосе хранится текущая дата. Как считать текущий день недели и вывести на экран в виде, например ПОНЕДЕЛЬНИК? Заран ее благодарен. ...
Вопрос № 136808: Добрый день! подскажите, пожалуйста, как запомнить содержимое текущего экрана в буфер? //заранее спасибо...
Вопрос № 136869: Здравствуйте! Подскажите, пожалуйста, как сделать здесь, чтобы программа выводила кол-во символов в строке. Спасибо! ...
Вопрос № 136870: Здравствуйте эксперты! в универе по ассемблеру задали следующие задание: проанализировать содержимое PSP от 00h до 16h и вывести содержимое на экран с пояснениями. Помогите пожалуйста с написанием. заранее спасибо....
Вопрос № 136921: Здавствуйте может быть вы сможете мне помоч. Срочно необходима программа на Ассемблере которая вводит 10 символов из стандартного потока ввода и выводит их (эхо) в стандартный поток вывода (каждый символ появляется на экране дважды... В ассемблер...
Вопрос № 136933: Здравствуйте! Не совсем уверен туда ли я написал, если не туда скажите куда можно обратиться. Вопрос в следуещем: на асмовской вставке(в паскале) нужно ввести два числа, причем чтоб учитывался только знак или число(никаких других символов), потом...
Вопрос № 136950: Ув. эксперты, помогите пожалуйста. Напишите программу, которая вводит символы с клавиатуры в массив длиной 80 символов. Программа должна перевернуть каждое из слов находящихся этого массива (и разделенных пробелами) в самом массиве (т. е. не использо...
Вопрос № 136951: Ув. эксперты, пожалуйста, напишите программу, вводящую матрицу размером 5*5. Программа должна посчитать сумму чисел каждой строки и столбца. Все числа матрицы должны быть двухзначными и десятичными (от 00 и до 99 ). Ввод чисел в матрицу должен бы...
Вопрос № 136959: Ув. эксперты, напишите, пожалуйста, программу, которая умножает "word" на "byte" с помощью операторов сдвига. Для вывода нужно использовать умножение 65535 на 255 в шестнадцатеричной и десятичной системе. Программа должна рассматр...
Вопрос № 137014: Здравствуйте, уважаемые эксперты. Помогите пожалуйста написать программу на Ассемблере для МК51 (у нас используется программа Keil uvision 3 версии) , складывающую и умножающую числа, представленные в системе счисления с основанием 5....
Вопрос № 137058: Здравствуйте. Не пойму в чем дело. Есть программа вывода дня недели. В нерезедентной версии работает на ура. А вот при резидентном запуске выводит на экран не дни недели а бяку. Взгляните пожалуста. Резидентный вариант в приложении....
Вопро с № 137185: Написать программу для перевода числа из девятиричной системы счисления в семиричную. Заранее спасибо!...
Вопрос № 137210: Здравствуйте, уважаемые эксперты! Помогите написать программу! У меня такая задача "Задать перемещение символа по экрану с образованием треугольника" из разряда "работа с дисплеями и прерываниями". Помогите, пожалуйста, потому...
Вопрос № 137285: Здравствуйте! Вопрос таков: как посчитать длительность нажатия клавиши? есть ли такое прерывание?...
Вопрос № 137440: А на ассемблере сушествуют списки как сложная структуда даных ? Если да то не могли б литературу подсказать ?...
Вопрос № 137447: Ув. эксперты, напиши пожалуйста программу, которая вычисляет сумму 3 положительных чисел с плавающей запятой. Все числа должны быть представлены в следующем виде: 0-ой байт – длина числа 1-ый байт – место плавающей запятой 2-ой байт – 0-в...
Вопрос № 137448: 1. Напиши программу, которая вычисляет произведение 2-ух положительных чисел с плавающей запятой. Все числа должны быть представлены в следующем виде: 0-ой байт – длина числа 1-ый байт – место плавающей запятой 2-ой байт – 0-вая цифра чис...
Вопрос № 137617: Добрый день Элсперты. Я недавно стал заниматься программированием и для это для этого приобрел книгу Калашникова с приложениями. У меня такой вопрос я написал первую программу prog01.asm и запустил ее следующей командой C:\MASM611\BIN\ml.exe prog0...
Вопрос № 137707: Здравствуйте! у меня такая проблема: необходимо выделить кусок памяти под массив m*n (m и n задаются) порядка 100 кб, м.б. больше. прерывание 48h int 21h такого количества памяти не даёт. Используется .model small. Подскажите, как можно таки выделить...

Вопрос № 135.948
Здравствуйте !
В регистре есть число, например, 22h. Нужно вывести его в десятичном формате на дисплей.
Спасибо !
Отправлен: 08.05.2008, 14:19
Вопрос задал: Ustin_7 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Код в приложении.
На экран выводится безнаковое десятичное число из регистра АХ.
Используются команды 186-го процессора pusha/popa.
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 08.05.2008, 14:36
Оценка за ответ: 5
Комментарий оценки:
Время ответа поражает воображение.
Спасибо !


Вопрос № 135.963
Здравствуйте !
Ищу книгу: Справочная система по языку ассемблера IBM PC к книге В.И. Юров - Aссемблер учебный курс (Питер 1998).
Три сслыки из инета "битые" - архив разворачитается нормально, но часть информации в нем потеряна (вместо нее черный экран). Подскажите кто знает ?!
Спасибо !
Отправлен: 08.05.2008, 16:13
Вопрос задал: Ustin_7 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

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

Юров Виктор Иванович :Справочная система.
Удачи!
---------
И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 08.05.2008, 18:13
Оценка за ответ: 5
Комментарий оценки:
Спасибо !


Вопрос № 136.029
Здраствуйте дорогие эксперты.Помогите пожалуйста мне в написании программы для решение системы.Я написал ее, но не полностю. Не могу вывести запрос ввода данных и непосредственно выдачу разельтата.Откориктируйте пожалуйста ее.Нужно решить такую арифметическию задачу:
a*a-b/a , если a > b
Y = -a , если a = b
a*b-1/b , если a < b

Заранее спасибо.
С уважением, Юрий!

Приложение:

Отправлен: 08.05.2008, 21:54
Вопрос задал: Макалов Юрий (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Airyashov
Здравствуйте, Макалов Юрий !
Помоему, то что Вы написали врядли рабочее, даже без ввода.

mov ax,a
mov dx,b
переменные занимают байт

mov al,a
imul al
cbw ;преобразование байта из регистра AL в слово AL -> AX
зачем преобразовывать результат и так в ax

equal:
mov ax, -a

less:
это вообще фантастика, сменить знак команда neg
и еще много такого, отладчиком поработайте проверьте результаты.

общий принцип ввода: ввести строку, 0Ah функция DOS, проверять введенные символы на соответствие цифре и знаку (для целых), выбирать цифры умножать на вес разряда.
вывод:проверить знак числа, перевести если требуется в положительное и последовательно делить на 10, сохраняя остаток в строку вывода (цифры переводить в символу) и целую часть, пока есть, в следующую итерацию.


Ответ отправил: Airyashov (статус: 5-ый класс)
Ответ отправлен: 09.05.2008, 23:45


Вопрос № 136.134
Здравствуйте! Помогите пожалуйста усовершенствовать функцию Del
Например, если в слове HELLO удалить 3 букву будет HEL{пробел} O, а я хочу чтобы было HELO, без пробела, но не знаю, как это осуществить!

Приложение:

Отправлен: 10.05.2008, 00:02
Вопрос задала: Mylogin (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Смотрите приложение. Выводится строка и удаляется третий с конца символ, со смещением остальных символов в начало строки.
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 15.05.2008, 11:32
Оценка за ответ: 5
Комментарий оценки:
Спасибо.
А я реализовала попроще:
Del:
push dx ;запоминаем текущее положение курсора
.Delete:
mov ah,02h ;сдвигаем курсор на 1 вправо
inc dl
int 10h
mov ah,08h ;читаем символ
int 10h
mov ah, 02h ;сдвигаем курсор на 1 влево
dec dl
int 10h
mov ah,0Eh ;печатаем символ
int 10h
inc dl ;сдвигаем курсор вправо
cmp dl,79 ;проверяем, дошли ли до конца строки
jbe .Delete
pop dx ;возвращаем курсор в исходное положение
dec dl ;сдвигаемся на 1 влево (для удобства)
mov ah,02h
int 10h
jmp main


Вопрос № 136.273
Здравствуйте !
Вопрос: есть два исполнимых файла (маленькие проги на ассемблере), необходимо сравнить их побайтно с помощью команды fc. Сделал это в командной строке, но окно закрылось. Подскажите, пожалуйста.
Спасибо !
Отправлен: 10.05.2008, 21:14
Вопрос задал: Ustin_7 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: LEXASOFT
Здравствуйте, Ustin_7!

Сделайте так Пуск->Выполнить. В окне введите cmd. И потом выполняйте в коммандной строке вашу программу.
Либо воспользуйтесь фаловым менеджером(FAR например).
---------

Ответ отправил: LEXASOFT (статус: 8-ой класс)
Ответ отправлен: 10.05.2008, 21:25
Оценка за ответ: 5
Комментарий оценки:
Проблема решена.
Спасибо !


Вопрос № 136.300
Здравствуйте !
Вопрос: есть ассемблерный модуль.
Директива PROC при указании модификатора языка побуждает транслятор генерировать код пролога в начале процедуры (при входе в процедуру) и код эпилога при выходе из процедуры (в каждом месте, где встречается мнемоника ret) - цитата.
Не хочет транслятор генерировать код пролога (программа рабочая, с кодом пролога и эпилога - все работает) ... Где ошибка ?!
Спасибо !

Приложение:

Отправлен: 11.05.2008, 01:51
Вопрос задал: Ustin_7 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Airyashov
Здравствуйте, Ustin_7!
Так как компилятор не указали, то трудно что-то сказать.
tasm вряд-ли что-то добавит, попробуйте masm`ом компилировать
Ответ отправил: Airyashov (статус: 5-ый класс)
Ответ отправлен: 12.05.2008, 10:39
Оценка за ответ: 5
Комментарий оценки:
Здравствуйте !
Точное замечание, компилятор - TASM4.
Спасибо !

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Ustin_7!
Укажите модификатор языка в модели.
model small,c
Удачи!
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 12.05.2008, 10:52
Оценка за ответ: 5
Комментарий оценки:
Спасибо !


Вопрос № 136.453
Здравствуйте, эксперты!
У меня такая задача "Задать перемещение символа по экрану с образованием треугольника" из разряда "работа с дисплеями и прерываниями". Помогите, пожалуйста, потому что даже не знаю с какой стороны подступиться к решению..
С уважением и заранее спасибо!
Отправлен: 12.05.2008, 12:41
Вопрос задал: AltaVista
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Anisov Andre Nikolaevich
Здравствуйте, !
для рисования используйте стрелки

Приложение:

---------
не пытайся спорить с дебилом, а то опустишься до его уровня и он задавит тебя своим " умом "

Ответ отправил: Anisov Andre Nikolaevich (статус: 3-ий класс)
Ответ отправлен: 13.05.2008, 03:53


Вопрос № 136.461
Добрый день! Срочно нужна программа на ассемблере, и если возможно, с комментариями.
Текст задания:
Дано описание X dw 50 dup (?) ; массив чисел со знаком

Написать программу на языке Assembler, заменяющую нулевые элементы массива

на их порядковые номера в массиве с использованием цепочечных команд.
Отправлен: 12.05.2008, 13:43
Вопрос задал: Александр Бойцов (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Boriss
Здравствуйте, Александр Бойцов!
По адресу http://rusfaq.ru/upload/650 можно скачать исходный код решения Вашей задачи (на всякий случай код и в приложении)
Получить нужно СОМ-файл
---
Если что не понятно будет, спросите в минифоруме

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: Мордовский госуниверситет, Саранск, Факультет Электронной Техники
WWW: Программирование на Паскале
----
Ответ отправлен: 12.05.2008, 16:05
Оценка за ответ: 5
Комментарий оценки:
Очень большой листинг, но красиво. Спасибо большое!


Вопрос № 136.481
Здравствуйте!
требуется написать программу: СОРТИРОВКА ЭЛЕМЕНТОВ ТАБЛИЦЫ ПУЗЫРЬКОВЫМ МЕТОДОМ. Как это реализовать на ассемблере?
Отправлен: 12.05.2008, 15:25
Вопрос задала: Донцова Анастасия Викторовна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Boriss
Здравствуйте, Донцова Анастасия Викторовна!
Исходный код программы - решения Вашей задачи можно скачать по адресу http://rusfaq.ru/upload/653
А также в приложении
Я не знаю Вашего уровня, а потому не писал подробных пояснений. Что не понятно будет, спросите в минифоруме этого вопроса
---
ЗЫ: получить нужно СОМ-файл- модель TINY

Приложение:

---------
Вывод - то место в тексте, где вы устали думать

Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: Мордовский госуниверситет, Саранск, Факультет Электронной Техники
WWW: Программирование на Паскале
----
Ответ отправлен: 12.05.2008, 17:18


Вопрос № 136.483
Уважаемые эксперты!
Необходимо разобраться с кодом на асме, желательно прокомментировав построчно. Как я понял, данная программа выводит информацию об всех дисках системы.

Буду очень благодарен если поможете разобраться

Код перемещён в приложение.
-----
∙ Отредактировал: skrech (Профессионал)
∙ Дата редактирования: 13.05.2008, 16:07

Приложение:

Отправлен: 12.05.2008, 15:29
Вопрос задал: Mirimas (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Mirimas!
Держите текст с комментариями в прикрепленном файле либо читайте в мини-форуме

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 13.05.2008, 15:58
Оценка за ответ: 5
Комментарий оценки:
Спасибо огромное, сразу видна рука профессионала!)


Вопрос № 136.512
Здравствуйте,эксперты! Не могу справиться с заданием. Так как только начала заниматься ассемблером. Задача состоит в следующем,необходимо написать программу,которая переводит файл формата BMP в файл формата PCX. Прочитала про эти форматы,но не приложу ума как это сделать на ассемблере. Помогите пожалуйста.

В приложение добавлено уточнение из вопроса № 136513.
-----
∙ Отредактировал: Зенченко Константин Николаевич (Профессионал)
∙ Дата редактирования: 12.05.2008, 18:45

Приложение:

Отправлен: 12.05.2008, 18:05
Вопрос задала: Эльвира Волшебница (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Airyashov
Здравствуйте, Эльвира Волшебница!
А вам ник olla-la не знаком?
http://forum.developing.ru/showthread.php?t=13607
Программа большая получается 350 строк.
Ответ отправил: Airyashov (статус: 5-ый класс)
Ответ отправлен: 12.05.2008, 22:00


Вопрос № 136.701
Здравствуйте уважаемые эксперты! Такой вопрос. Я так понимаю в биосе хранится текущая дата. Как считать текущий день недели и вывести на экран в виде, например ПОНЕДЕЛЬНИК? Заранее благодарен.
Отправлен: 13.05.2008, 20:21
Вопрос задал: Lammer (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 12)

Отвечает: Airyashov
Здравствуйте, Lammer!
Если Вас интересует именно BIOS, это 6 регистр CMOS

mov al,06h
out 70h,al
in al,71h

al-текущий день недели. 1-Воскресенье
Ответ отправил: Airyashov (статус: 5-ый класс)
Ответ отправлен: 13.05.2008, 22:35
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Буду знать.


Вопрос № 136.808
Добрый день! подскажите, пожалуйста, как запомнить содержимое текущего экрана в буфер?
//заранее спасибо
Отправлен: 14.05.2008, 15:42
Вопрос задал: Redline (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Redline!
В ДОС-е, в текстовом режиме 80х25.
Сегмент = 0B800h
Смещение = номер страницы (обычно 0) * 1000h
Длина 25*80*2 = 4000 байт (чуть меньше 4096=1000h)
(На символ по 2 байта: сам символ + атрибут)

Если число строк/столбцов отличается, то необходимо
подправить соответственно размер страницы.
Например, если будет 80х50, то
Смещение = номер страницы (обычно 0) * 2000h
Длина 50*80*2 = 8000 байт

---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 14.05.2008, 16:07
Оценка за ответ: 5


Вопрос № 136.869
Здравствуйте!
Подскажите, пожалуйста, как сделать здесь, чтобы программа выводила кол-во символов в строке.
Спасибо!

Приложение:

Отправлен: 14.05.2008, 23:26
Вопрос задала: Alena De Lon (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Airyashov
Здравствуйте, Alena De Lon!
добавте в соответствующее место в вашей программе

loop again

mov ah,0
mov al,bl
mov dh,10
div dh
add ax,3030h;число в символ
mov dh,ah
mov dl,al
mov ah,2
int 21h
mov dl,dh
int 21h

mov ah,10h
Ответ отправил: Airyashov (статус: 5-ый класс)
Ответ отправлен: 14.05.2008, 23:57
Оценка за ответ: 5
Комментарий оценки:
Спасибо!:-)


Вопрос № 136.870
Здравствуйте эксперты! в универе по ассемблеру задали следующие задание: проанализировать содержимое PSP от 00h до 16h и вывести содержимое на экран с пояснениями.
Помогите пожалуйста с написанием. заранее спасибо.
Отправлен: 14.05.2008, 23:27
Вопрос задал: Funtik (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Программа в приложении.
Вопросы задавайте в мини-форум.
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 20.05.2008, 14:31


Вопрос № 136.921
Здавствуйте может быть вы сможете мне помоч. Срочно необходима программа на Ассемблере которая вводит 10 символов из стандартного потока ввода и выводит их (эхо) в стандартный поток вывода (каждый символ появляется на экране дважды...
В ассемблере я полный чайник...может хоть сдесь мне смогут помочь
Спасибо заранее
Отправлен: 15.05.2008, 11:58
Вопрос задал: Sergey Kuzhel (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Sergey Kuzhel !
Держите свою программу под TASM
Выход по ESC
.model tiny
.code
.startup
main_loop:
mov ah,1
int 21h ;ждем нажатие с выводом введенного символа
cmp al,1bh ;проверим на ESC
je exit
mov dl,al
mov ah,2
int 21h ;выведем введенный символ еще раз
jmp main_loop
exit:
mov ax,4c00h
int 21h
end


---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 15.05.2008, 12:13
Оценка за ответ: 5
Комментарий оценки:
Супер, я даже не ожидал что ответят так быстро да еще и бесплатно...видно что работают настоящие професионалы


Вопрос № 136.933
Здравствуйте! Не совсем уверен туда ли я написал, если не туда скажите куда можно обратиться. Вопрос в следуещем:
на асмовской вставке(в паскале) нужно ввести два числа, причем чтоб учитывался только знак или число(никаких других символов), потом сложить эти два числа и вывести рез-тат на экран уже в виде цифр(а не символов), пользоваться нужно 03h функцией 21го прерывания(ввод без эхо). Если можете помогите пожалуйста.
Заранее благодарен.
Отправлен: 15.05.2008, 13:53
Вопрос задал: Coperfild (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

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

Смотрите приложение.
ps:функция 03Н прерывания 21Н(Дополнительный ввод)
Int 21/AH=03h
DOS 1+ - READ CHARACTER FROM STDAUX
AH = 03h
Return:AL = character read
Notes: Keyboard checked for ^C / ^Break, and INT 23 executed if detected. STDAUX is usually the first serial port

Переводя на русский, чтение символа из первого последовательного порта(СОМ1).
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал)
Украина, Киев
Тел.: +380958380164
Адрес: Украина г.Киев
----
Ответ отправлен: 15.05.2008, 15:38


Вопрос № 136.950
Ув. эксперты, помогите пожалуйста. Напишите программу, которая вводит символы с клавиатуры в массив длиной 80 символов. Программа должна перевернуть каждое из слов находящихся этого массива (и разделенных пробелами) в самом массиве (т. е. не использовать дополнительный массив)

Например: ввод: I am a student
вывод: I ma a tneduts
Отправлен: 15.05.2008, 14:53
Вопрос задала: Sbuber (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Sbuber!
Программа под TASM в приложении

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 15.05.2008, 15:38


Вопрос № 136.951
Ув. эксперты, пожалуйста, напишите программу, вводящую матрицу размером 5*5. Программа должна посчитать сумму чисел каждой строки и столбца. Все числа матрицы должны быть двухзначными и десятичными (от 00 и до 99 ).
Ввод чисел в матрицу должен быть построчным (строка за строкой). Вывод должен содержать эту же матрицу , но в конце каждой строки должна выводиться сумма всех чисел этой строки, а в конце каждого столбца – сумма всех чисел этого столбца.
Отправлен: 15.05.2008, 14:57
Вопрос задала: Sbuber (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Sbuber!
Программа под TASM в приложении

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 15.05.2008, 18:17


Вопрос № 136.959
Ув. эксперты, напишите, пожалуйста, программу, которая умножает "word" на "byte" с помощью операторов сдвига. Для вывода нужно использовать умножение 65535 на 255 в шестнадцатеричной и десятичной системе. Программа должна рассматривать числа как беззнаковые. Вывод должен выглядить так:

FFFF * FF =
65535 * 255 =
Отправлен: 15.05.2008, 16:05
Вопрос задала: Sbuber (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Sbuber!
Программа в приложении.

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 16.05.2008, 18:08


Вопрос № 137.014
Здравствуйте, уважаемые эксперты. Помогите пожалуйста написать программу на Ассемблере для МК51 (у нас используется программа Keil uvision 3 версии) , складывающую и умножающую числа, представленные в системе счисления с основанием 5.
Отправлен: 15.05.2008, 23:04
Вопрос задал: LordId (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, LordId!
В приложении необходимые подпрограммы.
Сделаны следующие допущения:
1)Числа в упакованном виде: в стандарте intel - младший лежит по меньшему адресу,
в байте - младший разряд в младших битах.
2)В работе используется первый банк регистров.
PS Не проверял, Keil-а у меня нет, но вроде должно работать...
По крайней мере, идея точно работоспособная :)
Удачи!

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 19.05.2008, 13:46
Оценка за ответ: 4


Вопрос № 137.058
Здравствуйте. Не пойму в чем дело. Есть программа вывода дня недели. В нерезедентной версии работает на ура. А вот при резидентном запуске выводит на экран не дни недели а бяку. Взгляните пожалуста. Резидентный вариант в приложении.

Приложение:

Отправлен: 16.05.2008, 12:26
Вопрос задал: Lammer (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Lammer!
Согласен со Стасом.
Исправленная версия в приложении.
Ошибки:
1)Некорректно организован вывод строки в макро Text_OUT (длины-то у всех разные!)
2)Основная ошибка - параметр при вызове макро в прерывании должен указывать
на адрес из кодового сегмента!
3)Нельзя в прерывании вызывать int 16h c ah=0, в буфере еще ничего нет
И из прерывания не выйдем - будем висеть! Убрать код из рассмотрения только так, как я сделал!
Не ошибка, так ...
1)т.к. дни недели считаются с 1, то проще отнять 1...
2)Почему-то код оказался без конца, я взял на себя смелость завершить...

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 16.05.2008, 15:20
Оценка за ответ: 5
Комментарий оценки:
Спасибо за подробные коментарии!!!


Вопрос № 137.185
Написать программу для перевода числа из девятиричной системы счисления в семиричную. Заранее спасибо!
Отправлен: 17.05.2008, 11:31
Вопрос задал: Быстров Владимир Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Arish
Здравствуйте, Быстров Владимир Александрович!
Вот процедура перевода любого числа в ASCII код с заданным основанием. Для компилятора TASM.

Приложение:

---------
Кто хочет - ищет способ, кто не хочет ищет причины!

Ответ отправил: Arish (статус: 1-ый класс)
Ответ отправлен: 17.05.2008, 17:12
Оценка за ответ: 5


Вопрос № 137.210
Здравствуйте, уважаемые эксперты! Помогите написать программу!
У меня такая задача "Задать перемещение символа по экрану с образованием треугольника" из разряда "работа с дисплеями и прерываниями". Помогите, пожалуйста, потому что даже не знаю с какой стороны подступиться к решению.. зачетная неделя не за горами? очень срочно нужно
С уважением и заранее спасибо!
Отправлен: 17.05.2008, 14:25
Вопрос задала: Летова Екатерина Владимировна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Trulala
Здравствуйте, Летова Екатерина Владимировна!

Текст программы в приложении.

Создание exe файла программы:
tasm.exe {имя asm файла}
tlink.exe {имя obj файла}

Приложение:

Ответ отправил: Trulala (статус: 2-ой класс)
Ответ отправлен: 20.05.2008, 14:30


Вопрос № 137.285
Здравствуйте!
Вопрос таков: как посчитать длительность нажатия клавиши? есть ли такое прерывание?
Отправлен: 18.05.2008, 00:13
Вопрос задал: Dmitri (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Airyashov
Перехватить 09h прерывание и в нём и считать время.
Ответ отправил: Airyashov (статус: 5-ый класс)
Ответ отправлен: 19.05.2008, 08:03


Вопрос № 137.440
А на ассемблере сушествуют списки как сложная структуда даных ? Если да то не могли б литературу подсказать ?
Отправлен: 19.05.2008, 00:34
Вопрос задал: Rodin k v (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Rodin k v !
В ассемблере есть такое понятие, как структура.
Структурой задается формат одной записи.
Чтобы задать список, надо обеспечить ссылкы предыдущей записи на следующую.
Обычно это делают с помощью одного или двух полей в структуре.
И, разумеется, всю взаимосвязь осуществляют "ручками", на то это и ассемблер...
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 19.05.2008, 09:56
Оценка за ответ: 4


Вопрос № 137.447
Ув. эксперты, напиши пожалуйста программу, которая вычисляет сумму 3 положительных чисел с плавающей запятой. Все числа должны быть представлены в следующем виде:
0-ой байт – длина числа
1-ый байт – место плавающей запятой
2-ой байт – 0-вая цифра числа
3-ий байт – 1-ая цифра числа
4-ый байт – 2-ая цифра числа


Например, число 39.751:
0-ой байт – 5
1-ый байт – 2
2-ой байт – 3
3-ий байт – 9
4-ый байт – 7
5-ый байт – 5
6-ой байт – 1
Этап первый: Программа вводит 3 числа с плавающей запятой (максимум 30 цифр для каждого числа) и создает для каждого числа подходящую запись, которая соответствует приведенной выше схеме (длина числа, место плавающей запятой …)
Нужно, также проверять вводимые числа:
А. Все вводимые символы являются только цифрами или точкой
Б. Точка может быть только одна

Этап второй: Программа складывает 3 этих числа и их сумму тоже представляет в соответствии с выше указанной схемой.

Этап третий: Программа выводит на экран все 3 числа и их сумму.

Продемонстрировать действие программы на трех различных примерах.
Отправлен: 19.05.2008, 05:00
Вопрос задала: Sbuber (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Sbuber!
Программа под TASM в приложении

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 20.05.2008, 10:58


Вопрос № 137.448
1. Напиши программу, которая вычисляет произведение 2-ух положительных чисел с плавающей запятой. Все числа должны быть представлены в следующем виде:
0-ой байт – длина числа
1-ый байт – место плавающей запятой
2-ой байт – 0-вая цифра числа
3-ий байт – 1-ая цифра числа
4-ый байт – 2-ая цифра числа


Например, число 39.751:
0-ой байт – 5
1-ый байт – 2
2-ой байт – 3
3-ий байт – 9
4-ый байт – 7
5-ый байт – 5
6-ой байт – 1
Этап первый: Программа вводит 2 числа с плавающей запятой (максимум 30 цифр для каждого числа) и создает для каждого числа подходящую запись, которая соответствует приведенной выше схеме (длина числа, место плавающей запятой …)
Нужно, также проверять вводимые числа:
А. Все вводимые символы являются только цифрами или точкой
Б. Точка может быть только одна

Этап второй: Программа умножает 2 этих числа и их произведение тоже представляет в соответствии с выше указанной схемой.

Этап третий: Программа выводит на экран оба числа и их произведение.

Как пример работы программы, нужно показать результат умножения 123456.78 * 123.45678 =
Отправлен: 19.05.2008, 05:03
Вопрос задала: Sbuber (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Sbuber!
Программа под Tasm в приложении

Приложение:

---------
Удачи!

Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 20.05.2008, 18:46


Вопрос № 137.617
Добрый день Элсперты. Я недавно стал заниматься программированием и для это для этого приобрел книгу Калашникова с приложениями. У меня такой вопрос я написал первую программу prog01.asm и запустил ее следующей командой C:\MASM611\BIN\ml.exe prog01.asm/AT, но после строчки Assembling: prog01.asm идет строка error A4910: cannot open file...
Fatal error A1000: prog01.asm/AT
Отправлен: 20.05.2008, 13:05
Вопрос задал: Захаров Сергей Владимирович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Захаров Сергей Владимирович!
Не хватает пробельчика между prog1.asm и /AT

---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 20.05.2008, 13:54


Вопрос № 137.707
Здравствуйте! у меня такая проблема: необходимо выделить кусок памяти под массив m*n (m и n задаются) порядка 100 кб, м.б. больше. прерывание 48h int 21h такого количества памяти не даёт. Используется .model small. Подскажите, как можно таки выделить этот кусок средствами операционной системы.... Заранее спасибо =)
Отправлен: 21.05.2008, 01:20
Вопрос задала: Манкина Анна Сергеевна (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Манкина Анна Сергеевна!
Когда программа запускается, ей выделяется вся доступная память!
В таких условиях запрос новой памяти, естественно, заканчивается крахом.
Поэтому, чтобы иметь возможность запрашивать память ф-ей 48h,
надо сначала "урезать" необходимую память до нужного размера ф-ей 4ah.
Только после этого можно будет пользоваться ф-ей 48h
---------
Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
Ответ отправлен: 21.05.2008, 09:36


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

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

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

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

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

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


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


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.92 pre 5.0 RC2 от 09.05.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное