Calculadora emu8086 PDF

Title Calculadora emu8086
Course Microprocesadores
Institution Universidad de las Fuerzas Armadas de Ecuador
Pages 6
File Size 219.6 KB
File Type PDF
Total Downloads 52
Total Views 164

Summary

Diagrama de flujo y código...


Description

ELÉCTRI MICR

ECTRÓNICA ADORES

PROF: ING. CHISTHIAN VEGA NOMBRE: LUIS EDUARDO CARRION NRC: 3160 FECHA: 16/02/15

DIAGRAMA DE FLUJO INICIO

LEER NÚMERO PROC ESO1

LEER OPERACIÓN LEER NÚMERO

TIPO OPERACION

-

RESTA NÚMEROS

+

SUMA NÚMEROS

PROC ESO2

MULTIPLICA NÚMEROS

PROC ESO2

TIPO OPERACION

*

/

DIVIDE NÚMEROS

PROC ESO2

PROC ESO2

PROC ESO2

MÁS OPERACIONES SI GUARDAR OPERACIÓN HECHA

PROC ESO1

NO

FIN

CÓDIGO: org 100h ; iniciación de programa DEFINE_SCAN_NUM DEFINE_PRINT_STRING DEFINE_PRINT_NUM DEFINE_PRINT_NUM_UNS jmp start ;salta a etiqueta start text db 13,10,'UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE' db 13,10,'MICROPROCESADORES $' text1 db 13,10,13,10,'Digite un Numero: $' text3 db 13,10,13,10, 'La Suma Es: $' text4 db 13,10,'La Resta Es: $' text5 db 13,10,'La Multiplicacion Es: $' text6 db 13,10,'La Dision es: $' text7 db 13,10,'Elija la operacion: + - * / $' text8 db 13,10,'Press E para finalizar operacion $' operando dw ?;variables de 2 bytes cont dw 'g' aux1 dw ?; simbolo ? es para indicar q no se inicilizan con valor alguno num1 dw ? num2 dw ? num3 dw ? start;etiquetas mov ah,09 ;instruccion para imprimir en pantalla lea dx,text ;carga cadena de text en dx int 21h ;interrupcion pantalla mov ah,09 ;instruccion para imprimir en pantalla lea dx,text1 ;carga cadena de text1 en dx int 21h ;interrupcion pantalla call SCAN_NUM ;Llama Funcion SCAN_NUM mov num1,cx ;mueve numero a variable num1 ope: ;se repite el procesor de elegir operacion mov ah,09 ;interrupcion para imprimir en pantalla lea dx,text7 ;carga cadena de text7 en dx int 21h ; obtencion del operador mov ah, 1 ; un valor char en AL int 21h mov ah,00h mov operando, ax mov ah,09 ;interrupcion para imprimir en pantalla lea dx,text1 ;carga cadena de text2 en dx int 21h call SCAN_NUM ;Llama Funcion SCAN_NUM mov num2,cx ;mueve numero a variable num2 ;comparaciones cmp operando,02bh je SUMA

cmp operando,02dh je RESTA cmp operando,02ah je MULTI cmp operando,02fh je DIVI SUMA: mov ah,09 mov ax,num1 ;mueve primer numero digitado a ax add ax,num2 ;suma los numeros digitado, queda almacenaddo en ax mov num1,ax;muevo valor de operacion mov ah,09 ;interrupcion para imprimir en pantalla lea dx,text8 ;carga cadena de text8 en dx int 21h ; obtencion del operador mov ah, 1 int 21h mov ah,00h mov cont, ax cmp cont,'E';comparacion para continuar con operaciones je imprimir jmp ope imprimir: mov ax,num1 ; nueva linea: putc 0Dh putc 0Ah call PRINT_NUM jmp fin RESTA: mov ah,09 mov ax,num1 ;mueve primer numero digitado a ax sub ax,num2 ;resta el 2do del 1er numero, queda almacenaddo en ax mov num1,ax mov ah,09 ;interrupcion para imprimir en pantalla lea dx,text8 ;carga cadena de text8 en dx int 21h ; obtencion del operador mov ah, 1 ; single char input to AL. int 21h mov ah,00h mov cont, ax cmp cont,'E' je imprimir2 jmp ope imprimir2: mov ax,num1 ; nueva linea: putc 0Dh

putc 0Ah call PRINT_NUM jmp fin MULTI: mov ah,09 mov ax,num1 ;mueve primer numero digitado a ax mov bx,num2 ;mueve segundo numero digitado a bx mul bx ;ax = ax*bx mov num1,ax mov ah,09 ;interrupcion para imprimir en pantalla lea dx,text8 ;carga cadena de text8 en dx int 21h ; obtencion del operador mov ah, 1 ; single char input to AL. int 21h mov ah,00h mov cont, ax cmp cont,'E' je imprimir3 jmp ope imprimir3: mov ax,num1 ; nueva linea: putc 0Dh putc 0Ah call PRINT_NUM jmp fin DIVI: mov ah,09 xor dx,dx ;deja en cero dx; si no lo hago se desborda la division ;DX ALMACENA EL modulo de la division, por eso hay q dejarlo en cero mov ax,num1 ;mueve primer numero digitado a ax mov bx,num2 ;mueve segundo numero digitado a bx div bx ;ax = ax/bx mov num1,ax mov ah,09 ;interrupcion para imprimir en pantalla lea dx,text8 ;carga cadena de text8 en dx int 21h ; obtencion del operador mov ah, 1 ; single char input to AL. int 21h mov ah,00h mov cont, ax cmp cont,'E' je imprimir4 jmp ope imprimir4: mov ax,num1 ; nueva linea:

putc 0Dh putc 0Ah call PRINT_NUM jmp fin fin: ret...


Similar Free PDFs