|
Mostrar Temas
|
Páginas: [1]
|
1
|
Programación / ASM / crear interrupción por hardware
|
en: 28 Mayo 2019, 06:23 am
|
Hola a todos, tengo una super pregunta, ¿Como se crea una interrupción por hardware? Tengo un programa que hace un conteo del 0 al 59 y cuando llega a 60 pasa denuevo al 0 y reinicia el ciclo, hasta ahi voy bien, pero no se como hacer que al presionar la tecla "1" se active un retraso y que al presionar "2" se active otro retraso diferente. En código tengo lo siguiente: org 100h .model small .stack 100 .data u db 0 d db 0 v db 0 tiempo db 0 .code start: mov cx,00h ; inicializo contador en cero inicio: mov tiempo,cl ;call retraso1s ;salto a retraso de 1s ;call retraso5s ;salto a retraso de 1s ;call retraso10s ; salto a retraso de 10s mov cl,tiempo cmp cl,10 ; compara si en el contador es mayor a 9 jc aumento ;Destino es menor que origen ;jne repite ; sino es verdadera la ultima comparacion regresa a repite jz separar ;Numeros iguales jnz separar ;Destino mayor a origen cmp d,06h jc inicio ;Destino es menor que origen jz start ;Numeros iguales separar: mov al,cl AAM mov u,al mov al,ah AAM mov d,al ;cmp d,06h ;jz salir ;Numeros iguales mov ah,02h mov dl,d add dl,30h int 21h mov ah,02h mov dl,u add dl,30h int 21h inc cl ; incremento el contador en uno jmp inicio ret aumento: mov dl,cl ; muevo el valor del contador a dl para imprimir inc cl ; incremento el contador en uno add dl,30h ; sumo 30h a dl para convertirlo al codigo ascii y poder imprimirlo mov ah,02h ; funcion para imprimir un caracter int 21h ; imprimo jmp inicio ret retraso1s: MOV CX, 0FH MOV DX, 4240H MOV AH, 86H INT 15H ret retraso4s: MOV CX,3aH MOV DX,9680H MOV AH,86H INT 15H ret retraso5s: MOV CX,45H MOV DX,9680H MOV AH,86H INT 15H ret retraso10s: MOV CX, 98H MOV DX, 9680H MOV AH, 86H INT 15H ret salir: .exit end
Espero que me puedan dar una idea de como continuar
|
|
|
2
|
Programación / ASM / problema con contador que toma segundos del sistema
|
en: 26 Mayo 2019, 08:14 am
|
Hola a todos, estoy creando un contador que toma los segundos del sistema y sigue con el conteo cada segundo y manda a imprimir el mismo, pero tengo un problema en la conversión de 60 a 00 y validarlo al momento de comparar con el segundo actual. org 100h .model small .stack 100 .data s0 db 30h s1 db 30h sold db 0 snew db 0 .code .startup init: mov ah,2ch int 21h ;dh =segundos del sistema mov sold,dh call hora add dh, 1 ;dh= segundo se sistema +1 mov snew, dh ;snew es el segundo posterior cmp snew,60 jz seis0 ;Numeros iguales jmp sincronizados sincronizados: mov ah,2ch int 21h ;dh =segundos del sistema mov bl,dh mov bh,snew cmp bl, bh ;compara (new segundo) contra (old segundo + 1) jne sincronizados ;salto si no son iguales jmp init ret seis0: mov ah,2ch int 21h ;dh =segundos del sistema mov sold,dh cmp sold,00 jnz seis0 ;Destino mayor a origen mov sold,00 ;reset sold a 0 call separa mov snew,1 jmp sincronizados ret hora: cmp sold,10 jae separa jmp sincronizados ret separa: mov al,sold AAM mov bx,ax mov ah,02h mov dl,bh add dl,30h int 21h mov ah,02h mov dl,bl add dl,30h int 21h ret
Esto es lo que tengo hecho. El contador va bien hasta el momento en que va iniciar un nuevo ciclo de conteo (es decir, va del segundo del sistema hasta el 60 o 00) y de ahi se queda en un ciclo, nunca pasa al 01. Espero que me puedan ayudar
|
|
|
3
|
Programación / Programación C/C++ / Implementación de arreglo de 2-D como función
|
en: 28 Noviembre 2018, 04:40 am
|
Buenas chicos, intento implementar una función que imprima los valores de un arreglo 2-d, pero no se que poner en el parámetro donde va la segunda dimensión, con malloc pido memoria para un int o que me recomiendan. Aqui tengo el problema: void muestra(int matriz[][], int renglon, int columna)
El valor de las dimensiones de mi array es variable, bien puede ser 2x 3 o 20x20. Lo que tengo de código es: void muestra(int matriz[][], int renglon, int columna); int main() { int M, N, i, j; int b_minas [M][N]; for (i= 0; i < M; i++) { for (j= 0; j < N; j++) { scanf("%d", &b_minas [i ][j ]); } } muestra( b_minas, M, N); return 0; } void muestra(int matriz[][], int renglon, int columna) { int i, j; for (i= 0; i < renglon; i++) { for (j= 0; j < columna; j++) { } } }
|
|
|
4
|
Programación / Programación C/C++ / Guardar una linea de enteros separados por un espacio en C
|
en: 6 Noviembre 2018, 19:51 pm
|
Buenas dias/tardes/noches a todos tengo un problema en el que espero que me puedan ayudar.
Necesito guardar un serie de números enteros que están separados por un espacio en un arreglo, es decir, me dan un número N que la longitud de mi arreglo A[N] y la siguiente entrada son N números que debo guardar en A, ejemplo:
5 1 3000 466 588 57778
Mi duda es como guardarlos, si estuvieran juntos los números o los ingresaran un seguido de otro seria fácil, pero de esta forma no se me ocurre que hacer.
Gracias a todo los que puedan darme unas ideas que implementar.
|
|
|
5
|
Seguridad Informática / Criptografía / Ayuda para descifrar clave del asesor de contenido
|
en: 29 Octubre 2015, 18:19 pm
|
Por favor alguien que me ayude con lo siguiente: Estoy creando un archivo del reg para que borre la contra del asesor de contenido y otro para que coloque la clave pero el problema me surg a la hora de querer meter la clave al registro. Meti una clave al asesor y vi el registro, obtuve el resultado en hexadecimal: 34 9A C6 E4 28 83 D1 75 5F F7 D0 C8 0B 36 B6 4C lo pase a Assci y obtuve: 4šÆä(ƒÑu_÷ÐÈ6¶L Alguien que me pueda ayudar a ver el metodo de encriptacion que se utiliza en esta clabe para que pueda cifrar mis claves y meterlas al registro desde un archivo.reg
|
|
|
|
|
|
|