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

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


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

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

Выпуск № 783
от 19.06.2007, 06:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 382, Экспертов: 36
В номере:Вопросов: 5, Ответов: 8


Вопрос № 91178: Добрый день!!! Пожалуйста, если можете, помогите мне... просто я никак не могу понять((( Вот эти строки: xor ah,ah int 16h ;Ждем клавишу... Насколько я понял, после "xor ah,ah" у ah должен быть 0. Но тогда к...
Вопрос № 91225: Здравствуйте уважаемые эксперты. У меня проблема, надо решить задачу до 14.06.07 (т.е. до завтра), ато к экзамену не допустят. Вот ее текст: Ввести с клавиатуры число от 1 до 1999 и вывести его в форме римской цифры (т.е. если вводим 5, на экран ...
Вопрос № 91236: Здравтсвуйте уважаемые эксперты. Не получается придумать алгоритм перекодировки числа с плавающей точкой в BCD. Есть число представленое 4-мя байтами 0х?? 0х?? 0х?? 0х?? оно представляет число с жестким форматом 3 знака запятая 1 десятичный. (нап...
Вопрос № 91293: Здраствуйте. Помогите пожалуста сделать следующее: Задается кол-во элементов цепочки (больше 2). Но цепочка должна быть такая 1,1,2,3,5,8 и т.д.(т.е. каждый следующий член равен сумме двух предыдущих, а два первых эл-та всегда единицы). И нужно подсч...
Вопрос № 91301: Помогите найти информацию по темке: Работа с портами ввода-вывода звуковой карты (в ассемблере) ...

Вопрос № 91.178
Добрый день!!! Пожалуйста, если можете, помогите мне... просто я никак не могу понять(((
Вот эти строки:

xor ah,ah
int 16h ;Ждем клавишу...

Насколько я понял, после "xor ah,ah" у ah должен быть 0.
Но тогда как int 16h будет ждать клавишу... ведь кажется, в ah должно быть загружено число 10h...

Извините, если забрал у Вас свободное время...
Удачи! Всего хорошего! С уважением, Виталий

Приложение:

Отправлен: 13.06.2007, 06:16
Вопрос задал: Покритюк Виталий Леонидович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Sov
Здравствуйте, Покритюк Виталий Леонидович!
Вы правы, командой xor ah,ah обнуляется регистр ah
функция 0h 16-го прерывания читает(ожидает) следующую нажатую клавишу
на выходе в al ASCII символ(если al=0, то ah содержит расширеный код ASCII)
на выходе в ah сканкод или расширенный ASCII
Ответ отправил: Sov (статус: 4-ый класс)
Ответ отправлен: 13.06.2007, 09:03
Оценка за ответ: 5
Комментарий оценки:
Спасибо за ответ)

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

Описание функций БИОС ввода с клавиатуры:
INT 16h, АН = 0, 10h, 20h — Чтение символа с ожиданием
Ввод:
АН = 00h (83/84-key), 10h (101/102-key), 20h (122-key)
Вывод:
AL = ASCII-код символа, 0 или префикс скан-кода
АН = скан-код нажатой клавиши или расширенный ASCII-код
Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 13.06.2007, 10:12
Оценка за ответ: 5
Комментарий оценки:
Спасибо)

Отвечает: An42
Здравствуйте, Покритюк Виталий Леонидович!
Таблица:
0 xor 0 = 0
1 xor 0 = 1
1 xor 1 = 0
0 xor 1 = 1
Если два бита одинаковы то результат 0, если два бита разные то результат 1
Строка xor ah,ah результат в ah = 0 (все биты равны нулю 00000000b)
xor приемник, источник ;приемник = источнику после операции xor в приемнике ноль.
Поэтому строки
xor ah,ah
int 16h
нужно в буквальном смысле заменить
mov ah,0
int 16h

Удачи
Ответ отправил: An42 (статус: 4-ый класс)
Ответ отправлен: 13.06.2007, 12:57
Оценка за ответ: 5
Комментарий оценки:
Спасибо =)


Вопрос № 91.225
Здравствуйте уважаемые эксперты. У меня проблема, надо решить задачу до 14.06.07 (т.е. до завтра), ато к экзамену не допустят. Вот ее текст:
Ввести с клавиатуры число от 1 до 1999 и вывести его в форме римской цифры (т.е. если вводим 5, на экран должно выводиться V, если 9, то IX и т.д.)
Заранее благодарен Стас.
Отправлен: 13.06.2007, 12:51
Вопрос задал: Tochkaopori (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Смотрите приложение.
Программа на число 1999 выдает MCMXCIX, но если верить правилам записи римских цифр, то справедлива и такая запись MIM.
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 13.06.2007, 20:17
Оценка за ответ: 4


Вопрос № 91.236
Здравтсвуйте уважаемые эксперты.
Не получается придумать алгоритм перекодировки числа с плавающей точкой в BCD. Есть число представленое 4-мя байтами 0х?? 0х?? 0х?? 0х?? оно представляет число с жестким форматом 3 знака запятая 1 десятичный. (например 212,7) мне надо убрав запятую запихнуть это число в 2 байта (0х21 0х27) Как это сделать на tasm? Заранее спасибо!
Отправлен: 13.06.2007, 14:00
Вопрос задал: Васильев Сергей (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Васильев Сергей!
Число float сначала умножаем на 10, чтобы учесть один знак после запятой.
Затем сохраняем как BCD в 10-байтовом поле. Первые два байта и будут требуемые
Сохраняется в стандарте Intel - младший байт первым.
Удачи!

Приложение:

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

Ответ отправил: Лысков Игорь Витальевич (статус: Практикант)
Ответ отправлен: 13.06.2007, 21:29
Оценка за ответ: 5
Комментарий оценки:
Честно говоря не удволетворен ответом но по своей вине. Плохо задал вопрос. Я хотел понять алгоритм преобразования не используя команд с плавающей точкой.

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

Попробуйте так
lodsw
shl al,4
shr ax,4

в итоге младшие полвины 2-х байтов будут в одном байте.
Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 14.06.2007, 11:00
Оценка за ответ: 1
Комментарий оценки:
Вопрос был о перекодировке, а не распределении по байтам. От того что младшие половины будут в одном байте float не превратится в равноценный BCD


Вопрос № 91.293
Здраствуйте. Помогите пожалуста сделать следующее: Задается кол-во элементов цепочки (больше 2). Но цепочка должна быть такая 1,1,2,3,5,8 и т.д.(т.е. каждый следующий член равен сумме двух предыдущих, а два первых эл-та всегда единицы). И нужно подсчитать сумму всех эл-ов данного ряда.
Я понимаю что задачка ерундовая, но я в этом 0. Заранее огромное спасибо.
Отправлен: 13.06.2007, 20:19
Вопрос задал: Семин Борис Иванович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Смотрите приложение!
Проверок в программе нет никаких.
Удачи!

Приложение:

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

Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 13.06.2007, 21:01


Вопрос № 91.301
Помогите найти информацию по темке:
Работа с портами ввода-вывода звуковой карты (в ассемблере)
Отправлен: 13.06.2007, 21:11
Вопрос задала: Jungle_jungle (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Зубков:Ассемблер глава 5.
Удачи!
---------
И только наступив на грабли мы преобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Практикант)
Ответ отправлен: 13.06.2007, 21: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

В избранное