SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: caith_sit en Lunes 30 de Abril de 2007, 23:55
-
hola a todos!!
pues tengo que hacer que al oprimir impPnt en lugar de que se guarde la pantalla se ejecute un programa (con la interrupcion 5h), estoy probando que solo imprima un caractér (al menos asi seria mas simple no???) pero pues ni eso hace, en realidad no hace nada, alguien me puede decir en donde anda mal mi programa??? porfavoooooorr!!!!
DATASEG SEGMENT PARA 'DATA'
DIRECC LABEL WORD ;DWORD
HOFFSET DW 0
LOFFSET DW 0
DATASEG ENDS
STACKSEG SEGMENT PARA STACK 'STACK'
STACKSEG ENDS
CODESEG SEGMENT PARA 'CODE'
PRINCIPAL PROC FAR
ASSUME CS:CODESEG, DS:DATASEG, SS:STACKSEG
PUSH DS
XOR AX, AX
PUSH AX
MOV AX, DATASEG
MOV DS, AX
MOV AH, 35h
MOV AL, 05h
INT 21h
MOV WORD PTR HOFFSET, BX
MOV WORD PTR LOFFSET, ES
MOV AX, DATASEG
MOV DS, AX
LEA DX, NEWINT5
MOV AH, 25h
MOV AL, 05h
INT 21h
JMP FINE
;*********************************************************
NEWINT5 PROC NEAR
STI
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV DL, 41h
MOV AH, 02
INT 21h
POP AX
POP BX
POP CX
POP DX
IRET
NEWINT5 ENDP
;NEWINT5 DUDP
;*********************************************************
FINE:MOV AH, 01
INT 21h
MOV DX, WORD PTR DIRECC
MOV AH, 25h
MOV AL, 05h
INT 21h
RET
PRINCIPAL ENDP
CODESEG ENDS
END PRINCIPAL
-
:P Parece ke nos dejaron algo parecido >_< d la escuela ... :blink: Si encuentras como :lol: espero ayudes jejeje
-
Vos tampoco estas estableciendo bien la interrupcion, lee las recomendaciones que le di a Minako_MaY en cuanto a depurar el codigo aca (http://foros.solocodigo.com/index.php?showtopic=28371) (la parte en negrita no te incumbe).
En cuanto a tu codigo:
MOV AX, DATASEG ;no funciona
mov ax, seg newint5 ;funciona
MOV DS, AX
LEA DX, NEWINT5
MOV AH, 25h
MOV AL, 05h
INT 21h
int 05h ;asi si depuras el codigo al darle a t veras el codigo de la funcion NEWINT5
PD. Con esas dos lineas conseguis que imprima la A.