Pascal/Turbo Pascal - Ayuda assembly!!!!!!!!!

 
Vista:

Ayuda assembly!!!!!!!!!

Publicado por MARTIN (51 intervenciones) el 02/02/2002 15:13:01
alguien que me diga por que no anda , por lo que e leido de assembly
lo unico que me toma el pascal para pasar un rotulo string es una declaro en el por jemplo

var
a:string[4];
begin
a:='yoyo';
asm
mov dx,offset a;
mov ax,$09;
int $21;
end;
readkey;
end.
esta es la unica forma en que pascal compila , si no me tira erro cuando intento hacer

yo : jump principal

a db 'yoyo' , '$'

princiapal

ect......
bueno esto no me lo permite y si le pongo la variable "a" me lo toma la cuestion es que cuando corro el programa windows me saca y me dice que se ha realisado una operacion no valida y se serrara , alguien por favor que me diga si tengo un problema en el codigo (que es lo que creo) y como puedo arreglarlo graciass!!!!!! saludos
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:Ayuda assembly!!!!!!!!!

Publicado por Diego Romero (282 intervenciones) el 02/02/2002 18:57:51
Debes tener en cuenta que Pascal almacena un string como una cadena de tantos bytes como su tamaño mas 1, en el byte extra se almacena el largo dinamico de la cadena. Mientras que para usar cadenas en assembler estas deben terminar con el simbolo $ (pesos). Windows es muy celoso de las operaciones no válidas de programas en DOS, por lo que veo de tu codigo de ejemplo lo que ocurre es que la Int 21 servicio $09 nunca encuentra el simbolo de terminación de cadena y trata de asignarse para sí parte de la memoria que no le corresponde y Windows se queja, si estuvieras en DOS probablemente se te colgaría la máquina, la solución sería declarar a como array [1..10] of char y colocar el simbolo $ donde se cortaría la cadena.
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

una preguntita mas!!

Publicado por MARTIN (51 intervenciones) el 02/02/2002 19:18:08
por que cuando limpuio la pantalla tam bien con assmebly , solo la limpia la primera ves???
gracias disculpa
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:una preguntita mas!!

Publicado por MARTIN (51 intervenciones) el 02/02/2002 20:02:14
lo de el array no funciono :( , sera que tengo un micro k6?? o un windows muy malvado?? dime aver que ams se puede hacer , gracias

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:una preguntita mas!!

Publicado por Diego Romero (282 intervenciones) el 02/02/2002 21:20:32
Tal vez no es la interrupción correcta, no sabría decirlo.
Con respecto a lo de limpiar pantalla pues nunca lo probé.
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