19.04.2018 Views

Tutorial de ensamblador

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Incremento y <strong>de</strong>cremento<br />

Habrá momentos en los que, ya sea para manipular un LOOP <strong>de</strong> una<br />

manera especial o hacer un ciclo que funcione <strong>de</strong> una manera personalizada, se<br />

requiera incrementar o <strong>de</strong>crementar el valor <strong>de</strong> un contador, es <strong>de</strong>cir, una variable<br />

que lleve la cuenta <strong>de</strong> algo.<br />

Para <strong>de</strong>crementar un valor se usa:<br />

Y para incrementar se emplea:<br />

DEC variable<br />

INC variable<br />

Ambos son equivalentes <strong>de</strong> variable++ y variable-- <strong>de</strong> los lenguajes <strong>de</strong><br />

alto nivel.<br />

Mover datos<br />

Resultaría imposible manipular las variables sin mover datos entre ellas.<br />

Para esto se usa:<br />

MOV <strong>de</strong>stino, fuente<br />

Sin embargo, como muchos comandos <strong>de</strong> Ensamblador, cuenta con<br />

variables:<br />

<br />

<br />

<br />

<br />

<br />

MOVS.- Mueve a DI lo que hay en SI<br />

LODS.- Lleva lo que hay en SI a AL<br />

LODSB.- Para datos <strong>de</strong> tamaño byte<br />

LODSW.- Para datos <strong>de</strong> tamaño word<br />

LAHF.- Para mover a AH el estado <strong>de</strong> las ban<strong>de</strong>ras para saber su estado<br />

Posicionarse en un dato<br />

Por otra parte, el mover datos no sólo sirve para asignar datos a variables o<br />

realizar copias temporales, sino también para posicionarse en un dato, lo cual<br />

pue<strong>de</strong> hacerse <strong>de</strong> dos formas:<br />

Modo 1:<br />

Modo 2:<br />

MOV SI, OFFSET Variable<br />

LEA SI, Variable<br />

25

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!