Forum Pplware

Versão Completa: Ajuda URGENTE Assembly
Está de momento a ver uma versão reduzida do nosso conteúdo. Ver versão completa com o formato adequado.
Páginas: 1 2
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
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?)
Boas Corvus,

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

cumprimentos
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
O que aconselha a fazer?

obrigado
Apenas que verifiques o programa com cuidado antes de o executares.
Boas.
ja revi o código e n vejo onde esta o erro.
algum pode ajudar a compilar o programa?

Boas festas para todos
HELP !!!!!!!!!!
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
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!!
Páginas: 1 2
URL's de Referência