Ensamblador - Variables en ensamblador???

 
Vista:

Variables en ensamblador???

Publicado por Anonimo (8 intervenciones) el 27/02/2007 18:16:50
☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺
Existen las variables en Ensamblador???

Lo necesito porque estoy haciendo un SO y tengo que capturar un string por teclado:

main:
mov ah, 00h
int 16h
cmp al, 13
je Enter
;ALMACENAR AL PERO ANTES PASAR DE ASCII A CARACTER ?COMO?
jmp main

Enter:
...

☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺
☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺☺
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Variables en ensamblador???

Publicado por LEANDRO (14 intervenciones) el 28/02/2007 15:37:13
sI TENES QUE CAPTURAR UN STRING TE CONVENDRIA HACERLO CON LA INT21H
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Variables en ensamblador???

Publicado por Anonimo (4 intervenciones) el 28/02/2007 15:40:54
No puedo usar la 21h porque estoy haciendo un SO y no cuento con el DOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Variables en ensamblador???

Publicado por Leandro (14 intervenciones) el 28/02/2007 17:11:17
Disculpame por la respuesta erronea. Gracias por responderme, porque me enseñaste algo..Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Variables en ensamblador???

Publicado por Anonimo (4 intervenciones) el 28/02/2007 17:13:33
ok, de nada, pero sabes como hacerlo con la bios?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Variables en ensamblador???

Publicado por Anonimo (4 intervenciones) el 28/02/2007 17:15:25
Ami lo que me gustaria es agregar un prompt o linea de comandos en mi SO, por ejemplo escribo

> cls (borra pantalla)
> open fichero.txt (me despliega el archivo d texto

Gracias por tu tiempo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Variables en ensamblador???

Publicado por Leandro (14 intervenciones) el 28/02/2007 18:35:14
Con la Int 10h del BIOS podes capturar caracteres...pero al parecer..de a uno por vez...(Esto puede ser muy ineficiente)

INT 10h / AH = 08h
input:
BH = page number.
return:
AL = character.

Si encuentro algo mas te lo paso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Variables en ensamblador???

Publicado por Anonimo (4 intervenciones) el 28/02/2007 20:44:27
Creo que te estas equivocando, la int para capturar es 16h (funcion 00h).

Por ejemplo

main:
mov ah, 00h
int 16h
cmp al, 13
je Enter
;CODIGO PARA ALMACENAR EL CARACTER
cmp al, 8
je Retroceso
jmp main

Enter:
;SI LA CADENA DICE CLS BORRAR PANTALLA

Retroceso:
;BORRAR

Eso es lo q quiero (una linea de comandos), me podes ayudar a hacerlo?

Otra forma que se me ocurrio es usando los registros AX, BX, CX Y DX

1) Capturo AX
2) Si es Enter voy a Evaluar
3) Si no paso a Capturar BX

4) Capturo BX
5) Si es Enter voy a Evaluar
6) Si es Retroceso voy a Capturo AX
7) Si no paso a Capturar CX

8) Capturo CX
9) Si es Enter voy a Evaluar
10) Si es Retroceso voy a Capturo BX
11) Si no paso a Capturar DX

y asi sucesivamente

Evaluar
1) Si AX es C va a 2)
2) Si BX es L va a 3)
3) si CX es S borra pantalla

lo malo de esto es que es comando se ve limitado a 4 caracteres y tampoco me parece la forma mas correcta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Variables en ensamblador???

Publicado por microprocessor (46 intervenciones) el 01/03/2007 20:45:39
Saludos
Me llamo Jakub, tengo 12 años y creo un sistema operativo.

El código debería ser el siguiente más o menos:

main:
mov cx,3 ;numero de caracteres
mov ax,cs
mov es,ax
mov bx,0ffffh ;direccion donde se guardan

bucle:
call input
inc bx
cmp al,13
jz tecenter
mov [es:bx],al
dec cx
cmp cx,0
jz comparar
jmp bucle

input:
xor ax,ax
int 16h
push bx
mov bx,0
mov ah,0eh
int 10h
pop bx
ret

tecenter:
comparar:
cmp byte [es:bx-3],"C"
jnz fin
cmp byte [es:bx-2],"L"
jnz fin
cmp byte [es:bx-1],"S"
jnz fin

escls:
;codigo para cls

fin:


buena suerte con tu sistema
para mas ayuda, informame.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Variables en ensamblador???

Publicado por microprocessor (46 intervenciones) el 01/03/2007 20:52:21
ah, la direccion donde se guardan debe de ser mas pequeña, como 0f000h
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar