Programación de una Calculadora

Lenguaje Ensamblador. Hexadecimal. 7 Segmentos. Assembler. Operaciones Básicas. Código Máquina

  • Enviado por: Alvaro Pérez
  • Idioma: castellano
  • País: España España
  • 3 páginas
publicidad

CALCULADORA

INTRODUCCIÓN: LA CALCULADORA CONSISTE EN UN PROGRAMA EN LENGUAJE ENSAMBLADOR QUE CONSTA DE TRES OPERACIONES BASICAS COMO SON: MULTIPLICACIÓN, SUMA, RESTA Y DIVISIÓN, ESTAS OPERACIONES SON REALIZADAS DESDE EL TECLADO EJECUTANDO DICHO PROGRAMA PARA VISUALIZAR LA RESPUESTA EN UN CIRCUITO ARMADO EN UNA TABLETA EL CUAL CONSTA DE DOS DISPLAY 7 SEGMENTOS, DONDE SE VISUALIZAN DOS NUMEROS HEXADECIMALES, LOS CUALES SERAN EL RESULTADO DE LA OPERACIÓN Y LOS DOS OPERANDOS A REALIZAR.

SE COMIENZA LA PROGRAMACIÓN EN LENGUAJE ENSAMBLADOR DESDE LA LOCALIDAD # 100 HEXADECIMAL, ESTA PROGRAMACIÓN SE BASA EN LA SELECCIÓN DE DOS NUMEROS, UNA VES QUE SE GUARDA EL PROGRAMA, SE LE DA LA INSTRUCCIÓN DE EJECUTARLO DESDE EL DEBUG, SE LE DA LA DIRECCIÓN OCUPADA POR EL PROGRAMA A MANERA DE INTRODUCIRLE EL PRIMER OPERANDO, A CONTINUACIÓN SE LE DA LA DIRECCIÓN OCUPADA DEL PROGRAMA DONDE REGISTRA EL SIGUIENTE NUMERO Y SE LE INDICA CUAL VA A SER EL SIGUIENTE OPERANDO, EL PROGRAMA REGISTRA LOS DOS NUMEROS A OPERAR, EL SIGUIENTE PASO ES EJECUTAR LA DIRECCIÓN DEL PROGRAMA QUE CORRESPONDE AL TIPO DE OPERACIÓN, YA SEA SUMA, RESTA, MULTIPLICACIÓN, O DIVISIÓN.

DESPUÉS DE SELECCIONAR LA OPERACIÓN, EL PROGRAMA TIENE QUE SER VISUALIZADO CON EL TRACE PARA VER QUE EFECTIVAMENTE REGISTRO EL PROGRAMA LOS DOS NUMEROS A OPERAR Y EL TIPO DE OPERACIÓN QUE VA A REALIZAR CON ESOS NUMEROS, EL SIGUIENTE TRACE NOS VA INDICAR EL RESULTADO DE LA OPERACIÓN EN LA SALIDA AL PUERTO, LA CUAL NO SE VERA EN EL MONITOR, SI NO EN LA TABLETA CON LOS DOS DISPLAY 7 SEGMENTOS QUE ESTARAN CONECTADOS A LA SALIDA DEL PUERTO PARALELO, A TRAVES DE UN CABLE DB25, EL PIN 1 SABEMOS QUE ES UN VOLTAJE, DEL PIN 2 AL 9 SON LAS LINEAS DE LOS DATOS Y EL PIN 25 ES UNA TIERRA QUE EN ESTE CASO FUE NECESARIA CONECTARLA A LA TIERRA DEL CIRCUITO YA QUE SE METIA RUIDO EN LOS DISPLAY, CABE ACLARAR QUE EL VOLTAJE QUE ALIMENTA AL CIRCUITO, ES PROPORCIONADO POR UNA FUENTE DE VOLTAJE, ESTE CIRCUITO TRABAJA A CINCO VOLTS, LA TIERRA DE ESTA FUENTE ES CONECTADA A LA TIERRA DE LA SALIDA DEL PUERTO PARALELO.

POR EJEMPLO: SUMA DE 4 + 5 = 9

VCC

GND

POR EJEMPLO: 3 X 2 = 6

VCC

GND

EL PROGRAMA EN LENGUAJE ENSAMBLADOR SE PRESENTA EN LA SIGUIENTE PAGINA:

1D4D:0100 BA7803 MOV DX,0378

1D4D:0103 BB0002 MOV BX,0200

1D4D:0106 B82B00 MOV AX,002B

1D4D:0109 8907 MOV [BX],AX

1D4D:010B BE2D00 MOV SI,002D

1D4D:010E BF2A00 MOV DI,002A

1D4D:0111 BD2F00 MOV BP,002F

1D4D:0114 B90000 MOV CX,0000

1D4D:0117 41 INC CX

1D4D:0118 B401 MOV AH,01

1D4D:011A CD21 INT 21

1D4D:011C 2C30 SUB AL,30

1D4D:011E 50 PUSH AX

1D4D:011F 83F902 CMP CX,+02

1D4D:0122 75F3 JNZ 0117

1D4D:0124 B401 MOV AH,01

1D4D:0126 CD21 INT 21

1D4D:0128 B400 MOV AH,00

1D4D:012A 3B060002 CMP AX,[0200]

1D4D:012E 740C JZ 013C

1D4D:0130 39F0 CMP AX,SI

1D4D:0132 740F JZ 0143

1D4D:0134 39F8 CMP AX,DI

1D4D:0136 741F JZ 0157

1D4D:0138 39E8 CMP AX,BP

1D4D:013A 7422 JZ 015E

1D4D:013C 58 POP AX

1D4D:013D 5B POP BX

1D4D:013E 00D8 ADD AL,BL

1D4D:0140 EE OUT DX,AL

1D4D:0141 EB05 JMP 0148

1D4D:0143 58 POP AX

1D4D:0144 5B POP BX

1D4D:0145 39D8 CMP AX,BX

1D4D:0147 7702 JA 014B

1D4D:0149 7605 JBE 0150

1D4D:014B 28D8 SUB AL,BL

1D4D:014D EE OUT DX,AL

1D4D:014E EBF8 JMP 0148

1D4D:0150 28C3 SUB BL,AL

1D4D:0152 88D8 MOV AL,BL

1D4D:0154 EE OUT DX,AL

1D4D:0155 EB21 JMP 0178

1D4D:0157 58 POP AX

1D4D:0158 5B POP BX

1D4D:0159 F7E3 MUL BX

1D4D:015B EE OUT DX,AL

1D4D:015C EB1A JMP 0178

1D4D:015E 58 POP AX

1D4D:015F 5B POP BX

1D4D:0160 B400 MOV AH,00

1D4D:0162 B700 MOV BH,00

1D4D:0164 39D8 CMP AX,BX

1D4D:0166 7702 JA 016A

1D4D:0168 7605 JBE 016F

1D4D:016A F7F3 DIV BL

1D4D:016C EE OUT DX,AL

1D4D:016D EB09 JMP 0178

1D4D:016F 53 PUSH BX

1D4D:0170 89C3 MOV BX,AX

1D4D:0172 58 POP AX

1D4D:0173 F7F3 DIV BL

1D4D:0175 EE OUT DX,AL

1D4D:0176 EB00 JMP 0178

1D4D:0178 B44C MOV AH,4C

1D4D:017A CD21 INT 21