You are on page 1of 34

Instituto Tecnolgico De La Laguna

Lenguaje ensamblador
Instrucciones aritmticas
Agosto-Diciembre 2012

28-10-2012

Instituto Tecnolgico De La Laguna


ndice

Instrucciones aritmticas
1. Grupo de adicin... 1.1 ADD suma.. 1.2 ADC suma con acarreo .. 1.3 AAA ajuste ASCII para la suma 1.4 DAA ajuste decimal para la suma . 1.5 INC 2. Grupo de sustraccin. 2.1 SUB resta.. 2.2 SBB resta con acarreo negativo ... 2.3 AAS ajuste ASCII para la resta 2.4 DAS ajuste decimal para la resta . 2.5 DEC 2.6 CMP .. 3.- Grupo de multiplicacin... 3.1 MUL multiplicacin. 3.2 IMUL multiplicacin entera .. 3.3 AAM ajuste ASCII para la multiplicacin... 4.- Grupo de divisin.. 4.1 DIV divisin. 4.2 IDIV divisin entera .. 4.3 AAD ajuste ASCII para la divisin. 5.- Instruccin NEG.. 6.- Programa de ejemplificacin... 7.- Conclusin 8.- Fuentes de informacin. 2 2 2 3 3 4 4 4 5 5 6 6 7 7 7 8 8 8 8 9 9 10 11 33 34

Pg. 1

Instituto Tecnolgico De La Laguna


1.- Grupo de adicin

1.1.- Instruccin ADD Suma Propsito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF x - - - x x x x x Suma los operandos y guarda el resultado en el operando destino. Los valores pueden ser de un byte, Word o doble Word (80386 y posteriores). Adicin de los operandos. ADD destino {registro/memoria}, fuente {registro/memoria/inmediato}

Ejemplos: ADD AX,BX ADD AH,AL ADD AX,VAR ADD AX,5 ADD BYTE PTR VAR,0Ah

; AX=AX+BX ; AH=AH+AL ; AX=AX+VAR ; AX=AX+5 ; VAR=VAR+10

1.2.- Instruccin ADC Propsito: Sintaxis: Indicadores: Adicin con acarreo. ADC destino {registro/memoria}, fuente {registro/memoria/inmediato}

OF DF IF TF SF ZF AF PF CF x - - - x x x x x Lleva a cabo la suma de dos operandos y suma uno al resultado en caso de que la bandera CF est activada, esto es, en caso de que exista acarreo. El resultado se guarda en el operando destino. Ejemplos: ADC CL, BL ADC AL, 12h ADC CX, DX

; CL = CL + BL + CF ; AL = AL + 12h + CF ; CX = CX + DX + CF

Pg. 2

Instituto Tecnolgico De La Laguna


1.3.- Instruccin AAA Propsito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF ? - - - ? ? x ? x Convierte el contenido del registro AL en un nmero BCD no empaquetado. Si los cuatro bits menos significativos de AL son mayores que 9 si el indicador AF est a 1, se suma 6 a AL, 1 a AH, AF se pone a 1, CF se iguala a AF y AL pone sus cuatro bits ms significativos a 0. Ajuste ASCII para la suma AAA (sin operando)

Ejemplo:

ADD AL,BL AAA

1.4.- Instruccin DAA Propsito: Sintaxis: 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 menos significativos de AL son un nmero mayor que 9, el indicador AF se pone a 1 y se suma 6 a AL. De igual forma, si los cuatro bits ms significativos de AL tras la operacin anterior son un nmero mayor que 9, el indicador CF se pone a 1 y se suma 60h a AL. Ajuste decimal para la suma. DAA (sin operando)

Ejemplo:

ADD AL, CL DAA

Pg. 3

Instituto Tecnolgico De La Laguna


1.5 INC Proposito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF x - - - x x x x Incrementa el operando destino. El operando destino puede ser byte o palabra. Obsrvese que esta instruccin no modifica el bit de acarreo (CF) y no es posible detectar un desbordamiento por este procedimiento (utilcese ZF). Ejemplos: INC AL INC ES:[DI] INC SS: [BP+4] INC WORD PTR CS:[BX+DI+7] Incrementar. INC destino

2.- Grupo de sustraccin

2.1.- Instruccin SUB. Propsito: Sintaxis: 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 Word. Substraccin de operandos. SUB destino {registro/memoria}, fuente {registro/memoria/inmediato}

Resta el operando fuente del destino Ejemplos: SUB AX,BX ; AX=AX-BX SUB AX,VAR ; AX=AX-VAR SUB WORD PTR VAR,10 ; VAR=VAR-10 SUB CX,5 ; CX=CX-5
Pg. 4

Instituto Tecnolgico De La Laguna


2.2.- Instruccin SBB Propsito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF x - - - x x x x x Substraccin con acarreo SBB destino {registro/memoria}, fuente {registro/memoria/inmediato}

Resta el operando origen del operando destino y el resultado lo almacena en el operando destino. Si est a 1 el indicador de acarreo adems resta una unidad ms. Los operandos pueden ser de tipo byte o palabra. Se utiliza normalmente para restar nmeros grandes, de ms de 16 bits, en varios pasos, considerando lo que nos llevamos (el acarreo) de la resta anterior. Ejemplos: SBB AX, AX SBB CH, DH 2.3.- Instruccin AAS Propsito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF ? - - - ? ? x ? x Convierte el resultado de la sustraccin de dos operandos BCD no empaquetados para que siga siendo un nmero BCD no empaquetado. Si el nibble inferior de AL tiene un valor mayor que 9, de AL se resta 6, se decrementa AH, AF se pone a 1 y CF se iguala a AF. El resultado se guarda en AL con los bits de 4 a 7 puestos a 0. Ajuste ASCII para la resta AAS (sin operando)

Ejemplo:

SUB AL,BL AAS

En el ejemplo, tras la resta de dos nmeros BCD no empaquetados colocados en AL y BL, el resultado (por medio de AAS) sigue siendo un nmero BCD no empaquetado.

Pg. 5

Instituto Tecnolgico De La Laguna


2.4.- DAS Propsito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF - - - - x x x x x Corrige el resultado en AL de la resta de dos nmeros BCD empaquetados, convirtindolo tambin en un valor BCD empaquetado. Si el nibble inferior tiene un valor mayor que 9 o AF es 1, a AL se le resta 6, AF se pone a 1. Si el nibble ms significativo es mayor que 9CF est a 1, entonces se resta 60h a AL y se activa despus CF. Ejemplo: SUB AL, BL DAS En el ejemplo anterior, si AL y BL contenan dos nmeros BCD empaquetados, DAS hace que el resultado de la resta (en AL) siga siendo tambin un BCD empaquetado. Ajuste decimal para la resta. DAS (sin operando)

2.5 DEC Propsito: Sintaxis: 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. Obsrvese que esta instruccin no modifica el bit de acarreo (CF) y no es posible detectar un desbordamiento por este procedimiento (utilcese ZF). Ejemplo: DEC AX DEC MEM_BYTE 2.6 CMP Propsito: Sintaxis: Comparacin. CMP destino, origen Decrementar. DEC destino

Pg. 6

Instituto Tecnolgico De La Laguna


Indicadores: OF DF IF TF SF ZF AF PF CF x - - - x x x x x Resta origen de destino sin retornar ningn resultado. Los operandos quedan inalterados, pero los indicadores pueden ser consultados mediante instrucciones de bifurcacin condicional. Los operandos pueden ser de tipo byte o palabra pero ambos de la misma dimensin. Ejemplo: CMP BX, MEM_PAL CMP CH, CL

3.- Grupo de multiplicacin

3.1.- Instruccin MUL Propsito: Multiplicacin sin signo Sintaxis: MUL operando (operando no puede ser un operando inmediato) Indicadores: OF DF IF TF SF ZF AF PF CF x - - - ? ? ? ? x Caso 1- Si el operando es un byte, multiplica el contenido de AL por el contenido del operando y almacena el resultado en AX. AX=AL*operando Ejemplo: MOV AL, 3 MOV BL, 100 MUL BL ; AX=3 * 100 AX=300

Caso 2-Si el operando es de 16 bits multiplica el contenido de AX por el operando y el resultado ser almacenado en los registros DX:AX. DX:AX=AX*operando. Ejemplo: MOV AX,1000h MOV BX,100h MUL BX

; DX:AX=1000h * 100h ; DX = 10h AX=0

Pg. 7

Instituto Tecnolgico De La Laguna


3.2.- Instruccin IMUL Propsito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF x - - - ? ? ? ? x Caso 1- Si el operando es un byte, multiplica el contenido de AL por el contenido del operando y almacena el resultado en AX. AX=AL*operando Ejemplo: MOV AL, 1 NEG AL MOV BL, 2 NEG BL MUL BL Multiplicacin de dos enteros con signo. IMUL operando

; AL=-1 ; BL=-2I ; AX=-1 * -2 AX=2

Caso 2- Si el operando es de 2 byte multiplica el contenido de AX por el operando y el resultado ser almacenado en los registros DX:AX. DX:AX=AX*operando 3.3 Instruccin AAM Propsito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF ? - - - x x ? x ? Corrige el resultado en AX del producto de dos nmeros BCD no empaquetados, convirtindolo en un valor BCD tambin no empaquetado. En AH sita el cociente de AL /10 quedando en AL el resto de dicha operacin. Ejemplo: MUL BL AAM En el ejemplo, tras el producto de dos nmeros BCD no empaquetados colocados en AL y BL, el resultado (por medio de AAA) sigue siendo, en AX, un nmero BCD no empaquetado. Ajuste ASCII para la multiplicacin. AAM

Pg. 8

Instituto Tecnolgico De La Laguna

4.- Grupo de divisin

4.1 Instruccin DIV Propsito: Sintaxis: Indicadores: Divide nmeros enteros sin signo. DIV operando {registro/memoria}

OF DF IF TF SF ZF AF PF CF ? ? ? ? ? ? ? ? ?

Caso 1- Si el operando es un byte, divide el contenido de AX entre el contenido del operando, almacena el resultado en AL y el residuo en AH. AL=AX/operando AH=AX MOD operando Ejemplo: MOV AX, 10 MOV BL, 3 DIV BL

; AL=3 AH=1

Caso 2- Si el operando es de 2 byte divide el contenido de DX:AX entre el operando, el resultado ser almacenado en AX y el residuo ser almacenado en DX. AX = DX:AX/operando Ejemplo: MOV DX, 0 MOV AX, 12345 MOV BX, 1000 DIV BX MOD 1000

; AX=12345/1000 DX=12345 ; AX=12 DX=345

4.2 IDIV Propsito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF


Pg. 9

Divisin (entera) con signo IDIV operando {registro/memoria}

Instituto Tecnolgico De La Laguna


x x x x x x x x x

El dividiendo es implcito; solo el divisor es dado como operando. El tipo de divisor determina el uso de registros

Tamao Byte Word

Dividiendo AX AX: DX

Divisor registro/memoria registro/memoria

Cociente AL AX

Residuo AH DX

4.3 Instruccin AAD Propsito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF ? - - - x x ? x ? Convierte dos nmeros BCD no empaquetados contenidos en AH y AL en un dividendo de un byte que queda almacenado en AL. Tras la operacin AH queda a cero. Esta instruccin es necesaria ANTES de la operacin de dividir, al contrario que AAM. Ejemplo: AAD DIV BL En el ejemplo, tras convertir los dos nmeros BCD no empaquetados (en AX) en un dividendo vlido, la instruccin de dividir genera un resultado correcto. Ajuste ASCII para la divisin. AAD

5.- Instruccin NEG Propsito: Sintaxis: Indicadores: OF DF IF TF SF ZF AF PF CF x x x x x x Negacin. NEG destino

Calcula el valor negativo en complemento a dos del operando y devuelve el resultado enel mismo operando. Ejemplo:
Pg. 10

Instituto Tecnolgico De La Laguna


NEG AL

6.- Programa de ejemplificacin


A continuacin veremos un programa (codigo) donde se ejemplificara algunas de las instrucciones aritmticas aqu documentadas. Este programa consiste en un men donde el usuario puede seleccionar alguna operacin que desee realizar, despus se le especificara que ingrese un dato para poder obtener algun resultado; las operaciones son:

Serie de Fibonacci Un nmero es par? Un nmero es primo? Sumatoria de N

Tambien incluye una opcin para poder salir del programa


.MODEL SMALL .STACK 100H .DATA menu DB "PROPIEDADES DE LOS NUMEROS$" menu2 DB "Elija una de las siguientes opciones$" menu3 DB "PRESIONE 1: Serie Fibonacci$" menu4 DB "PRESIONE 2: Un numero es par?$" menu5 DB "PRESIONE 3: Un numero es primo?$" menu6 DB "PRESIONE 4: sumatoria de N$" menu8 DB "PRESIONE 5: Salir del programa$" menu9 DB "PRESIONE UNA TECLA PARA SALIR$" ;=========================================================== msg1 msg2 msg3 msg4 DB ' DB ' DB ' DB ' * * * * * * * * * * * * * * * * * * * *$' * * * TECNOLOGICO DE LA LAGUNA INGENIERIA EN SISTEMAS *$' *$' *$'

Pg. 11

Instituto Tecnolgico De La Laguna


msg5 msg6 msg7 msg8 msg9 DB ' DB ' DB ' DB ' DB ' * * * * * AGOSTO-DICIEMBRE 2012 ALUMNOS: -----------------------------++++++++++++++++++++++++++++++ *$' *$' *$' *$' *$'

msg10 DB ' numero DB ? diez aux par1 DB 10 DB ? DB 2h

* * * * * * * * * * * * * * * * * * * *$'

;===========================================================

;=========================================================== msgpar DB " sipar nopar i j t Ingrese un numero de dos digitos $"

msgpar1 DB "Si es un digito agregue un cero a la izquierda$" DB "El numero si es par$" DB "El numero es impar$" DB 0 DB 1 DB ? Ingrese un numero del 1 al 12: $"

;===========================================================

msgfibo DB " unidades DB ? decenas DB ? centenas DB ? just opcion nprimo sprimo _i sumas cont orden u DB 1

;===========================================================

;=========================================================== DB "Regresar al menu principal S/N$" DB "El numero no es primo$" DB "El numero si es primo$" DB 2 Dw 0 Dw ? DW 4 DUP (?) Dw ? ;===========================================================

;===========================================================

;===========================================================

Pg. 12

Instituto Tecnolgico De La Laguna


d c m .CODE inicio: mov ax, @Data mov ds, ax mov ax, 0600h mov bh, 75H mov cx, 0000H mov dx, 184FH int 10h mov ax, 0600h mov bh, 5FH mov cx, 0101H mov dx, 174EH int 10h mov ax, 0600h mov bh, 3FH mov cx, 0202H mov dx, 164DH int 10h menuprin: mov ax, 0600h mov bh, 8FH mov cx, 041CH mov dx, 0637H int 10h mov ah, 02h mov bh, 00h mov dx, 051DH Dw ? Dw ? Dw ?

;===========================================================

Pg. 13

Instituto Tecnolgico De La Laguna


int 10h mov dx, offset menu mov ah, 09h int 21h mov ax, 0600h mov bh, 17H mov cx, 0911H mov dx, 1440H int 10h mov ah, 02h mov bh, 00h mov dx, 0917H int 10h mov dx, offset menu2 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0A12H int 10h mov dx, offset menu3 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0B12H int 10h mov dx, offset menu4 mov ah, 09h int 21h

Pg. 14

Instituto Tecnolgico De La Laguna


mov ah, 02h mov bh, 00h mov dx, 0C12H int 10h mov dx, offset menu5 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0D12H int 10h mov dx, offset menu6 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0E12H int 10h mov ah, 02h mov bh, 00h mov dx, 0F12H int 10h mov dx, offset menu8 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 1012H int 10h

Pg. 15

Instituto Tecnolgico De La Laguna


opc: mov ah,08h int 21h cmp al, 31h jae verif jmp opc verif: cmp al, 36h jbe validado jmp opc validado: mov aux, al mov ax, 0600h mov bh, 5FH mov cx, 0911H mov dx, 1440H int 10h mov ah, 02h mov bh, 00h mov dx, 0912H int 10h mov al, aux cmp al, 31h je _fibo cmp al, 32h je pares cmp al, 33h je _primo

Pg. 16

Instituto Tecnolgico De La Laguna


cmp al, 34h je _sumatoria cmp al, 35h je _salida ;======================================================= _fibo: jmp fibo ;======================================================= pares: mov dx, offset msgpar mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0A12H int 10h mov dx, offset msgpar1 mov ah, 09h int 21h leeruno: mov ah, 02h mov bh, 00h mov dx, 0B12H int 10h mov ah, 01h INT 21H cmp al, 30h jb leeruno cmp al, 39h

Pg. 17

Instituto Tecnolgico De La Laguna


ja leeruno sub al, 30h mul diez mov numero, al jmp leerdos leerdos: mov ah, 02h mov bh, 00h mov dx, 0B13H int 10h mov ah, 01h INT 21H cmp al, 30h jb leerdos cmp al, 39h ja leerdos sub al, 30h add numero, al mov ah, 02h mov bh, 00h mov dx, 0C12H int 10h jmp espar ;====================================================== _primo: jmp primo ;====================================================== espar: sub ax,ax mov al, numero

Pg. 18

Instituto Tecnolgico De La Laguna


mov bl, par1 DIV bl cmp ah, 00h je verdadero jmp falso ;====================================================== _sumatoria: jmp sumatoria ;====================================================== _salida: jmp salida ;====================================================== verdadero: mov dx, offset sipar mov ah, 09h int 21h jmp retorno falso: mov dx, offset nopar mov ah, 09h int 21h jmp retorno ;====================================================== fibo: mov dx, offset msgpar mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0A12H int 10h

Pg. 19

Instituto Tecnolgico De La Laguna


mov dx, offset msgpar1 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0B12H int 10h mov dx, offset msgfibo mov ah, 09h int 21h _leeruno: mov ah, 02h mov bh, 00h mov dx, 0B38H int 10h mov ah, 01h INT 21H cmp al, 30h jb _leeruno cmp al, 39h ja _leeruno sub al, 30h mul diez mov numero, al _leerdos: mov ah, 02h mov bh, 00h mov dx, 0B39H int 10h

Pg. 20

Instituto Tecnolgico De La Laguna


mov ah, 01h INT 21H cmp al, 30h jb _leerdos cmp al, 39h ja _leerdos sub al, 30h add numero, al cmp numero, 00h je _leeruno cmp numero, 13d jae _leeruno mov ah, 02h mov bh, 00h mov dx, 0C12H int 10h sub cx, cx mov cl, numero calcfibo: mov dl, j add i , dl mov dh, i mov t , dh mov dl, j mov i , dl mov dl, t mov j , dl

Pg. 21

Instituto Tecnolgico De La Laguna


mov dh, j mov numero, dh sub dx, dx ;---imprimir numero----; mov al, numero mul just aam mov unidades, al mov al, ah mul just aam mov centenas, ah mov decenas, al mov ah, 02h mov dl, centenas add dl, 30h INT 21H mov dl, decenas add dl, 30h INT 21h mov dl, unidades add dl, 30h INT 21H mov dl, 20h INT 21h loop calcfibo mov al, numero jmp retorno ;imprimimos espacio ;imprimimos unidades ;imprimimos decenas ;volvemos a separar los dgitos pero ;de AH ;guardamos el digito de centenas ;guardamos el digito de decenas ;imprimimos centenas ;guarda en al la unidad y en ah el residuo ;del numero ;copia el resultado en AL

Pg. 22

Instituto Tecnolgico De La Laguna

;====================================================== primo: mov dx, offset msgpar mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0A12H int 10h mov dx, offset msgpar1 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0B12H int 10h leeruno1: mov ah, 02h mov bh, 00h mov dx, 0B12H int 10h mov ah, 01h INT 21H cmp al, 30h jb leeruno1 cmp al, 39h ja leeruno1 sub al, 30h

Pg. 23

Instituto Tecnolgico De La Laguna


mul diez mov numero, al leerdos1: mov ah, 02h mov bh, 00h mov dx, 0B13H int 10h mov ah, 01h INT 21H cmp al, 30h jb leerdos1 cmp al, 39h ja leerdos1 sub al, 30h add numero, al mov ah, 02h mov bh, 00h mov dx, 0C12H int 10h cmp numero, 01h jbe noesprimo calcprimo: mov bl, numero cmp _i, bl jb calcprimo1 jmp siesprimo calcprimo1: sub ax, ax ;mientras 2 sea menor que numero

Pg. 24

Instituto Tecnolgico De La Laguna


mov al, numero div _i cmp ah, 00 je noesprimo inc _i jmp calcprimo

siesprimo: mov dx, offset sprimo mov ah, 09h int 21h jmp retorno noesprimo: mov dx, offset nprimo mov ah, 09h int 21h jmp retorno sumatoria: mov dx, offset msgpar mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0A12H int 10h mov dx, offset msgpar1 mov ah, 09h int 21h mov ah, 02h mov bh, 00h

Pg. 25

Instituto Tecnolgico De La Laguna


mov dx, 0B12H int 10h leeruno2: mov ah, 02h mov bh, 00h mov dx, 0B12H int 10h mov ah, 01h INT 21H cmp al, 30h jb leeruno2 cmp al, 39h ja leeruno2 sub al, 30h mul diez mov numero, al leerdos2: mov ah, 02h mov bh, 00h mov dx, 0B13H int 10h mov ah, 01h INT 21H cmp al, 30h jb leerdos2 cmp al, 39h ja leerdos2 sub al, 30h

Pg. 26

Instituto Tecnolgico De La Laguna


add numero, al mov ah, 02h mov bh, 00h mov dx, 0C12H int 10h sub cx, cx mov cl, numero mov cont, cx sub ax, ax sum: add ax, cont mov sumas, ax

cmp cont, 00 je imp dec cont jmp sum ;======================================================= _menuprin: jmp menuprin ;======================================================= imp: sub cx, cx sub dx, dx mov ax, sumas mov si, 0006h mov cont, 0004h conv: mov cx, 10 sub dx, dx

Pg. 27

Instituto Tecnolgico De La Laguna


DIV cX mov orden[si], dx dec si dec si dec cont cmp cont, 00h je contador jmp conv contador: mov cx, 0004h sub si, si mostrar: mov ah, 02h mov dx, orden[si] add dl, 30h INT 21H inc si inc si loop mostrar ;====================================================== retorno: mov ax, 0600h mov bh, 17H mov cx, 0D18H mov dx, 0F3AH int 10h mov ah, 02h mov bh, 00h mov dx, 0E1BH int 10h

Pg. 28

Instituto Tecnolgico De La Laguna


mov dx, offset opcion mov ah, 09h int 21h mov ah, 08h INT 21H cmp al, 4Eh je salida cmp al, 6EH je salida cmp al, 53h je _menuprin cmp al, 73h je _menuprin jmp retorno ;====================================================== salida: mov ax, 0600h mov bh, 57H mov cx, 0911H mov dx, 1440H int 10h mov ah, 02h mov bh, 00h mov dx, 0912H int 10h mov dx, offset msg1 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0A12H

Pg. 29

Instituto Tecnolgico De La Laguna


int 10h mov dx, offset msg2 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0B12H int 10h mov dx, offset msg3 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0C12H int 10h mov dx, offset msg4 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0D12H int 10h mov dx, offset msg5 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0E12H int 10h

Pg. 30

Instituto Tecnolgico De La Laguna


mov dx, offset msg6 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 0F12H int 10h mov dx, offset msg7 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 1012H int 10h mov dx, offset msg8 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 1112H int 10h mov dx, offset msg9 mov ah, 09h int 21h mov ah, 02h mov bh, 00h mov dx, 1212H int 10h mov dx, offset msg10 mov ah, 09h

Pg. 31

Instituto Tecnolgico De La Laguna


int 21h mov ax, 0600h mov bh, 17H mov cx, 1318H mov dx, 1539H int 10h mov ah, 02h mov bh, 00h mov dx, 141BH int 10h mov dx, offset menu9 mov ah, 09h int 21h mov ah, 08h int 21h mov ah, 02h mov bh, 00h mov dx, 1800H int 10h mov ah, 4CH INT 21H

end inicio

7.- Conclusin
Las operaciones matemticas son sin duda las situaciones que ms se presentan en nuestros programas, por eso es importante saber las herramientas que nos ofrece el lenguaje ensamblador para poder realizar estas operaciones, debemos
Pg. 32

Instituto Tecnolgico De La Laguna


saber cmo funcionan para darles un mejor aprovechamiento y evitar que lleguen a tener inconsistencias que alteren el funcionamiento del programa.

8.- Fuentes de informacin


http://books.google.com.mx/books?id=syAOv7jF3W4C&pg=PA546&lpg=PA546&d q=ensamblador+peter+abel+bak&source=bl&ots=rI8X0noj0X&sig=y0aOy5xiVpwMSkLTTNiM8BvNkeE&hl=es&sa= X&ei=75mNUJHxA6Pg2AXBoYDACA&ved=0CCcQ6AEwAQ#v=onepage&q&f=fal se

http://es.scribd.com/doc/6643575/unidad-2-ensamblador

Programacin avanzada en lenguaje ensamblador Ramn Medina 1992 (El documento proporciona poca informacin del autor y de la editorial)

Pg. 33

You might also like