lamento la respuesta tardía, lo realice y me funciono.

Gracias, por tu apoyo.


Gracias, por tu apoyo.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
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
Cita de: cpu2 en 28 Mayo 2019, 00:25 AM
En estos momentos no puedo testear el code, por lo qie dices tienes el problema en convertir el entero 60 a 0? Tiene facil solucion, con una rutina de comparacion y un xor lo tendrias.
Un saludo.
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
void muestra(int matriz[][], int renglon, int columna)
void muestra(int matriz[][], int renglon, int columna);
int main() {
int M, N, i, j;
scanf("%d %d", &M, &N);
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) {
printf("\n");
int i, j;
for (i= 0; i < renglon; i++) {
for (j= 0; j < columna; j++) {
printf("%d ", matriz[i][j]);
}
printf("\n");
}
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void mostrar_arreglo(int *A, int long_cad);
void ordenacion_seleccion (int * A, int N);
void intercambiar (int * A, int i, int j);
int main() {
int N, M, L, i, j=0;
scanf("%d", &N);
scanf("%d", &M);
L= N+M;
int arreglo_n[N], arreglo_m[M], arreglo_final[L];
for ( i= 0; i < N; i++) {
scanf("%d", &arreglo_n[i]);
}
for ( i= 0; i < M; i++) {
scanf("%d", &arreglo_m[i]);
}
for ( i = 0; i < L; i++) {
if (i< N) {
arreglo_final[i]= arreglo_n[i];
} else {
arreglo_final[i]= arreglo_m[j];
j++;
}
}
ordenacion_seleccion( arreglo_final, L);
mostrar_arreglo( arreglo_final, L);
}
void ordenacion_seleccion (int * A, int N)
{//ordena un conjunto por seleccion
int i, j, k;
for (i = 0; i < N - 1; i++)
{
for (k = i, j = i + 1; j < N; j++)
if (A[j] < A[k])
k = j;
if (k != i)
intercambiar (A, i, k);
}
}
void intercambiar (int * A, int i, int j)
{//intercambiar lugares para completar la funcion ordenacion_seleccion
int tmp = A[i];
A[i] = A[j];
A[j] = tmp;
}
void mostrar_arreglo(int *A, int long_cad)
{
int i= 0;
for ( i= 0; i < long_cad; i++) {
printf("%d ", A[i]);
}
}
Cita de: AlbertoBSD en 7 Noviembre 2018, 01:59 AM
Salida:
C:\codigos>tsss.exe
10
1 2 3 5 5 5 5 5 5 5
Numero 1: 1
Numero 2: 2
Numero 3: 3
Numero 4: 5
Numero 5: 5
Numero 6: 5
Numero 7: 5
Numero 8: 5
Numero 9: 5
Numero 10: 5
Codigo#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main() {
int N,i = 0,len;
char **arreglo = NULL;
char *buffer;
char *token = NULL;
char temporal[1000];
fgets(temporal,1000,stdin);
N = strtol(temporal,NULL,10);
token = strtok(buffer," ");
fgets(temporal,1000,stdin);
token = strtok(temporal," ");
do {
arreglo = realloc(arreglo, sizeof(char*) * (i +1));
//arreglo[i] = token; // Esta linea esta bien, pero realmente recomiendo moverl el contenido de esta posicion de memoria a uno que si controlemos nosotros
len = strlen(token);
arreglo[i] = calloc(len+1,sizeof(char));
memcpy(arreglo[i],token,len);
printf("Numero %i: %s\n",i+1,arreglo[i]);
token = strtok(NULL," ");
i++;
}while(i < N && token != NULL);
}
Saludos!
Cita de: MAFUS en 6 Noviembre 2018, 20:05 PM
Intenta con strtok
int main() {
int total = 0, N, M;
char **arreglo = NULL;
char *buffer; // donde se guarda todo el texto
char *token = NULL;
scanf("%d %d", &N, &M);
gets (*buffer);
printf("%s\n", *buffer);
token = strtok(*buffer,",");
while(token != NULL) {
arreglo = realloc(arreglo, sizeof(char*) * (total +1));
arreglo[total] = token;
printf("Nombre %i: %s\n",total+1,arreglo[total]);
total++;
token=strtok(NULL,",");
}
}