• Domingo 5 de Mayo de 2024, 01:53

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Super_G

Páginas: 1 [2] 3 4 ... 15
26
ASM (Ensamblador) / Re: Problemas Para Debuggear Un .com
« en: Domingo 24 de Abril de 2005, 04:55 »
bueno yo hago todo eso que quieres hacer `precisamente con el TD de Borland sin ningun problema, podrias decirme como cargas el programa a "Debugear" (.com); yo uso la version que viene con el TASM 2.0; en paltaforma DOS al ejecutar el TD, cuando quiero cargar un porgama por defecto esata para cargar un .EXE solo cambio a .COM y busco el programa, despues lo cargo y todo bien.

27
ASM (Ensamblador) / Re: Programa Residente?
« en: Domingo 24 de Abril de 2005, 04:49 »
para no poner la bios.mac puse las macros que usa el programa al final del mismo; asi que si pone slas macros en el encabezado sustituyendo por el el include... no deberias tener problemas.

28
ASM (Ensamblador) / Re: Programa Residente?
« en: Miércoles 20 de Abril de 2005, 02:43 »
un ejemplo muy conocido:

Código: Text
  1.  
  2. pantalla equ 0b800h
  3. .model tiny
  4. .code
  5. include bdos.mac
  6. org 100h
  7. inicio:
  8.         jmp instalar
  9.         se_g dw 0
  10.         des dw 0
  11.         hora db 8 dup('?')
  12. reloj proc
  13.        cli
  14.        push ax
  15.        push bx
  16.        push cx
  17.        push dx
  18.        push si
  19.        push di
  20.        push ds
  21.        push es
  22.       &#59;;*****************
  23.        mov ax,40h
  24.        mov es,ax
  25.        mov si,6ch
  26.        mov ax,es:[si]
  27.        mov dx,es:[si+2]
  28.        mov bx,32761
  29.        div bx
  30.        shr ax,1
  31.       &#59;;*******
  32.        jnc p0
  33.        add dx,bx
  34.  p0:   mov ch,al
  35.        mov ax,dx
  36.        mov dx,0
  37.        mov bx,1092
  38.        div bx
  39.        mov cl,al
  40.        mov ax,dx
  41.        mov dx,0
  42.        mov bx,18
  43.        div bx
  44.        mov dh,al
  45.       &#59;;******
  46.        mov bh,10
  47.        mov ah,0
  48.        mov al,ch
  49.        div bh
  50.        add ax,3030h
  51.        mov word ptr hora,ax
  52.        mov hora+2,':'
  53.        mov  ah,0
  54.        mov al,cl
  55.        div bh
  56.        add ax,3030h
  57.        mov word ptr hora+3,ax
  58.        mov hora+5,':'
  59.        mov ah,0
  60.        mov al,dh
  61.        div bh
  62.        add ax,3030h
  63.        mov word ptr hora+6,ax
  64.        mov hora+8,':'
  65.        mov ah,0
  66.        mov al,dl
  67.        div bh
  68.        add ax,3030h
  69.        mov word ptr hora+9,ax
  70.       &#59;;*********************************
  71.        mov ax,pantalla
  72.        mov es,ax
  73.        mov di,2*(80-length hora)
  74.        mov cx,length hora
  75.        mov si,0
  76. mover:
  77.        mov al,hora[si]
  78.        mov es:[di],al
  79.        inc di
  80.        mov byte ptr es:[di],07h
  81.        inc si
  82.        inc di
  83.        loop mover
  84. fin:
  85.        pop es
  86.        pop ds
  87.        pop di
  88.        pop si
  89.        pop dx
  90.        pop cx
  91.        pop bx
  92.        pop ax
  93.        sti
  94.        iret
  95. reloj endp
  96.  
  97. instalar:
  98.           GET_INT 1ch,se_g,des
  99.           SET_INT 1ch,,reloj
  100.           TSR_COM<offset instalar-offset inicio+100h>
  101.  
  102.  
  103.  
  104. ;;fin:  int 20h
  105.  
  106. end inicio
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113. GET_INT macro n,s,o
  114.      ifnb <n>
  115.         mov al,n
  116.      endif
  117.      mov ah,35h
  118.      int 21h
  119.      ifnb <s>
  120.         mov s,ES
  121.      endif
  122.      ifnb <o>
  123.         mov o,BX
  124.      endif
  125. endm
  126. SET_INT macro n,s,o
  127.      ifnb <n>
  128.         mov al,n
  129.      endif
  130.      ifnb <s>
  131.         mov DS,s
  132.      endif
  133.      ifnb <o>
  134.         mov DX,offset o
  135.      endif
  136.      mov ah,25h
  137.      int 21h
  138. endm
  139.  
  140.  
  141. TSR_COM macro etq,c
  142.     mov dx,( etq-1)/16+1
  143.     ifnb <c>
  144.         mov al,c
  145.     endif
  146.     mov ah,31h
  147.     int 21h          
  148. endm
  149.  
  150.  
  151.  
  152.  

29
ASM (Ensamblador) / Re: Codigo Ascii
« en: Miércoles 20 de Abril de 2005, 02:16 »
para desplegar el simbolo es facil, solo lo desplegas y ya; para ver su equivalente ascii lo muestras por partes

ejemplo '\' = 92
mov al,92
mov ah,2
int 21h ; desplegado el simbolo '\'
mov bl,10
xor ah,ah
div bl
mov bh,ah
mov ah,2
add al,48
int 21h  ; desplega '9'
xchg al,bh
add al,48
int 21h ; desplega '2'

30
C/C++ / Re: Imprimir Un Dato Sobre Otro
« en: Domingo 17 de Abril de 2005, 04:28 »
para hacer eso a mi me sirve esta funcion:

Código: Text
  1.  
  2. void SET_CUR (unsigned char fila,unsigned char columna)//pociciona
  3. {     asm  mov dh,fila                       // el cursor(teclado)
  4.       asm  mov dl,columna
  5.       asm  xor bh,bh
  6.       asm  mov ah,2
  7.       asm  int 10h
  8. }
  9.  
  10.  
funciona.

31
ASM (Ensamblador) / Re: Editor De Texto En Asm
« en: Domingo 17 de Abril de 2005, 04:26 »
Puedes hacerlo usando las primeras funciones de la INT 21H

32
ASM (Ensamblador) / Re: Ayuda Urgente Porfas!!-> Suma De Dos Numeros En Bc
« en: Domingo 17 de Abril de 2005, 04:24 »
..."no haty d equeso no'mas de papa"

33
ASM (Ensamblador) / Re: Preguntas?????
« en: Domingo 17 de Abril de 2005, 04:22 »
no se si pueda responder bien a todas tus preguntas pero lo intentare, y si me equevoco espero que alguin me corrija.

1º ( esta no esta facil) Lo que deberia tranferir(copiar) es la palabra de  2 Bytes  (no recuerdo bien el orden) en byte que esta en la direccion de memoria 0324H se "copia" a AH , el byte de 0325H a AL.

2º Byte Ptr indica que cantidad se mueve, en este caso dice "Byte"  movera un byte a AL; de la direcion de memoria que resultara la suma d elos contednidos de BX + SI y el literal 30H; es decir si BX=4H, SI = 2H la direcion sera: 36H.

3º No, mueve directamente el valor de 0FFA1H, que podria ser una direccion d ememoria o un dato pero d emomento es solo un numero en hexa,bin, y deci.

4º En teoria("abstracta") sumaria el contenido d ela posicion de memoria 0FFA1H y con 0324H


5º 005E para el caso NET AX

[]referencia a la pocisicon de memoria

MOV [BX], 100h
mueve el valor de 100h a la localidad de meroria cuya direccion esta en el contenido del registro BX.
y
MOV BX,100h
mueve el valor de 100H al contenico del registro BX (BX=100h)








me parece que tus dudas tienen que ver con meoria

Cuando tu dices [BX] te refieres a la posicion de memoria que esta dada por BX
[200h] se refuiere a la posicion d ememoria 200H
 en ambas en contenido  de sta memoria no esta especificado pero se puede recuperan o modificar con las anterirores referencias
 no es lo mismo decir:

MOV BX, 2
que decir
MOV [BX],2
en el primero mueve 2 al registro BX; en el segundo mueve 2 a la direcicon d ememoria apuntada por BX

tampoco es lo msimo decir

mov al,[200h]
que
mov al.200h

en el primero mueves el contenido de la direccion dememoria q

34
ASM (Ensamblador) / Re: Ordenar Alfabeticamente Una Lista
« en: Domingo 17 de Abril de 2005, 03:32 »
para lo del ciclo con "n" puedes usar a la instruccion LOOP y poner en CX el numero de ciclos o letras
Código: Text
  1.  
  2.        mov cx,n
  3. ciclo:
  4.  
  5.          .
  6.          .
  7.          loop ciclo
  8.      
  9.  
  10.  
ahora el ejemplo anterior trabaja sobre memoria y el resultado se queda en la misma direccion de memoria.

35
PHP / Php, Graficos De Una Bd A Un Reporte???
« en: Jueves 14 de Abril de 2005, 18:44 »
Como recupero Graficos de una base de datos a un reporte con PHP, no se si alguin me puede ayudar con cualquier ejemplo en cualquier bade de datos  que haya teniedoa alguna experiencia similar, Gracias.

36
ASM (Ensamblador) / Re: Ordenar Alfabeticamente Una Lista
« en: Jueves 14 de Abril de 2005, 18:42 »
en si el movimiento es a la direcion de memoria apuntada por SI (u otro apuntador como DI,BX) y de "tamaño" fijo como un byte, en DX normalmente para usar instrucciones epeciales o interrupciones que usan por defecto a DX y no otro registro y asi deberia ser para esos casos ya que DX es el "registro de datos" pero para trabajar con elementos de una cadena se usa SI o DI.

37
ASM (Ensamblador) / Re: Atributos De Archivos, Capetas, Etc
« en: Jueves 14 de Abril de 2005, 18:37 »
no se si funciona en WINDOWS pero en DOS:

usando la funcion 43h de la in 21h:

Código: Text
  1.  
  2.        mov ah,43h
  3.        mov al,1
  4.        mov cx,01;sololectura
  5.       &#59;;02 archivo oculto
  6.       &#59;;04 de sistema
  7.        mov dx,offset nombrearchivo
  8.        int 21h
  9.  
  10.  
  11.  

38
ASM (Ensamblador) / Re: Ordenar Alfabeticamente Una Lista
« en: Miércoles 13 de Abril de 2005, 02:30 »
comparando:
si tu lista es de este tipo

cadena db 'fkjklsuionajkk'

Código: Text
  1.  
  2.           mov si,offset cadena
  3.           mov di,si+1
  4. ciclo:  mov al,[di]  
  5.           cmp  [si],al
  6.           jb      next1&#59;;hacendente o descendente
  7.           mov ah,[si]          
  8.           mov [si],al
  9.           mov [di],ah
  10. next1: inc si
  11.           inc di
  12.           jmp ciclo
  13.  
  14.  

algo asi....Falta el control para el ciclo.

39
ASM (Ensamblador) / Re: Como Convertir Hexadecimal(o Binario) A Decimal
« en: Viernes 8 de Abril de 2005, 04:28 »
La dicvisin entre 10 en un ciclo asi puedes seprar unidades decenas centenas....

el problema es que si tu tienes o no disponible como instruccion la division DIV si no la tienes hay que buscar alguna forma; si usa un PIC de la gama media; me contaron y lei tambien el foro de solocodigo de microcontroaldores; que la microchip tenia librerias para hacer divisiones y en general operacones matematicas; tendrias que buscar en librerias "MATH" en microchip. y si usa otro micro fijate si notien e esa instrucion o si proveen alguna solucion para este tipo de problemas.

40
ASM (Ensamblador) / Re: Hola Mundo
« en: Miércoles 6 de Abril de 2005, 02:41 »
Que raro ami no me sale ningun error.

41
ASM (Ensamblador) / Re: Hola Mundo
« en: Lunes 4 de Abril de 2005, 02:22 »
si has compilado el archivo(eje:miarchivo.asm)

tasm miarchivo.asm


y no tiene errores(genera el .OBJ) entoces solo falta enlazar con el TLINK.exe

tlink miarchivo.obj

y si esta todo bien debuelve el ejecutable

42
ASM (Ensamblador) / Re: Ayuda Urgente Porfas!!-> Suma De Dos Numeros En Bc
« en: Lunes 4 de Abril de 2005, 02:18 »
Haciendole algunos arreglos
Código: Text
  1.  
  2.  
  3. .model tiny
  4.  
  5.  
  6. .code
  7. ORG 100H       &#59;directiva org con 100 bytes. inicia el segmento de carga del programa
  8. ;section .data
  9.  
  10. ;section .text
  11.  
  12.  start:  &#59;Punto de entrada del programa
  13.  
  14.         MOV DX, offset mensage1
  15.   MOV AH, 09&#59;Despliega el primer mensage.
  16.   INT 21H  &#59;Llama función del DOS.
  17.   MOV AH, 01&#59;Lee el teclado para el primer numero.
  18.   INT 21H
  19.         MOV BL, AL     &#59;Mueve el dato almacenado a AH
  20.         sub BL,48
  21.  
  22.         MOV DX, offset mensage2
  23.   MOV AH, 09&#59;Despliega el segundo mensage.
  24.   INT 21H  &#59;Llama función del DOS.
  25.   MOV AH, 01&#59;Lee el teclado para el segundo numero.
  26.   INT 21H  &#59;Llama función del DOS.
  27.         sub AL,48
  28.         ADD AL, BL     &#59;Suma AH y AL
  29.         XOR AH, AH
  30.         mov bh ,10    &#59;separo las unidades de las decenas
  31.         div bh          
  32.         xchg ah,al     &#59; intercambio las unidades con las decenas  
  33.        &#59;AAA
  34.         MOV DX, AX   &#59;el resto continua igual
  35.         MOV AH, 0EH
  36.         OR  DH, 30H
  37.         MOV AL, DH     &#59;creo que estas tres lineas convierten a ASCII pero no se como funcionan bien?
  38.         INT 10H
  39.         OR  DL, 30H
  40.         MOV AL, DL
  41.         INT 10H
  42.  
  43.         int 20h
  44.  mensage1 db 'Introduce primer numero : ', '$' &#59;db = dato de  1 byte.
  45.  mensage2 db 'Introduce segundo numero: ', '$'
  46.  
  47. ;RET
  48. END start
  49.  
  50.  
  51.  
compilado con TASM

43
C/C++ / Re: Manejo Del Puerto Usb
« en: Viernes 1 de Abril de 2005, 19:12 »
Gracias; pero ¿cual API debo usar? nose si tines informacion de que funciones de la API me permitirian hacer este manejo del USB

44
ASM (Ensamblador) / Re: De Codigo-3 A Ensamblador
« en: Viernes 1 de Abril de 2005, 04:11 »
http://board.flatassembler.net/
en esta dir hay un compilador de asembler el fasm
y tiene el codigo fuente nose si te sirva

45
ASM (Ensamblador) / Re: Hola Mundo
« en: Viernes 1 de Abril de 2005, 04:01 »
bueno par alo del ciclo infinito simplemente cambias la posicion de "jmp comenzar"
 lo pones antes del finalizar el programa
antes de :

 MOV AH,4Ch
 INT 21h

y listo
para el  error no lo reconosco ¿que compilador usas y que linkeador?
yo use el tasm y el tlink

46
Visual Basic 6.0 e inferiores / Re: Manejo Del Puerto Usb
« en: Jueves 31 de Marzo de 2005, 04:29 »
Muchas gracias por responderme!!!!!

47
ASM (Ensamblador) / Re: Hola Mundo
« en: Jueves 31 de Marzo de 2005, 04:22 »
Compilando,tu programa, con TASM me sale que 1º debo poner el modelo de memoria, que de declaro con MODEL no MODE, tambien algo notorio es que despues de declarar el segmento de codigo "declaras" cadena y eso no es codigo el JMP debe estar antes de esa declaracion. eso lo mas resaltante.
haciendo las correcciones dichas tenemos:
Código: Text
  1.  
  2. .MODEL SMALL
  3. .STACK
  4. ;;JMP comenzar
  5. .DATA
  6. cadena DB 'Hola Mundo$'
  7. .CODE
  8. comenzar:
  9.    mov ax,_data &#59;;segmento de datos
  10.    mov ds,ax
  11.  
  12.    MOV DX, OFFSET cadena
  13.   MOV AH,9h
  14.   INT 21h
  15.   MOV AH,4Ch
  16.   INT 21h
  17.  &#59;JMP comenzar &#59;no se toma en cuanta el programa
  18. ;ya termino
  19. END comenzar
  20.  
  21.  
  22.  

y funciona!!

48
ASM (Ensamblador) / Re: Hola Mundo
« en: Jueves 31 de Marzo de 2005, 04:05 »
Modelo para un EXE(DOS):
Código: Text
  1.  
  2. .model small
  3. ;Anular el siguiente comentario cuando se usen caracteristicas del 386
  4. ; .386
  5. ;Anular el siguiente comentario cuando se usen caracteristicas del coprocesador
  6. ; .387
  7. .stack 100
  8. .data
  9. ; Colocar aqui los datos
  10. db
  11.  
  12. .code
  13. inicio:
  14. mov ax,_data
  15. mov ds,ax
  16. ; Escribir aqui el programa
  17.  
  18.  
  19. mov ah,4ch
  20. int 21h
  21. end inicio
  22.  
  23.  

49
Visual Basic 6.0 e inferiores / Manejo Del Puerto Usb
« en: Miércoles 30 de Marzo de 2005, 20:01 »
Hola a todos

¿Existe alguna forma de manejar el puerto USB para hacer comunicacion?
por decir para conectar 2 maquinas y transferir datos, o para comunicación con un dispositivo externo como algun microcontrolador, una comunicacion sencilla.
¿de que manera puedo manejar USB?; como con el RS232 por ejemplo, tengo la direccion de puerto y despues veo que se necesita para hacer la comunicación o si el Lenguaje tiene alguna facilidad la uso.

GRACIAS!!!

50
Visual C++ / Manejo Del Puerto Usb
« en: Miércoles 30 de Marzo de 2005, 19:53 »
Hola a todos

¿Existe alguna forma de manejar el puerto USB para hacer comunicacion?
por decir para conectar 2 maquinas y transferir datos, o para comunicación con un dispositivo externo como algun microcontrolador, una comunicacion sencilla.
¿de que manera puedo manejar USB?; como con el RS232 por ejemplo, tengo la direccion de puerto y despues veo que se necesita para hacer la comunicación o si el Lenguaje tiene alguna facilidad la uso.

GRACIAS!!!

Páginas: 1 [2] 3 4 ... 15