Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
UNID A D II ELEMENTOS DEL LENGU A JE 2.1 INSTRUCCIONES LINEALES. 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5
2.2
SALTOS. 2.2.1 2.2.2
2.3
Movimientos. Pila. Matemáticos. Ajustes. Comparación.
Incondicionales. Condicionales.
TIPOS DE CICLOS. Sign up to vote on this title
Useful Not useful 2.4 OPERADORES LÓGICOS.
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
2.1 INSTRUCCIONES LINEALES. 2.1.1 Movimientos. MOV (transferencia). Sintaxis:
MOV destino, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - - -
La instrucción de de transferencia transferencia de datos por excelencia excelencia es MOV. Transfiere Transfiere datos d longitud byte o palabra del operando origen al operando destino. Pueden ser operand origen y operando destino cualquier registro o posición de memoria direccionada de la formas ya vistas, con la única condición de que origen y destino tengan la mism dimensión.
Con la instrucción MOV diremos que se pueden realizar todo tipo de movimiento teniendo en cuenta las siguientes restricciones:
1. No se puede realizar una una transferencia transferencia de datos datos entre dos posiciones posiciones de memor memor directamente, por esta razón, siempre que queramos efectuarlas tendremos qu utilizar un registro intermedio que haga de puente. Por ejemplo, para hacer la operación DATO1
← DATO2
la instrucción MOV MOV DATO DATO2, 2, DATO1 DATO1 sería incorrecta. Lo que sí sería correcto ser utilizar el registro DX, u otro, como puente y hacer: Sign up to vote on this title
Useful MOV MOV DX, DATO1 DATO1 MOV MOV DATO2, DATO2, DX
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
MOV hacia un registro de segmento, las interrupciones quedan inhibidas hasta despu de ejecutarse la siguiente instrucción (8086/88 de 1983 y procesadores posteriores). Ejemplos:
MOV MOV MOV
DS, AX BX, ES:[SI] SI, OFFSET OFFSET DATO DATO
En el último ejemplo, no se coloca en SI el valor de la variable dato sino su dirección memoria o desplazamiento respecto al segmento de datos. En otras palabras, SI es u puntero a DATO pero no es DATO. DATO. En el próximo capítulo se verá cómo se declaran la variables.
XCHG (intercambiar). Sintaxis:
XCHG destino, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - - -
Una instrucción útil pero no imprescindible es XCHG. XCHG. Intercam Intercambia bia el conte contenido nido de l operandos origen y destino. No pueden utilizarse registros de segmentos com operandos.
Por ejemplo, si queremos intercambiar los contenidos de los registros AX y BX, podemos hacer: MOV AUX, AX MOV AX, BX MOV BX, AUX en donde AUX donde AUX es es una variable auxiliar que hace de puente, o simplemente utilizar: XCHG AX, BX Otro ejemplo:
Sign up to vote on this title
Useful
XCHG BL, CH XCHG MEM_PAL, BX
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Download
Magazines
News
Join
Historia de la Graficación por
1
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
La instrucción XLAT tabla carga en el registro AL el contenido de la posición [BX][AL], e donde el registro BX ha de apuntar al comienzo de una tabla. Dicho de otra manera, A hace de índice de la tabla y de almacén destino del contenido de la tabla. Por ejemplo, el siguiente programa: DATOS SEGMENT TABL TABLA A DB 2, 3, 5, 8, 16, 23 DATOS ENDS
CODIGO SEGMENT MOVE BX, OFFSET TABLA ;Inicializa BX con la dirección donde comienza la tabla MOVE AL, 5 XLAT TABLA CODIGO ENDS
hace que al final el contenido de AL sea 16 ya que es el quinto elemento de la tabla y A antes de XLAT TABLA contenía el valor 5. Otro ejemplo: MOV MOV MOV XLAT
BX, OFFSET TABLA AL, AL, 4 TABLA
Para finalizar con las instrucciones de transferencia veremos un grupo de tre instrucciones:
LEA o cargar dirección dirección efectiva LDS o cargar el puntero en DS LES o cargar el puntero en ES denominadas de transferencia de direcciones. Sign up to vote on this title
LEA (carga dirección efectiva).
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
LEA
Sheet Music
DX, DATOS [SI]
En el ejemplo de arriba, el valor depositado en DX es el OFFSET de la etiqueta DATO más el registro SI. Esa sola instrucción es equivalente a estas dos: MOV ADD
DX, OFFSET DATOS DX, SI
LDS (carga un puntero utilizando DS). Sintaxis:
LDS destino, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - - -
Traslada un puntero de 32 bits (dirección completa de memoria compuesta po segmento y desplazamiento), al destino indicado y a DS. A partir de la dirección indicad por el operando origen, el procesador toma 4 bytes de la memoria: con los dos primero forma una palabra que deposita en destino y, con los otros dos, otra en DS. Ejemplo: PUNT LDS
DD
12345678H
SI, PUNT
Como resultado de esta instrucción, en DS:SI se hace referencia a la posición de memor 1234h:5678h; 'DD' sirve para definir una variable larga de 4 bytes (denominada PUNT el ejemplo).
LES (carga un puntero utilizando ES). Sign up to vote on this title
Sintaxis:
LES destino, origen
Useful
Not useful
Esta instrucción es análoga a LDS, pero utilizando ES en lugar de DS.
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
Transfiere datos desde el puerto indicado hasta el registro AL o AX, dependiendo de longitud byte o palabra respectivamente. El puerto puede especificarse mediante un constante (0 a 255) o a través del valor contenido en DX (0 a 65535). Ejemplo: IN IN
AX, 0FH AL, DX
OUT (salida). Sintaxis: Indicadores:
OUT puerto, acumulador OF DF IF TF SF ZF AF PF CF - - - - - - - -
Transfiere un byte o palabra del registro AL o AX a un puerto de salida. El puerto pued especificarse con con un valor fijo entre 0 y 255 ó a través del valor contenido contenido en el regist DX (de 0 a 65535). Ejemplo: OUT OUT
12H, AX DX, AL
Sign up to vote on this title
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
2.1.2 Pila. Sheet Music
POP (Extraer de la pila). Sintaxis:
POP destino
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - - -
Transfiere el elemento palabra que se encuentra en lo alto de la pila (apuntado por SP) operando destino que a de ser tipo palabra, e incrementa en dos el registro SP. L instrucción POP CS, poco útil, no funciona correctamente en los 286 y superiores. Ejemplos: POP POP
AX PEPE
PUSH (Introduce en la pila). Sintaxis:
PUSH origen
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - - -
Decrementa el puntero de pila (SP) en 2 y luego transfiere la palabra especificada en operando origen a la cima de la pila. El registro CS aquí sí se puede especificar com origen, al contrario de lo que afirman algunas publicaciones. Ejemplo: PUSH
CS
POPF (extrae los indicadores de la pila). Sign up to vote on this title
Sintaxis:
POPF
Indicadores:
OF DF IF TF SF ZF AF PF CF x x x x x x x x x
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
2.1.3 Matemáticos. S U M A S. AAA (Ajuste ASCII para la suma) . Sintaxis:
AAA
Indicadores:
OF DF IF TF SF ZF AF PF CF ? - - - ? ? x ? x
Convierte el contenido del registro AL en un número BCD no empaquetado. Si los cuatr bits menos significativos significativos de AL son mayores que 9 ó si el indicador AF está a 1, se sum 6 a AL, 1 a AH, AF se pone a 1, CF se iguala a AF y AL pone sus cuatro bits má significativos a 0. Ejemplo:
ADD ADD AAA
AL, AL, BL
En el ejemplo, tras la suma de dos números BCD no empaquetados colocados en AL BL, el resultado (por medio de AAA) sigue siendo un número BCD no empaquetado.
ADC (Suma con acarreo). Sintaxis:
ADC destino, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF x - x x x x x
up to vote thisrreo title (0 ó 1) y Suma los operandos operandos origen, destino destino y el valor del Sign indicador deonacarreo aca Useful normalmente resultado lo almacena en el operando destino. Se utiliza Not useful para sum números grandes, de más de 16 bits, en varios pasos, considerando lo que nos llevam (el acarreo) de la suma anterior.
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
Suma los operandos origen y destino almacenando el resultado en el operando destin Se activa el acarreo si se desborda el registro destino durante la suma. Ejemplos: ADD AX, BX ADD CL, DH
DAA (Ajuste decimal para la suma). Sintaxis:
DAA
Indicadores:
OF DF IF TF SF ZF AF PF CF ? - x x x x x
Convierte el contenido del registro AL en un par de valores BCD: si los cuatro bits meno significativos de AL son un número mayor que 9, el indicador AF se pone a 1 y se suma a AL. De igual forma, si los cuatro bits más significativos de AL tras la operación anterio son un número mayor que 9, el indicador CF se pone a 1 y se suma 60h a AL. Ejemplo: ADD DAA
AL, CL
En el ejemplo anterior, si AL y CL contenían dos números BCD empaquetados, DAA hac que el resultado de la suma (en AL) siga siendo también un BCD empaquetado.
INC (Incrementar). Sintaxis:
INC destino
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - x x x x Sign - up to vote on this title
Useful
Not useful
Incrementa el operando destino. El operando destino puede ser byte o palabra. Obsérvese que esta instrucción no modifica el bit de acarreo (CF) y no es posible detecta un desbordamiento por este procedimiento (utilícese ZF).
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
R E S T A S. AAS (Ajuste ASCII para la resta). Sintaxis:
AAS
Indicadores:
OF DF IF TF SF ZF AF PF CF ? - - ? ? x ? x
Convierte el resultado de la sustracción de dos operandos BCD no empaquetados pa que siga siendo un número BCD no empaquetado. Si el nibble inferior de AL tiene u valor mayor que 9, de AL se resta 6, se decrementa AH, AF se pone a 1 y CF se iguala AF. El resultado se guarda en AL con los bits de 4 a 7 puestos a 0. Ejemplo: SUB AAS
AL, AL, BL
En el ejemplo, tras la resta de dos números BCD no empaquetados colocados en AL BL, el resultado (por medio de AAS) sigue siendo un número BCD no empaquetado.
CMP (Comparación). Sintaxis:
CMP destino, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - x x x x x
Resta origen de destino sin retornar ningún resultado. Los operandos quedan inalterado paro los indicadores pueden ser consultados mediante instrucciones de bifurcació condicional. Los operandos pueden ser de tipo byte o palabra pero ambos dela mism Sign up to vote on this title dimensión.
Ejemplo: CMP
BX, MEM_PAL
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
AF es 1, a AL se le resta 6, AF se pone a 1. Si el nibble mas significativo es mayor que ó CF está a 1, entonces se resta resta 60h a AL y se activa después CF. Ejemplo: SUB DAS
AL, BL
En el ejemplo anterior, si AL y BL contenían dos números BCD empaquetados, DAS hac que el resultado de la resta (en AL) siga siendo también un BCD empaquetad
DEC (Decrementar). Sintaxis:
DEC destino
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - x x x x -
Resta una unidad del operando destino. El operando puede ser byte o palabra. Obsérves que esta instrucción no modifica el bit de acarreo (CF) y no es posible detectar u desbordamiento por este procedimiento (utilícese ZF). Ejemplo: DEC DEC
AX MEM_BYTE
NEG (Negación). Sintaxis:
NEG destino
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - x x x x x Sign up to vote on this title
Calcula el valor negativo en complemento a dos del operando devuelve el resultado e Not useful Useful y el mismo operando. Ejemplo:
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
de más de 16 bits, en varios pasos, considerando lo que nos llevamos (el acarreo) de resta anterior. Ejemplo: SBB SBB
AX, AX CH, DH
SUB (Resta). Sintaxis:
SUB destino, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - x x x x x
Resta el operando destino al operando origen, colocando el resultado en el operando destino. Los operandos pueden tener o no signo, siendo necesario que sean del mismo tipo, byte o palabra. Ejemplos: SUB SUB
AL, BL DX, DX
M U L T I P L I C A C I O N E S.
AAM (Ajuste ASCII para la multiplicación). Sintaxis:
AAM
Indicadores:
OF DF IF TF SF ZF AF PF Sign CF up to vote on this title ? - - x x ? x ?Useful Not useful
Corrige el resultado en AX del producto de dos números BCD no empaquetado convirtiéndolo en un valor BCD también no empaquetado. En AH sitúa el cociente d
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
IMUL (multiplicación entera con signo).
Sintaxis: IMUL origen (origen ( origen no puede ser operando inmediato en 8086, sí en 286 Indicadores: Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - ? ? ? ? x
Multiplica un operando origen con signo de longitud byte o palabra por AL o A respectivamente. Si origen es un byte el resultado se guarda en AH (byte má significativo) y en AL (menos significativo), si origen es una palabra el resultado devuelto en DX (parte alta) y AX (parte baja). Si las mitades más significativas so distintas de cero, independientemente del signo, CF y OF son activados. Ejemplo: IMUL IMUL
BX CH
MUL (multiplicación sin signo). Sintaxis:
MUL origen (origen no puede ser operando inmediato)
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - ? ? ? ? x
Multiplica el contenido sin signo del acumulador por el operando origen. Si operando destino es un byte el acumulador es AL guardando el resultado en AH y AL, el contenido de AH es distinto de 0 activa los indicadores CF y OF. Cuando el operand origen es de longitud palabra el acumulador es AX quedando el resultado sobre DX y A si el valor de DX es distinto de cero los indicadores CF y OF se activan. Ejemplo: MUL MUL MUL
BYTE PTR DS: [DI] DX CL
Sign up to vote on this title
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks Magazines
News
Save
Embed
Share
Print
Download
Join
Historia de la Graficación por
1
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
esta en el registro AX. La operación ignora y borra cualquier información que pueda esta en el AH.
Palabra por palabra.
Para multiplicar dos números de una palabra, el multiplicando esta en el registro AX y el multiplicador es una palabra en memoria o en otro registro. Para la instrucción MUL DX, operación multiplica el contenido del AX por el contenido del DX. El producto generado e una palabra doble que necesita dos registros: la parte de orden alto (mas a la izquierda) en el DX y la parte de orden bajo (mas a la derecha) en el AX. La operación ignora y borr cualquier información que puede estar en el DX.
Palabra doble por palabra doble. Sign up to vote on this title
Para multiplicar dos números de palabras dobles, el multiplicando esta en el registro EAX Useful Not useful y el multiplicador es una palabra doble en memoria o en otro registro. El producto es generado en el par EDX:EAX. La operación ignora y borra cualquier información que ya este en el EDX.
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Sign In
Upload
Join
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
INSTRUCCION
MULTIPLICADOR
MUL CL MUL BX MUL EBX
byte palabra palabra doble
MULTIPLICANDO
PRODUCTO
Sheet Music
AL AX EAX
AX DX:AX EDX:EAX
En los ejemplos siguientes, los multiplicadores están definidos en memoria: BYTE1 WORD1 DWORD1
DB DW DD
? ? ?
OPERACION
MULTIPLICADOR
MULTIPLIANDO
MUL BYTE1
BYTE1
AL
PRODUCTO AX
MUL WORD1
WORD1
AX
DX:AX
MUL DWORD1
DWORD1
EAX
EDX:EAX
DIVISIONES. AAD (Ajuste ASCII para la división). Sintaxis:
AAD
Indicadores:
OF DF IF TF SF ZF AF PF CF ? - - - x x ? x ?
Convierte dos números BCD no empaquetados contenidos en AH y AL en un dividend de un byte que queda almacenado en AL. Tras la Sign operación AH queda up to vote on this title a cero. Es instrucción es necesaria ANTES de la operación de dividir, al contrario AAM. Useful Notque useful
Ejemplo: AAD
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
Divide, sin considerar el signo, un número contenido en el acumulador y su extensión (AH AL si el operando es de tipo byte o DX, AX si el operando es palabra) entre el operand fuente. El cociente se guarda en AL o AX y el resto en AH o DX según el operando se byte o palabra respectivamente. DX o AH deben ser cero antes de la operación. Cuand el cociente es mayor que el resultado máximo que puede almacenar, cociente y res quedan indefinidos produciéndose una interrupción 0. En caso de que las partes má significativas del cociente tengan un valor distinto de cero se activan los indicadores CF OF. Ejemplo: DIV DIV
BL MEM_PAL
IDIV (División entera). Sintaxis:
IDIV origen ( origen no puede ser operando inmediato).
Indicadores:
OF DF IF TF SF ZF AF PF CF ? - - - ? ? ? ? ?
Divide, considerando el signo, un número contenido en el acumulador y su extensió entre el operando fuente. El cociente se almacena en AL o AX según el operando se byte o palabra y de igual manera el resto en AH o DX. DX o AH deben ser cero antes d la operación. Cuando el cociente es positivo y superior al valor máximo que pued almacenarse (7fh (7fh ó 7fffh), o cuando el cociente es negativo e inferior al valor mínimo mínimo qu puede almacenarse (81h u 8001h) entonces cociente y resto quedan indefinido generándose una interrupción 0, lo que también sucede si el divisor es 0. Ejemplo: IDIV IDIV
BL BX
palabra Las operaciones de división básicas son byte entre byte, palabra y Signpalabra up to voteentre on this title dobles entre palabra dobles.
Palabra entre palabra
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Download
Magazines
News
Join
Historia de la Graficación por
1
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Palabra doble entre palabra.
Sheet Music
Para esta operación, el dividendo esta en el par DX:AX y el divisor es una palabra e memoria o en otro registro. Después de la división, el residuo esta en el DX y el cocien esta en el AX. El cociente de una palabra permite para datos sin signo un máximo de +32 767 (FFFFH) y con signo +16, 383 (7FFFH). Tenemos:
Palabra cuádruple entre palabra doble.
Al dividir una palabra cuádruple entre una palabra doble, el dividendo esta en el p EDX:EAX y el divisor esta en una palabra doble en memoria o en otro registro. Despué de la división, el residuo esta en el EDX y el cociente en el AEX.
En los ejemplos siguientes, de DIV, los divisores están en un registro, que determina tipo de operación:
OPERACION
DIVISOR
DIV CL DIV CX DIV EBX
byte palabra palabra doble
DIVIDENDO AX DX:AX EDX:EAX
CSign OCup IENtoTvote E on this RES IDUO title L AH AUseful Not useful AX EAX
DX EDX
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks Magazines
News
Save
Embed
Share
Print
Download
Join
Historia de la Graficación por
1
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Ejemplo de programa con instrucciones aritméticas.
Sheet Music
TITL TITLE E
P13ADD ADD (CO (COM) Operac racion iones ADD ADD y SUB SUB .MODEL SMALL .CODE ORG 100H BEGIN: JMP SHORT MAIN ;---------------------------------------------------------------------------BYTEA DB 64H ;DATOS BYTEB DB 40H BYTEC DB 16H WORDA DW 4000H WORDB DW 2000H WORDC DW 1000H ;---------------------------------------------------------------------------MAIN PROC NEAR ;Procedimiento principal: CALL B10ADD ;Llama a la rutina ADD CALL C10SUB ;Llama a la rutina SUB INT 21H MAIN ENDP ; Ejemplos de suma (ADD) de bytes: ;---------------------------------------------------------------------------B10A B10ADD DD PROC PROC MOV AL, BYTEA MOV BL, BYTEB ADD AL, BL ;registro a registro ADD AL, BYTEC ;memoria a registro ADD BYTEA, BL ;registro a memoria ADD BL, 10H ;inmediato a registro ADD BYTEA, 25H ;inmediato a memoria RET B10ADD B10ADD ENDP ENDP ; Ejemplos de resta (SUB) de palabras: Sign up to vote on this title ;--------------------------------------------------------- Useful Not useful C10SUB C10SUB PROC PROC MOV AX, WORDA MOV BX, WORDB
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
2.1.4 A justes. Sheet Music
CBW (Conversión de byte en palabra). Sintaxis: Indicadores:
CBW OF DF IF TF SF ZF AF PF CF - - - - - -
Copia el bit 7 del registro AL en todos los bits del registro AH, es decir, expande el sign de AL a AX como paso previo a una operación de 16 bits.
CWD (conversión de palabra a doble palabra). Sintaxis:
CWD
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - -
Expande el signo del registro AX sobre el registro DX, copiando el bit más significativo d AH en todo DX.
Sign up to vote on this title
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
2.1.5 Compar ación. Sheet Music
CMP (Comparación). Sintaxis:
CMP destino, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - x x x x x
Resta origen de destino sin retornar ningún resultado. Los operandos quedan inalterado paro los indicadores pueden ser consultados mediante instrucciones de bifurcació condicional. Los operandos pueden ser de tipo byte o palabra pero ambos de la mism dimensión. Ejemplo: CMP CMP
BX, MEM_PAL CH, CL
CMPS/CMPSB/CMPSW (Compara cadenas). Sintaxis:
CMPS CMPS cade cadena na_d _des esti tino no,, cad caden ena_ a_or orig igen en CMPSB (bytes) CMPSW (palabras)
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - x x x x x
Compara dos cadenas restando al origen el destino. Ninguno de los operandos se altera pero los indicadores resultan afectados. La cadena origen se direcciona con registro S sobre el segmento de datos DS y la cadena destino se direcciona con el registroDI sobr Sign up to vote on this title el segmento extra ES. Los registros DI y SI se autoincrementan o autodecrementan segú el valor del indicador DF (véanse CLD y STD) en unao Useful dos unidades, dependiendo de Not useful se trabaja con bytes o con palabras. Cadena origen y cadena destino son dos operand redundantes que sólo indican el tipo del dato (byte o palabra) a comparar, es más cómod
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Sign In
Upload
Join
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
1
Download
Magazines
News
Historia de la Graficación por
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
A continuación se muestra la codificación del uso del CMPS y sus derivaciones:
Sheet Music
TITLE
P12CMPS P12CMPST T (COM) (COM) Uso de CMP CMPS S para para opera operacion ciones es en cadenas cadenas .MODEL
SMALL
.CODE ORG 100H BEGIN: JM J MP SHORT MAIN ;------------------------------------------------------------------------------------NOM1 DB 'Assemblers' ;Elementos de datos NOM2 DB 'Assemblers' NOM3 DB 10 DUP (' ') ;------------------------------------------------------------------------------------MAIN
PROC NEAR CLD ;Izquierda a derecha MOV CX, 10 LEA DI, NOM2 LEA SI, NOM1 REPE CMPSB JNE G20 MOV BH,01
;Procedimiento principal ;Iniciar para 10 bytes
;Compare NOM1:NOM2 ;No es igual, saltarlo ;Igual, fijar BH
G20: MOV LEA LEA REPE JE MOV
CX, 10 DI, NOM3 SI, NOM2 CMPSB G30 BL, 02
G30: MOV INT MAIN ENDP
AX, 4C00H 21H
;Iniciar para 10 bytes
;Compare NOM2:NOM3 ;Igual, salir ;No es igual, fijar BL
Sign up to vote on this title
;Salir a DOS Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
2.2 SALTOS. 2.2.1 Incondicionales. CALL (Llamada a subrutina). Sintaxis:
CALL destino
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - -
Transfiere el control del programa a un procedimiento, salvando previamente en pila la dirección de la instrucción siguiente, para poder volver a ella una ve ejecutado el procedimiento. El procedimiento puede estar en el mismo segmen (tipo NEAR) o en otro segmento (tipo FAR). A su vez la llamada puede ser direct a una etiqueta (especificando el tipo de llamada NEAR -por defecto- o FAR) indirecta, indicando la dirección donde se encuentra el puntero. Según la llamad sea cercana o lejana, se almacena en la pila una dirección de retorno de 16 bits dos palabras de 16 bits indicando en este último caso tanto el offset (IP) como segmento (CS) a donde volver. Ejemplos: CALL
PROC1
DIR CALL
DD 0F000E987H DWORD PTR DIR
En el segundo ejemplo, la variable dir almacena la dirección a donde saltar. D esta última manera -conociendo su dirección- puede llamarse también a un vecto de interrupción, guardando previamente los flags en la pila (PUSHF), porque rutina de interrupción retornará (con IRET en vez de con RETF) sacándolo Sign up to vote on this title
JMP (Salto).
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
dos pasadas colocan allí donde es posible un salto corto, para economiza memoria, sin que el programador tenga que ocuparse de poner short . Si el sa de dos bytes, que permite desplazamientos de 64 Kb en la memoria sigue siend insuficiente, se puede indicar con far que far que es largo (salto a otro segmento). Ejemplos: JMP JMP
ETIQUETA FAR PTR ETIQUETA
RET / RETF (Retorno de subrutina). Sintaxis: Indicadores:
RET [valor] o RETF [valor] OF DF IF TF SF ZF AF PF CF - - - - - - - - -
Retorna de un procedimiento extrayendo de la pila la dirección de la siguient dirección. Se extraerá el registro de segmento y el desplazamiento en u procedimiento de tipo FAR (dos palabras) y solo el desplazamiento en u procedimiento NEAR (una palabra). si esta instrucción es colocada dentro de u bloque PROC-ENDP (como se verá en el siguiente capítulo) el ensamblador sab el tipo de retorno que debe hacer, según el procedimiento sea NEAR o FAR. E cualquier caso, se puede forzar que el retorno sea de tipo FAR con la instrucció RETF. Valor , si es indicado permite sumar una cantidad valor en valor en bytes a SP ante ant de retornar, lo que es frecuente en el código generado por los compiladores par retornar de una función con parámetros. También se puede retornar de un interrupción con RETF 2, para que devuelva el registro de estado sin restaurar de la pila.
TITLE TITLE
P08JUM P08JUMP P (COM (COM)) Uso Uso de JMP JMP para para iter iterar ar
.MODEL .CODE
SMALL
Sign up to vote on this title
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Download
Magazines
News
Join
Historia de la Graficación por
1
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
2.2.2 Condicionales. Sheet Music
Las siguientes instrucciones son de transferencia condicional de control a instrucción que se encuentra en la posición IP+desplazamiento (desplazamien comprendido entre -128 y +127) si se cumple la condición. Algunas condiciones s pueden denotar de varias maneras. Todos los saltos son cortos y si no alcan hay que apañárselas como sea. En negrita se realzan las condiciones má empleadas. Donde interviene SF se consideran con signo los operando implicados en la última comparación u operación aritmetico-lógica, y se indican e la tabla como '±' (-128 a +127 ó -32768 a +32767); +32767); en los demás casos, casos, indicado como '+', se consideran consideran sin sin signo (0 a 255 255 ó 0 a 65535): Salto si mayor (above), si no menor o igual igua l (not below or equal), si CF=0 y ZF=0. Salto si mayor o igual (above or equal), si no menor (not below), si CF=0. JAE/JNB Salto si menor (below), si no superior ni igual (not above abov e or equal), si JB/JNAE/JC acarreo, si CF=1. Salto si menor o igual (not below or equal), si no mayor (not above), si JBE/JNA CF=1 ó ZF=1. Salto si CX=0. JCXZ Salto si igual (equal), si cero (zero), si ZF=1. JE/JZ
JA/JNBE
JG/JNLE JGE/JNL JL/JNGE
Salto si mayor (greater), si no menor ni igual (not less or equal), si ZF=0 y SF=0. Salto si mayor o igual (greater or equal), si no menor (not less), si SF=0. Salto si menor (less), si no mayor ni igual (not greater or equal), si SF<>OF.
JLE/JNG
Salto si menor o igual (less or equal), si no mayor (not greater), si ZF=0 y SF<>OF.
JNC JNE/JNZ
Salto si no acarreo, si CF=0. Salto si no igual, si no cero, si ZF=0.
JNO JNP/JPO JNS JO
Salto si no desbordamiento, si OF=0.
Sign up to vote on this title Salto si no paridad, si paridad impar, si PF=0. Useful Not useful Salto si no signo, si positivo, si SF=0. Salto si desbordamiento, si OF=1.
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
2.3 TIPOS DE CICLOS. LOOP (bucle). Sintaxis: Indicadores:
LOOP desplazamiento OF DF IF TF SF ZF AF PF CF - - - - - - -
Decrementa el registro contador CX; si CX es cero, ejecuta la siguiente instrucción, e caso contrario transfiere el control a la dirección resultante de sumar a IP desplazamiento. El desplazamiento debe estar comprendido entre -128 y +127. Ejemplo: MOV CX,10 BUCLE: ....... ....... LOOP BUCLE Con las mismas características que la instrucción anterior:
LOOPE/LOOPZ Bucle si igual, si cero. Z=1 y CX<>0 LOOPNE/LOOPN Z Bucle si no igual, si no cero. Z=0 y CX<>0
TITLE TITLE .MODEL
P08LOO P08LOOP P (COM (COM)) Ilust Ilustrac ración ión de LOOP LOOP SMALL
.CODE
MAIN
Sign up to vote on this title
ORG PROC MOV
100H NEAR AX 01
Useful
Iniciación de AX
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
2.4 OPERADORES LÓGICOS. AND (y lógico). Sintaxis:
AND destino, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF 0 - - x x ? x 0
Realiza una operación de Y lógico entre el operando origen y destino quedando resultado en el destino. Son válidos operandos byte o palabra, pero ambos del mism tipo. Ejemplos: AND AND AX, AX, BX AND BL, BYTE PTR ES:[SI+10H] ES:[SI+10H]
NOT (No lógico). Sintaxis:
NOT destino
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - - -
Realiza el complemento a uno del operando destino, invirtiendo cada uno de sus bits. Lo indicadores no resultan afectados. Ejemplo: NOT
AX
Sign up to vote on this title
OR (O lógico).
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
TEST (Comparación lógica).
Sheet Music
Sintaxis: Indicadores:
TEST destino, origen OF DF IF TF SF ZF AF PF CF 0 - - x x ? x 0
Realiza una operación Y lógica entre los dos operandos pero sin almacenar el resultad Los indicadores son afectados con la operación. Ejemplo: TEST
AL,BH
XOR (O exclusivo). Sintaxis:
XOR destino, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF 0 - - - x x ? x 0
Operación OR exclusivo a nivel de bits entre los operandos origen y destin almacenándose el resultado en este último. Ejemplo:
XOR XOR
DI, DI, AX
Sign up to vote on this title
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
2.5 DESPLAZAMIENTOS. 2.5.1 Lineal. SAL/SHL (Desplazamiento aritmético a la izquierda). Sintaxis:
SAL/SHL destino, contador
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - x x ? x x
Desplaza a la izquierda los bits del operando el número de bits especificado en segundo operando que debe ser CL si es mayor que 1 los bits desplazados.
SAR (Desplazamiento aritmético a la derecha). Sintaxis:
SAR destino, contador
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - x x ? x x
Desplaza a la derecha los bits del operando destino el número de bits especificado en segundo operando. Los bits de la izquierda se rellenan con el bit de signo del prime operando. Si el número de bits a desplazar es 1 se puede especificar directamente, si e mayor se especifica a través de CL. Sign up to vote on this title
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Download
Magazines
News
Join
Historia de la Graficación por
1
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
Desplaza a la derecha los bits del operando destino el número de los bits especificado en el segundo operando. Los bits de la izquierda se llena con cero. Si el número de bits desplazar es 1 se puede especificar directamente en el caso en que no ocurra se pone e valor en CL:
Ejemplos: SHR SHR SHR SHR
AX, AX, CL CL, CL, 1
Sign up to vote on this title
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
2.5.2 Cir cular . Sheet Music
RCL (Rotación a la izquierda con acarreo). Sintaxis:
RCL destino, contador
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - - - - x
Rotar a la izquierda los bits del operando destino junto con el indicador de acarreo CF número de bits especificado en el segundo operando. Si el número de bits a desplazar e 1, se puede especificar directamente, en caso contrario el valor debe cargarse en CL especificar CL como segundo operando. No es conveniente que CL sea mayor de 7, e bytes; ó 15, en palabras. palabras.
Ejemplos: RCL RCL RCL RCL RCL RCL
AX, AX, 1 AL, AL, CL DI, DI, 1
RCR (Rotación a la derecha con acarreo). Sintaxis:
RCR destino, contador
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - - - - x
vote on thisde titleacarreo CF Rotar a la derecha los bits del operando destino juntoSign conupelto indicador número de bits especificado en el segundo operando.SiUseful el número de useful bits es 1 se pued Not especificar directamente; directamente; en caso contrario su valor debe cargarse en CL y especificar C como segundo operando:
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
ROL (Rotación a la izquierda).
Sheet Music
Sintaxis:
ROL destino, contador
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - - - - x
Rota a la izquierda los bits del operando destino el número de bits especificado en segundo operando, operando, que puede ser 1 ó CL previamente previamente cargado con el valor del núme de veces.
Ejemplos: ROL ROL ROL ROL
DX, DX, CL AH, AH, 1
ROR (Rotación a la derecha). Sintaxis:
ROR destino, contador
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - - - x
Rota a la derecha los bits del operando destino el número de bits especificado en segundo operando. Si el número de bits es 1 se puede poner directamente, en cas contrario debe ponerse a través de CL.
Sign up to vote on this title
Ejemplos: ROR ROR
CL, CL, 1
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
2.6 PROCESOS DE CONTROL. NOP (Operación nula). Sintaxis:
NOP
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - -
Realiza una operación nula, es decir, el microprocesador decodifica la instrucción y pas a la siguiente. Realmente se trata de la instrucción XCHG AX,AX.
ESC (Salida a un coprocesador). Sintaxis:
ESC código_operación, origen
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - - -
Se utiliza en combinación con procesadores externos, tales como los coprocesadores d coma flotante o de E/S, y abre al dispositivo externo el acceso a las direcciones operandos requeridos. Al mnemónico ESC le siguen los códigos de operación apropiado para el coprocesador así como la instrucción y la dirección del operando necesario. Ejemplo: ESC
21, 21, AX
HLT (Parada hasta interrupción o reset). Sign up to vote on this title
Sintaxis:
HLT
Indicadores:
OF DF IF TF SF ZF AF PF CF - - -
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
LOCK (Bloquea los buses). Sintaxis:
LOCK
Indicadores:
OF DF IF TF SF ZF AF PF CF -
-
-
-
-
-
-
-
-
Es una instrucción que se utiliza en aplicaciones de recursos compartidos par asegurar que no accede simultáneamente a la memoria más de un procesado Cuando una instrucción va precedida por LOCK, el procesador bloque inmediatamente el bus, introduciendo una señal por la patilla LOCK.
WAIT (Espera). Sintaxis:
WAIT
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - - -
Provoca la espera del procesador hasta que se detecta una señal en la patilla TES Ocurre, por ejemplo, cuando el coprocesador ha terminado una operación e indica s finalización. Suele preceder a ESC para sincronizar las acciones del procesador coprocesador.
Sign up to vote on this title
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
2.6.1 Bander as. LAHF (Carga AH con los indicadores). Sintaxis:
LAHF
Indicadores:
OF DF IF TF SF ZF AF PF CF - - -
Carga los bits 7, 6, 4, 2 y 0 del registro AH con el contenido de los indicadores SF ZF, AF, PF Y CF respectivamente. El contenido de los demás bits queda s definir.
SAHF (copia AH en los indicadores) Sintaxis:
SAHF
Indicadores:
OF DF IF TF SF ZF AF PF CF - - x x x x x
Transfiere el contenido de los bits 7, 6, 4, 2 y 0 a los indicadores SF, ZF, AF, PF y C respectivamente.
CLC (Baja el indicador de acarreo). Sintaxis: Indicadores:
CLC OF DF IF TF SF ZF AF PF CF - - - - - Sign 0 up to vote on this title
Useful
Borra el indicador de acarreo (CF) sin afectar a ninguno otro.
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
CLI (Baja indicador de interrupción). Sintaxis:
CLI
Indicadores:
OF DF IF TF SF ZF AF PF CF - - 0 - - - - -
Borra el indicador de activación de interrupciones IF, lo que desactiva las interrupcione enmascarables. Es muy conveniente hacer esto antes de modificar la pareja SS:SP en lo 8086/88 anteriores a 1983 (véase comentario en la instrucción MOV), o antes de cambia un vector de interrupción sin el apoyo del DOS. Generalmente las interrupciones sólo s inhiben por breves instantes en momentos críticos. Véase también STI.
CMC (Complementa el indicador de acarreo). Sintaxis:
CMC
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - - x
Complementa el indicador de acarreo CF invirtiendo su estado.
STC (Pone a uno el indicador de acarreo). Sintaxis:
STC
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - - - - 1
Signotro up to vote on this title Pone a 1 el indicador de acarreo CF sin afectar a ningún indicador.
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Sign In
Upload
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
STI (Pone a uno el indicador de interrupción).
Sheet Music
Sintaxis:
STI
Indicadores:
OF DF IF TF SF ZF AF PF CF - - 1 - - - - -
Pone a 1 la bandera de desactivación de interrupciones IF y activa las interrupcione enmascarables. Una interrupción pendiente no es reconocida, sin embargo, has después de ejecutar la instrucción que sigue a STI. Véase también CLI.
INT (Interrupción). Sintaxis:
INT n (0 <= n <= 255)
Indicadores:
OF DF IF TF SF ZF AF PF CF - - 0 0 - - -
Inicializa un procedimiento de interrupción de un tipo indicado en la instrucción. En la pi se introduce al llamar a una interrupción la dirección de retorno formada por los registro CS e IP y el estado de los indicadores. INT 3 es un caso especial de INT, al ensamblarl el ensamblador genera un sólo byte en vez de los dos habituales; esta interrupción s utiliza para poner puntos poner puntos de ruptura en los programas. Véase también IRET y el apartad 1 del capítulo VII. Ejemplo: INT
21H
INTO (Interrupción por desbordamiento). Sintaxis:
INTO
Indicadores:
OF DF IF TF SF ZF AF PF Sign CF up to vote on this title - - 0 0 - - - Useful Not useful
Genera una interrupción de tipo 4 (INT 4) si existe desbordamiento (OF=1). De lo contrar se continúa con la instrucción siguiente.
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
2.6.2
Cadenas.
Sheet Music
CMPS/CMPSB/CMPSW (Compara cadenas). Sintaxis:
CMPS CMPS cade cadena na_d _des esti tino no,, cad caden ena_ a_or orig igen en CMPSB (bytes) CMPSW (palabras)
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - x x x x x
Compara dos cadenas restando al origen el destino. Ninguno de los operandos se altera pero los indicadores resultan afectados. La cadena origen se direcciona con registro S sobre el segmento de datos DS y la cadena destino se direcciona con el registro DI sobr el segmento extra ES. Los registros DI y SI se autoincrementan o autodecrementan segú el valor del indicador DF (véanse CLD y STD) en una o dos unidades, dependiendo de se trabaja con bytes o con palabras. Cadena origen y cadena destino son dos operand redundantes que sólo indican el tipo del dato (byte o palabra) a comparar, es más cómod colocar CMPSB o CMPSW para indicar bytes/palabras. Si se indica un registro d segmento, éste sustituirá en la cadena origen al DS ordinario. Ejemplo: LEA SI, ORIGEN ORIGEN LEA DI, DESTINO DESTINO CMPSB
LODS/LODSB/LODSW (Cargar cadena). Sintaxis: Sintaxis :
LODS ca cadena_origen LODSB (bytes) LODSW (palabras) Sign up to vote on this title Indicadores: OF DF IF TF SF ZF AF PF CF Useful Not useful - - - - - - - - -
Copia en AL o AX una cadena de longitud byte o palabra direccionada sobre el segmen
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
MOVS/MOVSB/MOVSW (Mover cadena).
Sheet Music
Sintaxis:
MOVS MOVS cade cadena na_d _des esti tino no,, cad caden ena_ a_or orig igen en MOVSB (bytes) MOVSW (palabras)
Indicadores:
OF DF IF TF SF ZF AF PF CF - - - -
Transfiere un byte o una palabra de la cadena origen direccionada por DS:SI a la caden destino direccionada por ES:DI, incrementando o decrementando a continuación lo registros SI y DI según el valor de DF (véanse CLD y STD) en una o dos unidade dependiendo de si se trabaja con bytes o con palabras. Cadena origen y cadena desti son dos operandos redundantes que sólo indican el tipo del dato (byte o palabra) comparar, es más cómodo colocar MOVSB o MOVSW para indicar bytes/palabras. Si s indica un registro de segmento, éste sustituirá en la cadena origen al DS ordinario. Ejemplo: LEA SI, ORIGEN ORIGEN LEA DI, DESTINO DESTINO MOVSW
SCAS/SCASB/SCASW (Explorar cadena). Sintaxis:
SCAS cadena_destino SCASB (bytes) SCASW (palabras)
Indicadores:
OF DF IF TF SF ZF AF PF CF x - - - x x x x x
Resta de AX o AL una cadena destino direccionada por el registro DI sobre el segmen Sign up to vote on this title extra. Ninguno de los valores es alterado pero los indicadores se ven afectados. DI s usefulen una o do UsefulCLDyNot incrementa o decrementa según el valor de DF (véanse STD) unidades -según se esté trabajando con bytes o palabras- para apuntar al siguien elemento de la cadena. Cadena_destino es un operando redundante que sólo indica
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Magazines
News
Historia de la Graficación por
1
Download
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
STOS/STOSB/STOSW (Almacena cadena).
Sheet Music
Sintaxis:
Indicadores:
STOS cadena_destino STOSB (bytes) STOSW (palabras) OF DF IF TF SF ZF AF PF CF - - - - - - -
Transfiere el operando origen almacenado en AX o AL, al destino direccionado por registro DI sobre el segmento extra. Tras la operación, DI se incrementa o decremen según el indicador DF (véanse CLD y STD) para apuntar al siguiente elemento de cadena. Cadena_destino es un operando redundante que sólo indica el tipo del dato (by o palabra) a cargar, es más cómodo colocar STOSB o STOSW para indica bytes/palabras. Ejemplo: LEA DI, DESTINO DESTINO MOV MOV AX, 1991 1991 STOSW
REP/REPE/REPZ/REPNE/REPNZ (Repetir). REP repetir operación de cadena REPE/REPZ repetir operación de cadena si igual/si cero REPN REPNE/ E/RE REPN PNZ Z repe repeti tirr ope opera raci ción ón de cade cadena na si no igual gual (si (si no no 0) 0)
Estas instrucciones se pueden colocar como prefijo de otra instrucción de manejo d cadenas, con objeto de que la misma se repita un número determinado de vece incondicionalmente o hasta que se verifique alguna condición. El número de veces s indica en CX. Por sentido común sólo deben utilizarse las siguientes combinaciones: Prefijo -------------------REP REPE/REPZ REPNE/REPNZ
Función Sign up to voteInstrucciones on this title ----------------------------------------------------------- Useful Not usefulMOVS, STOS Repetir CX veces Repetir CX veces mientras ZF=1 CMPS, SCAS Repetir CX veces mientras ZF=0 CMPS, SCAS
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents Sheet Music
2) Rellenar Rellenar de ceros ceros 5000 5000 bytes bytes de una tabla tabla colocada colocada en datos (se supone datos el segmento ES): LEA MOV MOV CLD REP
DI, DATOS AX, 0 CX, 2500 STOSW
3) Copiar la memoria memoria de pantalla de texto (adaptador (adaptador de de color) de de un PC en un buffe (se supone buffer en buffer en el segmento ES): MOV MOV LEA MOV MOV CLD REP
CX,0B800h DS,CX DI,buffer SI,0 CX,2000 MOVSW
; segmento de pantalla ; en DS ;destino en ES:DI ; copiar desde DS:0 ; 2000 palabras ; hacia adelante ; copiar CX palabras
Sign up to vote on this title
Useful
Not useful
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Upload
Sign In
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Historia de la Graficación por
1
Download
Magazines
News
Join
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
RESUMEN ALFABÉTICO DE LAS INSTRUCCIONES Y BANDERINES.
Sheet Music
Nota: en el efecto de las instrucciones sobre el registro de estado se utilizará la siguiente notación: ? x 1 0
bit no modi modific ficad ado o desconocido o indefinido modificado según el resultado de la operación puesto siempre a 1 puesto siempre a 0
Instrucción ----------------
Sintaxis ---------------------
AAA AAD AAM AAS ADC dst,fnt ADD dst, dst,fn fnt t AND dst,fnt CALL dsp CBW CLC CLD CLI CMC CMP dst,fnt CMPS/CMPSB CMPSW cdst,cfnt CW D DAA DAS DEC dst DIV fnt ESC opcode,fnt HLT IDIV fnt IMUL fnt IN acum,port INC dst INT interrup
AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD CLI CMC CMP CMPS CW D DAA DAS DEC DIV ESC HLT IDIV IMUL IN INC INT
dst,fnt dst,f dst,fnt nt dst,fnt dsp
dst,fnt cdst,cfnt
dst dst opcode,fnt fnt fnt acum,port dst interrup
Efecto sobre los flags -------------------------OF DF IF TF SF ZF AF PF CF ? - - - ? ? x ? x ? - - - x x ? x ? ? - - - x x ? x ? ? - - - ? ? x ? x x - - - x x x x x x - - - x x x x x 0 - - - x x ? x 0 - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0 - - - - - - - - 0 - - - - - - - - - - - - - x x - - - x x x x x x - - - x x - - - - - ? - - - x x - - - - x x x - - - x x ? - - - ? ? - - - - - - - - - - Sign ? up - to-vote-on this ? title ? - - - Not?useful ? x Useful - - - - - x - - - x x 0 0
x x - x x x x x x ? ? - - ? ? ? ? - x x
x x x ? ? x -
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join
Search
Home
Saved
41K views
10
Sign In
Upload
Join
RELATED TITLES
1
unidad 2 ensamblador Uploaded by api-3716700
Top Charts
Books
Audiobooks
Save
Embed
Share
Print
Download
Magazines
News
Historia de la Graficación por
1
of 42
Curso de Assembler
ENSAMBLADOR
Search document
L e en n g u ua a j e e E n ns s a am m b bl l a d do r r
Documents
Sheet Music
Instrucción ----------------
Sintaxis ---------------------
LOOP LOOPcc (LOOPE...) MOV dst,fnt MOVS/MOVSB/ MOVSW cdst,cfnt MUL fnt NEG dst NOP NOT dst OR dst,fnt OUT port,acum POP dst POPF PUSH PUSH dst dst PUSHF RCL dst,cnt RCR dst,cnt REP/REPE/REPZ/ REPNE/REPNZ RET [val] RETF [val] ROL dst,cnt ROR dst,cnt SAHF SAL/SHL dst,cnt SAR dst,cnt SBB dst,fnt SCAS/SCASB/ SCASW cdst SHR dst,cnt STC STD STI STOS/STOSB/ STOSW cdst SUB dst,fnt TEST dst,fnt WAIT
LOOP dsp LOOPcc dsp MOV dst,fnt
-
-
-
-
-
-
-
-
-
MOVS MUL NEG NOP NOT OR OUT POP POPF PUSH PUSH PUSHF RCL RCR
x x 0 x x x
x -
x -
x -
? x x x -
? x x x -
? x ? x -
? x x x -
x x 0 x x x
x x x x x
-
-
-
x x x x
x x x x
x ? ? x
x x x x
x x x x x x
x x -
1 -
1
-
x x -
x x -
x ? -
x x -
x x 1 -
x x -
x 0 -
REP RET RETF ROL ROR SAHF SAL SAR SBB SCAS SHR STC STD STI STOS SUB TEST WAIT
cdst,cfnt fnt fnt dst dst,fnt port,acum dst dst dst dst,cnt dst,cnt
[val] [val] dst,cnt dst,cnt dst,cnt dst,cnt dst,fnt cdst dst,cnt
cdst dst,fnt dst,fnt
Efecto sobre los flags --------------------------
Sign up to vote on this title -
-
-
-
-
-
0 -
-
-
-
x -
x -
x Useful - - - Notxuseful x
x ? -
Home
Saved
Top Charts
Books
Audiobooks
Magazines
News
Documents
Sheet Music
Upload
Sign In
Join