Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Assembler
Показать сообщение отдельно

Аватара для Andreich

Старожил


Сообщения: 167
Благодарности: 0

Профиль | Отправить PM | Цитировать


вот полный код проги(com) выводяшей сканкод клавиши
Код: Выделить весь код
 
.286
cseg segment
assume cs:cseg, ds:cseg, ss:cseg, es:cseg
org 100h
begin:

mov ah,10h
int 16h

cmp al,27

je _begin_quit
mov dh,ah
mov dl,al

MOV ax,0
mov al,dh
mov bl,10h
div bl
mov n1,al
mov n2,ah

MOV ax,0
mov al,dl
mov bl,10h
div bl
mov n3,al
mov n4,ah

call _n1
call _n2
call _n3
call _n4

add n1,30h
add n2,30h
add n3,30h
add n4,30h

mov ah,9
mov dx,offset n1
int 21h
JMP BEGIN

_begin_quit:

int 20h
;---procedures---

_n1proc near

cmp n1,9
jbe q1
add n1,7
q1:

ret
_n1endp

_n2proc near

cmp n2,9
jbe q2
add n2,7
q2:
ret
_n2endp

_n3proc near

cmp n3,9
jbe q3
add n3,7
q3:
ret
_n3endp

_n4proc near
cmp n4,9
jbe q4
add n4,7
q4:
ret
_n4endp

;---data---
n1 db 0
n2 db 0
n3 db 0
n4 db 0
k db '  $'
cseg ends
end begin
код цифр на 30h больше их значенния
код букв(A..F) больше их значения на 37h


[s]Исправлено: Andreich, 22:43 21-11-2003[/s]

-------
Нет повести печальнее на свете чем повесть о заклинившем реcете...


Отправлено: 04:06, 21-11-2003 | #26

Название темы: Assembler