Прерывания, мля, прерывания
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Прерывания, мля, прерывания - 2005-07-04 18:53:27
|
|
|
KillerXX7
Сообщений: 8
Оценки: 0
Присоединился: 2005-04-09 23:29:44
|
Граждане ассемлерщики! Помогите разобраться. Как используя прерывание int 16h собрать всю нараную строку в одну переменную?[sm=9.gif] Предположим ввожу строку (при этом используя BackSpace по назначению) а потом по нажатию интера, вся эта строка собиралась в одну переменную в нормальном виде (без сканкода того-же бэкспэйса)
Реализовать нужно на FASM !!!
|
|
|
Прерывания, мля, прерывания - 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
|
|
|
Прерывания, мля, прерывания - 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]
|
|
|
Прерывания, мля, прерывания - 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 Так что если там ещё где цифирки не так записаны, или порядок аргументов не тот, то извиняйте.
|
|
|
|
|