Foro de Assembler

Hola a todos

Sorry! he bajado mi participacion, pero espero recuperarme y seguir cooperando, a pesar que aun sigo con otras yerbas, pero bueno, a ver que hacemos.

... a ver si alguien le hecha un vistazo a ver donde esta el error por yo no lo veo me da un error de la cuarta línea:

El ejercicio es el prog005c


prog005c.inc(4) : fatal error A1000: cannot open file : rvlcnrand.inc


yocoloco

Revisa si existe el archivo ( file ) rvlcnrand.inc, en la carpeta correspondiente junto a los demas.

Eso.

Saludos

Atte.
Kzk
 
Bueno les dejo mi proyecto, tome como base uno y le agrege unas cosas, todo corre normal. Pero mi profesor dice que le agrege màs cosas, y yo no sè que màs le puedo agregar, me dice otro tiburon o mas adornos en el fondo del mar. Esta hecho en tasm.

xoxo.
 

Archivos adjuntos

  • Proyecto.rar
    6.6 KB · Visitas: 221
prog007a

Hola: a todos, gracias kzk, ya lo revise y era ese el problema, que no habia copiado los archivos, de rvlcndar.inc y el de rvlcnrand.lib en la carpeta de prog005c y ese era el error.
pero ahora estoy liado con el prog007a y me dice que copie y pege esos mismos archivos en el RadASM masm en la carpeta de .inc su archivo correspondiente y en la .lib el suyo, ya los he pegado.
que en mi caso es esta direcion si no me he equivocado de carpeta ya que con esos nombres de .inc y .lib solo la he encontrado en esta direcion.
incluso los e pegado en la carpeta prog007a


C:\masm32\RadASM\Masm\Inc

C:\masm32\RadASM\Masm\Lib

y me da el mismo error que el otro ejercicio.


masm


386
.model flat,stdcall
option casemap:none
include prog007a.inc
.code
prog007a:
invoke randzine
invoke range,0,100
xor ebx,ebx
.repeat
add ebx,1
.until ebx > eax
invoke wsprintf,addr buffer,addr MsgTexto,eax
invoke MessageBox,NULL,addr buffer,addr MsgTitulo,MB_OK + MB_ICONINFORMATION
invoke ExitProcess,0

end prog007a


.inc
include windows.inc
include user32.inc
include kernel32.inc
include vrclnrad.inc
include rvclnrad.lib
includelib user32.lib
includelib kernel32.lib
.data
MsgTexto db "El bluce se ha repetido %d veces",0
MsgTitulo db " RVLCN - 2006",0
.data?
buffer db 35 dup (?)


error.

Assembling: prog007a.asm
prog007a.inc(4) : fatal error A1000: cannot open file : vrclnrad.inc
Make error(s) occured.
Total compile time 1250 ms

yo creo que no me los reconoce, porque cuando escribo
include rvlcnrad.inc al escribir la r ya tendria que salir de la lista y no sale y eso deve ser por que no lo reconoce o no estan en la carpeta donde tenian que estar pegados.
tu que dices kzk
saludo2 de
yocoloco
 
Urgente gentita necesito ayuda en este programa que necesito realizarlo en Assembler en el emu8086
dice asi:
Programa q permita ingresar 50 numeros de 2 cifras, en forma ALEATORIA y los almacena en memoria a partir de la direccion 500 luego analiza dichos numeros.
Si los numeros son impares los almacena empezando en la direccion 600 tambien en forma aleatoria.
Si los numeros son pares los almacena empezando en la direccion 700 tambien en forma aleatoria.
Los #s impares se ordenan de forma descendente y los almacena empezando en la direccion 800.
Los #s pares se ordenan de forma ascendente y los almacena empezando en la direccion 900.
El programa debe consistenciar los datos y mostrar en la pantalla lo siguiente:
INGRESAR LOS NUMEROS:
CANTIDAD DE NUMEROS PARES ES:
CANTIDAD DE NUMEROS IMPRAES ES :
LOS NUMEROS PARES SON :
LOS NUMEROS IMPARES SON:

Gracias espero que me puedan ayudar.
 
Duda en Assembler, grabar en un lugar especifico del segemento de datos

Buenas a todos...
Estoy programando en Assembler para 80186 y tengo una duda... ¿Se me pide que defina una variable tipo byte en una direccion especifica del segemento de datos, es decir, por ej. en la direccion DS:0045, pero no se como hacerlo, el ensamblador ubica la variable automaticamente dentro del segmento en el offset que el quiere? si alguien me puede ayudar por favor... Grax
 
Urgente gentita necesito ayuda en este programa que necesito realizarlo en Assembler en el emu8086
dice asi:
Programa q permita ingresar 50 numeros de 2 cifras, en forma ALEATORIA y los almacena en memoria a partir de la direccion 500 luego analiza dichos numeros.
Si los numeros son impares los almacena empezando en la direccion 600 tambien en forma aleatoria.
Si los numeros son pares los almacena empezando en la direccion 700 tambien en forma aleatoria.
Los #s impares se ordenan de forma descendente y los almacena empezando en la direccion 800.
Los #s pares se ordenan de forma ascendente y los almacena empezando en la direccion 900.
El programa debe consistenciar los datos y mostrar en la pantalla lo siguiente:
INGRESAR LOS NUMEROS:
CANTIDAD DE NUMEROS PARES ES:
CANTIDAD DE NUMEROS IMPRAES ES :
LOS NUMEROS PARES SON :
LOS NUMEROS IMPARES SON:

Gracias espero que me puedan ayudar.

El gran problema en esto es el aleatorio...io trate de sacarlo con las minas pero no pude...alguien conoce el algoritmo de aleatorio en asm....?
 
El gran problema en esto es el aleatorio...io trate de sacarlo con las minas pero no pude...alguien conoce el algoritmo de aleatorio en asm....?

Código:
mov ax, 13h ; modo de video 13h
int 10h ;
mov ds, ax ; ds = 13h
mov bp, ds:[033Ch] ; bp = semilla aleatoria

mov ax, cs ; ax = code segment + 1000h
add ax, 1000h ;
mov ds, ax ;
mov es, ax ;
;
xor cx, cx ;
m_1: imul bp, 9421 ; generando numero aleatorio
inc bp ;
mov ax, bp ; ax = random bit (0 or 1)
xchg cl, dl ;
mov cl, 15 ;
shr ax, cl ;
xchg cl, dl ;
stosb ;
loop m_1 ; loop

http://prog-asm.blogspot.com/2006/12/generacion-de-numeros_22.html
me dicen si funciona.
saludos
 
Programa q permita ingresar 50 numeros de 2 cifras, en forma ALEATORIA y los almacena en memoria ...
INGRESAR LOS NUMEROS:
El gran problema en esto es el aleatorio...io trate de sacarlo con las minas pero no pude...alguien conoce el algoritmo de aleatorio en asm....?
si estan hablando de lo mismo pues creo que no es necesario generar nada aleatorio
los 50 numeros aleatorios los introduce el usuario
asi que la rutina de generar aleatorios esta es en el cerebro del usuario! :p
 
No olvidense ya del aleatorio, hable con el encargado del problema y me dijo q el usuario lo ingresaba al azar los datos .... Asi que ya no hay q hacernos bolas.
 
Oigan alguien sabe donde puedo encontrar manuales en los cuales ensamblador interactua con c++ y pueda manipular el puerto paralelo
 
Oigan alguien sabe donde puedo encontrar manuales en los cuales ensamblador interactua con c++ y pueda manipular el puerto paralelo


mira.. no trabajo mucho con assembler, mas q todo en C++ con Builder 6 exactamente.
aqui una funcion..

aqui te va la función...

Código:
#pragma inline
#include <Classes.hpp>

//---------------------------------------------------------------------------

void out(BYTE c){
asm{
push ax
push dx
mov dx,0x0378
mov al,c
out dx,al
pop dx
pop ax
}
}

BYTE in(void){
BYTE ca;
asm{
push ax
push dx
mov dx,0x0378
in al,dx
mov ca,al
pop dx
pop ax
}
return ca;
}

/// Y esto va en el .cpp, o donde lo quieras llamar

void __fastcall ????()
{
BYTE c;
c=in();
...
.
.
out(c);
}
espero que te sirva de algo.


saludos.
 
Baya viejo UAC_Likibuay un honor ternerlo por aca....
_____________________________________________________________________________________________________
Bien dejando de lado lo del aleatorio....es posible hacer lo que necesitas con un arreglo, le pones el indicador de pares en una direccio y el de inpares en otra, por omicion los ira acumulando uno detras de otro....para distinguir para de inpar solo deves hacer un div del numero respecto a 2 y ver si tenes reciduo o no eso lo evaluas con cmp y con un salto condicional je, jbe, ja....cualquiera depende el code lo discrimas y agragas en uno u otro arreglo...PAZ Y SUERTE.
 
  • Me gusta
Reacciones: 2 personas
Hola soy nuevo aqui en laneros, bueno tengo una pregunta y espero que puedan ayudarme, estoy empezando com assembler y como asignacion me mandaron a hacer un programa que calcule el factorial, el problema es que me lo piden que lea numero entre 1 y 21, y hasta donde he probado y leido en internet solo me agarra hasta el factorial del numero 8, el problema entonces seria la capacidad de almacenamiento de datos de los registros ¿como haria para que me guardaran un valor superior al de el 8! ( factorial )?.

Gracias De Antemano.
 
Si estas trabajando con registros de 16bits no puedes almacenar mas de lo que ya tienes ( 8! ), no es posible que los registros guarden un valor superior.
 
Hola a todos, disculpen tengo un probla, yo utilizo la plataforma de borlan TASM para ensamblar, mi problema es ke kisiera saber komo manipilar los puertos usb mediande lenguaje ensamblador asi como los puertos paralelos o algo similar, pero no encuentro nada en internet les agradeceria pudieran aportar informacion sobre este tema, si es que es posbile manejar puertos USB con ensamblador porque ya me estoy desanimando :(
 
Buenas a todos.... necesito consultarles lo suiguiente:

Cómo puede leerse un archivo de texto línea a línea?
Es decir, supongamos que tengo un archivo nombres.txt que contiene lo siguiente:

Pedro Perez
Juan García
Paco Ramirez
.
.
.

Cómo se hace para que primero lea una línea, luego otra, etc.

Desde ya, muchas gracias a todos.
 

Los últimos temas