Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Вставка в паскаль


Автор: Okonner 16.12.2006, 22:12
Всем желаю здоровья! Проблема состоит в том, что надо использовать буфер клавиатуры для фиксирования 
последней нажатой клавиши. Что мне делать дальше? По идее надо использовать очередь, заталкивание и выталкивание. Проверка на полноту или на пустоту отсутствует, т.к. сразу идёт очистка буфера. Помогите плиз, иначе мне будет пипец  
Код

Program Laba3;
Uses
    CRT;

    Procedure Zatalkivanie;
       begin
            asm
              cli
              sub ax, ax
              mov es, ax
              mov al, es:[41ah]
              mov es:[41ch], al
              sti
            end;

            clrscr;
            write('Buffer is empty!!!!');
            readkey;
            clrscr;
            writeln('Please, enter sequence and press "ENTER" ');

            asm
            @m1:
              mov ah, 0
              int 16h
              stosb
              mov ah, 2
              mov dl, al
              int 21h
              cmp al, 13
              jne  @m1
            end;
       end;

     Procedure Vivod;
       begin
            asm

            end;
       end;

Begin
  clrscr;
  Zatalkivanie;
End.

Автор: MAKCim 17.12.2006, 10:46
Okonner, 
а куда stosb пишет? (di ведь не определен)
Точнее сформулируй задание

Автор: Okonner 17.12.2006, 14:07
В задании надо использовать буфер клавиатуры для фиксирования последней нажатой клавиши. Сначала очистить буфер, потом уже работать с ним. Совсем запарился, уже не знаю как дальit быть. smile 

stosb запоминает символ по адресу es:[di]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)