Вопрос № 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...
Извините, если забрал у Вас свободное время...
Удачи! Всего хорошего! С уважением, Виталий
Отвечает: 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 и т.д.)
Заранее благодарен Стас.
Отвечает: Зенченко Константин Николаевич
Здравствуйте, 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? Заранее спасибо!
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Васильев Сергей!
Число 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. Заранее огромное спасибо.