Для начала уточняйте режим: текстовый или графический.
Сдвигом битов скорее всего это сделать не получится, скорее всего здесь будет уместно изменять стартовый адрес выводимой области. Параллельно возникает вопрос - выводимая информация полностью укладывается по ширине экрана, больше или меньше?
буется вывести строку на экран так чтоб она ещё и двигалась как бегущая строка.
Думаю у тебя это не графический режим.
Могу предложить работу с видеостраницами.
Сначала на текщую страницу выводишь строку, на другую. страницу выводишь эту же строку, но со смещением в нужную сторону на нужное число символов. Переключаешь страницы. На невидимой странице опять смещаешь строку. И опять переключаешь. И так пока не надоест.
Адреса и смещения видеостраниц и функции прерывания для их переключения думаю можно найти в справочнике.
Если что будет непонятно - спрашивай.
_________________ I L.A.W. you, baby!
For a GNU dawn! For freedom!
ALL Люди, кто-нибудь знает, где можно найти список мнемоник ассемблера? Заодно можно и списоск колючевых слов TASM'а.
Список нужен ввиде текста. Для каждого ключевого слова буквально пару строк описания.
Очень желательно что-бы весь список был в одном документе. Что-бы можно было скопировать целиком...
Не могу сам найти. Добавлено спустя 45 секунд ALL Люди, кто-нибудь знает, где можно найти список мнемоник ассемблера? Заодно можно и списоск колючевых слов TASM'а.
Список нужен ввиде текста. Для каждого ключевого слова буквально пару строк описания.
Очень желательно что-бы весь список был в одном документе. Что-бы можно было скопировать целиком...
Не могу сам найти.
_________________ I L.A.W. you, baby!
For a GNU dawn! For freedom!
L.A.W. Если полный список, включая недавно включенные, то это на сайт Intel'а.
А если нет, то загляните сюда или сюда (тут еще и по TASM'у).
Можно еще понаходить .
maco Первая ссылка сразу не то... Нужен более компактный список...
Во втором случае тоже не то...
Нужен просто список ключевых слов. С описанием в одну две строчки.
Справочник, а не учебник...
Что-то подобное есть у Финогенова. Но я не нашел электронную версию книги...
_________________ I L.A.W. you, baby!
For a GNU dawn! For freedom!
По второй ссылке как раз очень компактный список мнемоник. Список ключей TASM'а менее компактен (4 страницы), но резать легче, чем писать . Я дал просто оглавление, а искать по нему можете сами .
Kserion Вообще-то компьютер - это объект, состоящий из таких элементов, как процессорное ядро, памяти и устройств ввода/вывода. А ассемблер - язык низкого уровня, инструкции (не путать с директивами) которого однозначным образом преобразуются в машинный код.
Здесь кратко изложено, есть ссылки дальше.
Member
Статус: Не в сети Регистрация: 08.05.2006 Откуда: СПБ
вопрос про буфер клавиатуры
записать туда несколько символов и считать последний
в гугле нашел что адрес хвоста находится по адрессу 0040:001Сh и что там находится адрес на следующее место после последнего символа
но если пишу так
MOV AX, 0h
mov es, ax
mov BH, es:[0x43c]-2
mov AH, BH
mov ascii, AH
то на последний символ не попадаю
как правильно написать?
_________________ Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
* Линус Торвальдс
Russian Это называется не буфер клавиатуры (бкфер клавиатуры - это немножко другое), а кольцевой буфер.т В нем хранятся аски и скан коды нажатых клавиш.
По адресу 0040:001С находится хвостовой указатель. Он и указывает адерс первой свободной ячейки кольцевого буфера.
Во-первых тебе нужно делать проверку, не равен ли головной указатель (0040:001A) хвостовому. Если равен - буфер пуст.
Во-вторых - приведи всю программу. Так не ясно что у тебя происходит.
_________________ I L.A.W. you, baby!
For a GNU dawn! For freedom!
Russian 1. es:[0x43с]-2 - тройка откуда взялась ?
2.
Цитата:
32 байта буфера начинаются с адреса 0040:001E. Указатели на голову и хвост расположены по адресам 0040:001A и 0040:001C, соответственно. Хотя под указатели отведено 2 байта, используется только младший байт. Значения указателей меняются от 30 до 60
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Код:
INT 16 - KEYBOARD - GET KEYSTROKE AH = 00h Return: AH = BIOS scan code AL = ASCII character Notes: on extended keyboards, this function discards any extended keystrokes, returning only when a non-extended keystroke is available the BIOS scan code is usually, but not always, the same as the hardware scan code processed by INT 09. It is the same for ASCII keystrokes and most unshifted special keys (F-keys, arrow keys, etc.), but differs for shifted special keys
Код:
INT 16 - KEYBOARD - STORE KEYSTROKE IN KEYBOARD BUFFER AH = 05h CH = BIOS scan code CL = ASCII character Return: AL = status 00h if successful 01h if keyboard buffer full AH destroyed by many BIOSes
Russian В приведенном коде вы читаете байт по адресу ES:[041C]-2. ES=0, т.е. адрес определяется только содержимым ячейки 0000:041C, которая может содержать значение от 30 до 60 (в dec) или от 1E до 3C (в hex). В результате вы читаете данные из ячейки в диапазоне 0000:001E-0000:003C (с учетом того, что буфер не пуст) . Зона векторов прерываний интересна, конечно, но только один раз .
В ES занесите 0040 и пробуйте .
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения