Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Прерывания, мля, прерывания

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Прерывания, мля, прерывания
Имя
Сообщение << Старые топики   Новые топики >>
Прерывания, мля, прерывания - 2005-07-04 18:53:27   
KillerXX7

Сообщений: 8
Оценки: 0
Присоединился: 2005-04-09 23:29:44
Граждане ассемлерщики! Помогите разобраться.
Как используя прерывание int 16h собрать всю нараную строку в одну переменную?[sm=9.gif]
Предположим ввожу строку (при этом используя BackSpace по назначению) а потом по нажатию интера, вся эта строка собиралась в одну переменную в нормальном виде (без сканкода того-же бэкспэйса)

Реализовать нужно на FASM !!!
Post #: 1
Прерывания, мля, прерывания - 2005-07-05 04:20:42   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
примерно так (я не проверял)
readln:
mov si, offset dest ; адрес буфера
mov cx, dest_len ; длина его
readln_loop:
mov ah, 0x20
int 16h
cmp 08h, al ; breakspace
je bs_readed
cmp 0dh, al ; перевод строки
je readln_exit
; что делать с остальными непечатными символами?
stosb ; записать в буфер
jnz readln_loop
; здесь можно обработать переполнение буфера
readln_exit:
; а здесь может быть стоит '\0' добавить в конец буфера
ret
bs_readed:
dec cx
dec si
jmp readln_loop
Post #: 2
Прерывания, мля, прерывания - 2005-07-05 19:42:46   
Ct757

Сообщений: 135
Оценки: 0
Присоединился: 2005-03-29 19:39:30
quote:

—————-<BR>Цитата: Дата:05.07.2005 4:20:42, Автор:rgo ::
примерно так (я не проверял)<BR>…<BR> mov ah, 0x20<BR>…


Сразу видно сишник… [sm=9.gif]
Post #: 3
Прерывания, мля, прерывания - 2005-07-06 02:34:34   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

—————-<BR>Цитата: Дата:05.07.2005 19:42:46, Автор:Ct757 ::
quote:

—————-<BR><BR>Цитата: Дата:05.07.2005 4:20:42, Автор:rgo ::
примерно так (я не проверял)<BR><BR>…<BR><BR> mov ah, 0x20<BR><BR>…
<BR><BR><BR>Сразу видно сишник… [sm=9.gif]
—————-


Да дело не столько в том что C-шник – я к AT&T синтаксису привык последнее время. В AT&T эта строчка выглядит так:
movb $0x20, %ah
Так что если там ещё где цифирки не так записаны, или порядок аргументов не тот, то извиняйте.
Post #: 4
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Прерывания, мля, прерывания







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.