Ensamblador - Rutina de copiado

 
Vista:

Rutina de copiado

Publicado por 123celes (2 intervenciones) el 20/10/2008 15:09:49
Hola ¿Que tal?, aquí estoy de nuevo para pedir la ayuda de los sabios... hace poco entre a una página de programación de video juegos:

http://www.geocities.com/SiliconValley/code/2632/

Donde mostraban distintas rutinas en ensamblador, concretamente la que no comprendo es la de Copy64K. La parte que no comprendo es esta: las lineas que dicen

xor di,di
xor si,si
mov cx,16000
db 66h;rep movsw

¿Que trabajo hacen estas lineas, para que sirven?

PD: desde ya muchas gracias por su atención


PROCEDURE Copy64K (SegOrg,SegDes:Word);assembler;
Asm
push ds
mov ax,SegOrg
mov ds,ax
mov ax,SegDes
mov es,ax
xor di,di
xor si,si
mov cx,16000
db 66h;rep movsw
pop ds
End;
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:Rutina de copiado

Publicado por MSH (120 intervenciones) el 28/10/2008 23:20:00
El mismo webmaster lo explica

Un xor aplicado sobre el mismo registro, lo limpia de datos que pueda contener. Es la operación equivalente a

sub di,di
o bien
sub si,si

esta rutina lo que hace es un ciclo for cuyo numero de iteraciones se cargan en el registro cx, y lo que hace es copiar una cadena de palabras (word) a la dirección de
memoria 66h.Por el número, pienso que se trata de algún manejo de gráficos.

Por cierto, la página es interesante. Sobretodo por el ensamblador que aplica en las rutinas.
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:Rutina de copiado

Publicado por 123celes (2 intervenciones) el 29/10/2008 12:36:13
Muchas gracias por tu respuesta me ha servido de mucho
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