MOV
Mover valor en memoria
Sintaxis
MOV <SRC>, <DST>
pudiendo ser:
SRC
una variable o una dirección de memoria (0x00 - 0x7F)DST
una variable o una dirección de memoria (0x00 - 0x7F)
Existen diferentes caminos:
Mover un valor de un lugar de memoria a otro lugar de memoria (utilizando variables)
Dado la siguiente sección de datos:
.data
dw dato 0
dw out 0
Podemos mover el valor de dato
a out
de la siguiente manera:
.ver 1
.data
dw dato 0
dw out 0
.code
MOV dato, out
Microprograma
ESTADO | MICRO-OPERACIÓN |
---|---|
S0 | RI ᐊ (PC), PC ᐊ PC + 1 |
S1 | DECODE |
S2 | B ᐊ (F) |
S10 | (D) ᐊ B |
Mover un valor de un lugar de memoria a otro lugar de memoria (utilizando direcciones)
Dado la siguiente sección de datos:
.data
dw dato 0xF
dw out 0
Dado que al no especificar donde empezará la seccion de .data
se empezará a asignar direcciones después de hacerlo con el código. Dado que el código ocupará un hueco de memoria (16 bits) + un hueco de separación (0x00), se empezará a asignar direcciones a partir de la dirección 0x02
, tal que:
Dirección | Valor |
---|---|
0x02 | dato |
0x03 | out |
Podemos mover el valor de dato
a out
de la siguiente manera:
.ver 1
.data
dw dato 0xF
dw out 0
.fin end
.code
MOV 0x02, 0x03
end:
Microprograma
ESTADO | MICRO-OPERACIÓN |
---|---|
S0 | RI ᐊ (PC), PC ᐊ PC + 1 |
S1 | DECODE |
S2 | B ᐊ (F) |
S10 | (D) ᐊ B |
Comprueba tus conocimientos
Crea un programa que mueva el valor 0x0F a la dirección 0x50