Forum Pplware
Ajuda URGENTE Assembly - Versão de Impressão

+- Forum Pplware (http://forum.pplware.com)
+-- Fórum: Mais Tech (/forumdisplay.php?fid=11)
+--- Fórum: Programação e Web (/forumdisplay.php?fid=16)
+--- Tópico: Ajuda URGENTE Assembly (/showthread.php?tid=8068)

Páginas: 1 2


Ajuda URGENTE Assembly - a3deluxe - 22-12-2010 17:41

Boas,

Queria desactivar 6 teclas(P,R,4,ESC,DEL,4) do teclado em ms-dos
criando um executável em assembly.
Da-me um erro(linha que esta a negrito) a compilar com o masm32 o código é este:

KB_DATA EQU 60H
KB_CTRL EQU 61H
EOI EQU 20H
INT_CTRL_PORT EQU 20H
R_KEY EQU 83 ; codigo para a tecla "r"

;
CODE SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CODE
ORG 44
ENVIRON DW ?
ORG 100H
BEGIN: JMP INITIALIZE

OLD_INT_9H LABEL DWORD
OLD_KBD_INT DW 2 DUP (?)

;
CTRLALT PROC NEAR
STI
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH DS
PUSH ES
IN AL,KB_DATA
CMP AL,R_KEY
JNE CA4
MOV AH,2
INT 16H
JNE EXIT
MOV AH,2
INT 16H
JE EXIT

;
CALL KB_RESET
;
MOV AH,25H
MOV AL,9
MOV DX,OLD_KBD_INT[2]
MOV DS,DX
MOV DX,OLD_KBD_INT
INT 21H
JMP DONE
;
EXIT: POP ES
POP DS
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
JMP OLD_INT_9H
;
CA5: CALL KB_RESET
DONE: POP ES
POP DS
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
IRET ;
CTRLALT ENDP
;
KB_RESET PROC NEAR
IN AL,KB_CTRL
MOV AH,AL
OR AL,80H
OUT KB_CTRL,AL
MOV AL,AH
OUT KB_CTRL,AL
CLI
MOV AL,EOI
OUT INT_CTRL_PORT,AL
STI
RET
KB_RESET ENDP


INITIALIZE PROC NEAR


MOV AH,35H
MOV AL,9
INT 21H
MOV OLD_KBD_INT,BX
MOV OLD_KBD_INT[2],ES
MOV AH,25H
MOV AL,9
LEA DX,CTRLALT
INT 21H
;
MOV AX,ENVIRON
MOV ES,AX
MOV AH,73
INT 21H
;
MOV DX,OFFSET INITIALIZE
INT 27H
INITIALIZE ENDP
;
CODE ENDS
END BEGIN


Cumprimentos

obrigado


RE: Ajuda URGENTE Assembly - Corvus - 23-12-2010 13:06

Vendo assim de repente, existe um label CA5 mas não um CA4, logo é natural o erro que estás a ter (enganaste-te no nome de um deles?)


RE: Ajuda URGENTE Assembly - a3deluxe - 23-12-2010 16:34

Boas Corvus,

então alterando para CA5, deve rolar logo ?
vou experimentar..

cumprimentos


RE: Ajuda URGENTE Assembly - Corvus - 23-12-2010 20:57

Nota que não verifiquei minimamente a correção do programa, apenas notei que tens um salto condicional para um label que não existe e um label com o nome mt parecido Wink

Mas (falo por experiência própria) ter programas em asm que não funcionam exactamente como pretendemos é sempre uma experiência "interessante" Tongue


RE: Ajuda URGENTE Assembly - a3deluxe - 24-12-2010 01:41

O que aconselha a fazer?

obrigado


RE: Ajuda URGENTE Assembly - Corvus - 24-12-2010 03:13

Apenas que verifiques o programa com cuidado antes de o executares.


RE: Ajuda URGENTE Assembly - a3deluxe - 27-12-2010 14:41

Boas.
ja revi o código e n vejo onde esta o erro.
algum pode ajudar a compilar o programa?

Boas festas para todos


RE: Ajuda URGENTE Assembly - a3deluxe - 03-01-2011 12:32

HELP !!!!!!!!!!


RE: Ajuda URGENTE Assembly - Corvus - 03-01-2011 17:56

Afinal, qual é o problema ao certo? E, já agora, foste tu que fizeste o programa e tens conhecimentos minimos de asm? É pq se não tens, não vai ser fácil qq ajuda


RE: Ajuda URGENTE Assembly - a3deluxe - 03-01-2011 23:49

Boas, tenho poucos conhecimentos,sei o básico.
ao compilar o programa com qualquer compilador,dá-me um erro na linha onde eu tinha assinalado a negrito.o programa foi um colega que me desenvolveu,mas nunca mais falei com ele para me ajudar.
precisava mesmo do programa a trabalhar.

cumprimentos a todos

BOM ANO!!