2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Код для посылки командного байта (OUT 60h, AL) [asm]
Сообщение23.04.2009, 10:06 
Здравствуйте! Хотел узнать следующее: при написании программы в ассемблере для контролера клавиатуры, как правильно написать код для посылки командного байта (OUT 60h, AL), после чего идет посылка байта параметра?

 
 
 
 
Сообщение23.04.2009, 12:48 
Аватара пользователя
На запись 64h - регистр команд, 60h - регистр данных.
Код:
; Ждем, когда можно слать команды в контроллер

  xor cx, cx
wait1:
  in al,64h   
  and al,10b
  loopnz wait1

; Запись команды

  mov al, [код команды]
  out 64h, al

; Ждем ...

  xor cx,cx
wait2:
  in al,64h   
  and al,10b
  loopnz wait2

; Запись параметра

  mov al, [параметр]
  out 60h, al

; Тут можно проверить результат


В начале еще можно подождать, пока очистится выходной буфер.
Код:
  xor cx, cx
wait:
  in al, 64h
  and al, 1b
  loopnz wait


Вот, например: http://www.sysbin.com/files/lowlevel/enable_a20.htm и http://heim.ifi.uio.no/~stanisls/helppc/8042.html

 
 
 
 Re: Ассемблер
Сообщение11.05.2009, 20:21 
спасибо большое

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group