Поиск:

Ответ в темуСоздание новой темы Создание опроса
> срочно: int21 считывание с клавы,вывод на экран, int21 простой вопрос, срочно! 
:(
    Опции темы
dimen
  Дата 25.4.2002, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.4.2002

Репутация: нет
Всего: нет



??? срочно нужно написать очень простенькую программульку.

с помощью прерывания 21 нужно сначала считать с клавиатуры до нажатия ENTER, а потом вывести считанное на экран

очень благодарен тому, кто ответит!
PM MAIL   Вверх
Chingachguk
Дата 25.4.2002, 03:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Посмотри тему ниже, в этом же разделе(АСМ), с "крайне информативным" названием "HELP ME !". Там есть мой код, убери из него все лишнее - и будет тебе твоя прога ...


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Melancholy
Дата 25.4.2002, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 1.4.2002

Репутация: нет
Всего: нет



прога должна обробатывать каждое нажатие клавиши, или можно использовать инт ввода строки?
PM MAIL ICQ   Вверх
dimen
  Дата 25.4.2002, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.4.2002

Репутация: нет
Всего: нет



фиг знает, но нужно использовать буфферезированный ввод
я толком в ASM'е не разбираюсь  :huh поэтому очень прошу
написать код сюда,

а то предложенное мне выше вырезать ненужное из готового кода натолкнёт
меня на вырезание нужных частей программ  ;)
PM MAIL   Вверх
Chingachguk
Дата 25.4.2002, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



Вырезал ...

Код

.286
BufSize equ 12
text segment byte public
assume cs:text,ds:text
org   100h
begin:
 mov  ah,0Ah
 mov  dx,offset buf
 int  21h
 mov  dx,offset NextStr
 call @@Message
 mov  si,offset Symbols
 mov  di,offset Result
 mov  cl,SymNum
 mov  ch,0
 test cx,cx
 jz   @@Exit
@@Conv:
 mov  al,[si]
 inc  si  
 mov  [di],al
 inc  di
 loop @@Conv
 mov  byte ptr [di],'$'
 mov  dx,offset Result
 call @@Message
@@Exit:
 mov  ax,4C00h
 int  21H ; BACK TO DOS
@@Message:
 pusha
 mov   ah,09h
 int   21h
 popa
 retn
NextStr db 13,10,'$'
buf db BufSize
SymNum  db ?
Symbols db BufSize dup(?)
Result  db BufSize * 2 + 1 dup(?)
Text Ends
end begin



--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
dimen
  Дата 25.4.2002, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 25.4.2002

Репутация: нет
Всего: нет



:0 не думал что получится так много

а по-короче не как?  :)
PM MAIL   Вверх
Chingachguk
Дата 25.4.2002, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 18



42 байта:

Код

BufSize equ 12
text segment byte public
assume cs:text,ds:text
org   100h
begin:
 mov  ah,0Ah
 mov  dx,offset buf
 int  21h
 mov  dx,offset NextStr
 call @@Message
 mov  bx,offset Symbols
 mov  dx,bx
 add  bl,SymNum
 adc  bh,0
 mov  byte ptr [bx],'$'
 call @@Message
 retn; BACK TO DOS
@@Message:
 mov   ah,09h
 int   21h
 retn
NextStr db 13,10,'$'
buf db BufSize
SymNum  db ?
Symbols db BufSize dup(?)
Text Ends
end begin


Или еще короче ? ;)


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
ERASER
Дата 31.5.2002, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 31.5.2002
Где: Бийск

Репутация: нет
Всего: нет



dat segment 'data' ; заголовок сегмента данных
text_string db 'Нажмите ESC. для выхода из проргаммы !!!'; Просто текстовая строка

           dat ends            ; Конец сегмента данных
           cod segment 'code ' ; заголовок сегмента кода
           assume cs:cod, ds:dat  ;
 main:
           mov ax, dat        ;
           mov ds, ax          ; инициализация сегментных регистров
           mov es, ax          ;
           mov ax, 0003h     ; очистка экрана
           int 10h             ;

;mov dx,offset text_string
;mov ah,9
;int 21h
terminal:
           mov ah, 01h     ; считывание кода кода нажатой клавиши и хранение её в регистре AH
           int 21h     ; Вызов прерывания
           cmp al, 27          ; сравнимаем с числом 27 (код клав. ESC)
           je EXIT_PROGRAM    ; если  равно то переход на метку EXIT_PROGRAM
; ****Кусок программы отвечающий за цветовую гамму символов вводимых с клавиатуры ************************
           mov ah,09h    ; вывести символ с заданным атрибутом(цветом) на экран
           mov bh,0           ; BH -> номер страницы
           mov al,ah          ; помещаем в регистр AL код нажатой клавиши(для того чтобы происходил постоянный вывод нового символа на экран)
           inc bl      ; Увеличиваем содержимое регистра BL(для того чтобы происхоило обновление цвета следующего символа)
           mov cx,2 ; Количество символов
           int 10h             ; Вызов прерывания
;*************************************************************
           jmp terminal ; вывод производить до тех пор пока не нажат ESC. (пререход на terminal)
EXIT_PROGRAM:
           mov ax, 4c00h     ; выход из программы
           int 21h             ; Вызо прерывания
           cod ends            ; Конец сегмента кода
           end main            ; Главный конец
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.