Pág. 1. Avocet 8051 Assembler V2.45, #01809 Chip=8051 3/12/101 15:23:52 Page 1

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Pág. 1. Avocet 8051 Assembler V2.45, #01809 Chip=8051 3/12/101 15:23:52 Page 1"

Transcripción

1 Avocet 8051 Assembler V2.45, #01809 Chip=8051 3/12/101 15:23:52 Page 1 1 $PG PW=136 PL=60 2 ; 3 ;VERSION SIMPLIFICADA DE LA LIBRERÍA ARITMÉTICA EN PUNTO FIJO 4 ; 5 ;MICRO 80C31 6 ;***************************************************************************** 7 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 8 ;MACROS UTILES 9 ; 10 ; BRANCHS CON COMPARACION INCLUIDA 11 ; REG : A, MAG : directo o # SALTO : CQ LABEL (sin limitacion) 12 ; REG : Rn MAG : # " " " 13 ; 14 ;BHI BRANCH IF HIGHER (SIN SIGNO) 15 ;BHI %MACRO REG,MAG,SALTO 16 ; %LOCAL BNEQ,SIGA 17 ; CJNE REG,MAG,BNEQ 18 ; LJMP SIGA 19 ;BNEQ JC SIGA 20 ; LJMP SALTO 21 ;SIGA 22 ; %ENDM 23 ; 24 ;BLO BRANCH IF LOWER (SIN SIGNO) 25 ;BLO %MACRO REG,MAG,SALTO 26 ; %LOCAL BNEQ,SIGA 27 ; CJNE REG,MAG,BNEQ 28 ; LJMP SIGA 29 ;BNEQ JNC SIGA 30 ; LJMP SALTO Pág. 1

2 31 ;SIGA 32 ; %ENDM 33 ; 34 ;BHE BRANCH IF HIGHER OR EQUAL (SIN SIGNO) 35 ;BHE %MACRO REG,MAG,SALTO 36 ; %LOCAL BNEQ,SIGA 37 ; CJNE REG,MAG,BNEQ 38 ; LJMP SALTO 39 ;BNEQ JC SIGA 40 ; LJMP SALTO 41 ;SIGA 42 ; %ENDM 43 ; 44 ;BLE BRANCH IF LOWER OR EQUAL (SIN SIGNO) 45 ;BLE %MACRO REG,MAG,SALTO 46 ; %LOCAL BNEQ,SIGA 47 ; CJNE REG,MAG,BNEQ 48 ; LJMP SALTO 49 ;BNEQ JNC SIGA 50 ; LJMP SALTO 51 ;SIGA 52 ; %ENDM 53 ; 54 ;BEQ COMPARE Y SALTE SI ES IGUAL 55 ;BEQ %MACRO REG,MAG,SALTO 56 ; %LOCAL SIGA 57 ; CJNE REG,MAG,SIGA 58 ; LJMP SALTO 59 ;SIGA 60 ; %ENDM 61 ; 62 ;BNE COMPARA Y SALTA SI NO ES IGUAL 63 ;BNE %MACRO REG,MAG,SALTO 64 ; %LOCAL SALTE,SIGA 65 ; CJNE REG,MAG,SALTE 66 ; LJMP SIGA 67 ;SALTE LJMP SALTO Pág. 2

3 68 ;SIGA 69 ; %ENDM ;SHIFTEO HACE RLC O RRC EN LA RAM INTERNA SEGUN UNA MASCARA 73 ; se hace para escribir menos ;SHIFTEO %MACRO DESDE,COMO 76 ; MOV R0,#DESDE 77 ; MOV mascara,como 78 ; LCALL ROLEO 79 ; %ENDM ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 83 ;******************************************************************************************* 84 ; ******************************************************************************************* 85 ; ******************************************************************************************* ; O R G A N I Z A C I O N D E L A R A M I N T E R N A ; ******************************************************************************************* 91 ; ******************************************************************************************* DEFSEG DATOS, START=$20, ABSOLUTE, CLASS=DATA 94 SEG DATOS 95 ; 96 ; SEGMENTO DE BITS 0020 (0001) 97 mascara DS 1 =0007# 98 DIRECCION_RAM BIT mascara.7 =0006# 99 DIRECCION_SHIFT BIT mascara.6 =00D5# 100 FLAG_ROLEO EQU PSW ; 103 ; SEGMENTO DE AUXILIARES 0021 (0001) 104 contador DS 1 ;21 contador general Pág. 3

4 0022 (0001) 105 aux0 DS 1 ; (0001) 106 dvdnd_l DS 1 ; (0001) 107 dvdnd_ml DS 1 ; (0001) 108 dvdnd_mh DS 1 ; (0001) 109 dvdnd_h DS 1 ;26 parte alta del dvdnd 0027 (0001) 110 aux1 DS 1 ; (0001) 111 divisor_h DS 1 ;28 parte alta del divisor 0029 (0001) 112 aux1_2 DS 1 ;29 002A (0001) 113 aux1_3 DS 1 ;2A 002B (0001) 114 rsltd_l DS 1 ;2B 002C (0001) 115 rsltd_ml DS 1 ;2C 002D (0001) 116 rsltd_mh DS 1 ;2D 002E (0001) 117 rsltd_h DS 1 ;2E parte alta del rsltd 002F (0001) 118 rsltd_hh DS 1 ;2F parte agregada al rsltd para producto 119 ;tienen que ser tantos bytes como tenga 120 ;el multiplicador 0030 (0001) 121 resto DS 1 ;30 Aca queda el resto de la division (0001) 123 mltplcndo_l DS 1 ; (0001) 124 mltplcndo_ml DS 1 ; (0001) 125 mltplcndo_mh DS 1 ; (0001) 126 mltplcndo_h DS 1 ;34 parte alta del multiplicando 0035 (0001) 127 mltplcndo_hh DS 1 ;35 parte agregada al multiplicando 128 ;tienen que ser tantos bytes como tenga 129 ;el multiplicador 0036 (0001) 130 mltplcdor_h DS 1 ;36 parte alta del multiplicador (0001) 132 hexal DS 1 ; (0001) 133 hexah DS 1 ;38 numero hexa a convertir en BCD 0039 (0003) 134 displ DS 3 ;39lugar a donde va a parar el BCD 003C (0001) 135 finaux DS 1 ;comienzo del stack 136 ; 137 ;***************************************************************************** 138 ; CONSTANTES 139 = BYTES_DVDND EQU Pág. 4

5 = BYTES_DVSR EQU 2 ;a pesar de que tiene 1 le asignamos ;para poder shiftearlo sin perder nada 144 = BYTES_DIVISION EQU (BYTES_DVDND) 146 = BYTES_MLTPLCDR EQU = BYTES_MLTPLCND EQU 4 + BYTES_MLTPLCDR 150 ;en realidad son 4 pero agregamos 151 ;tanto como tenga el multiplicador 152 ;para permitir el shifteo = BYTES_PRODUCTO EQU (BYTES_MLTPLCND) 156 = BYTES_BCD EQU = A_RAM_ALTA EQU b = A_RAM_BAJA EQU b = SHIFT_IZQUIERDA EQU b = SHIFT_DERECHA EQU b 163 =000A 164 BASE_DECIMAL EQU 10 = NIBBLE EQU 4 = LOW_RIGHT_DVDND EQU (A_RAM_BAJA + SHIFT_DERECHA + BYTES_DVDND) = LOW_RIGHT_DIVISION EQU (A_RAM_BAJA + SHIFT_DERECHA + BYTES_DIVISION) =00C4 168 HIGH_LEFT_DIVISION EQU (A_RAM_ALTA + SHIFT_IZQUIERDA + BYTES_DIVISION) =00C4 169 HIGH_LEFT_DVDND EQU (A_RAM_ALTA + SHIFT_IZQUIERDA + BYTES_DVDND) = LOW_RIGH_MLTPLCDR EQU (A_RAM_BAJA + SHIFT_DERECHA + BYTES_MLTPLCDR) =00C5 171 HIGH_LEFT_MLTPLCND EQU (A_RAM_ALTA + SHIFT_IZQUIERDA + BYTES_MLTPLCND) =00C3 172 HIGH_LEFT_BCD EQU (A_RAM_ALTA + SHIFT_IZQUIERDA + BYTES_BCD) ; ******************************************************************************************* 175 ; 176 ; 177 DEFSEG MYCODE, START=$0, ABSOLUTE, CLASS=CODE 178 ; Pág. 5

6 179 SEG MYCODE ;VECTORES 182 = ORG 00H ' 184 LJMP MAIN ;por si uso IRQ 185 ; ;PROGRAMA PRINCIPAL 188 ; 189 ;******************************************************************************************* 190 ; P R O G R A M A P R I N C I P A L 191 ;******************************************************************************************** 192 ;******************************************************************************************* 193 = ORG 30H " 3B" 195 MAIN MOV SP,#(finaux-1) ;ubico el stack Pointer A5' 196 LCALL CARGUE_UN_NUMERO_CQ ' 197 LCALL DIV4 198 ;cambiando las CONSTANTES 199 ;BYTES_DVDND y BYTES_DVSR 200 ;se ajusta a cualquier caso 201 ;para hacerlo on de fly, ponerlas 202 ;en variables A5' 204 LCALL CARGUE_UN_NUMERO_CQ 003C C' 205 LCALL MULT4 003F ' 206 LCALL HEXA_BCD NOP ;para poner el breakpoint Pág. 6

7 208 ;***************************************************************************** 209 ; 210 ;RUTINAS 211 ;******************************************************************************************* 212 ; DIV4 213 ; divide directamente dvdnd_h/l (4 bytes) por divisor_h (1 byte) 214 ; 215 ; los rsltds quedan en rsltd_h/l, El resto en resto (obviamente) 216 ; usa B,A,R0,R2 (si se usan en la rutina invocante se deben pushear) 217 ; Es muy facil generalizar la rutina para usar signo y la cantidad de bytes que se quiera. 218 ; DIV C2 D5 220 CLR FLAG_ROLEO " MOV aux1,# A MOV R2,#BYTES_DIVISION 004A 12 00EC' 223 LCALL CLEAR_rsltd 004D 75 21" MOV contador,#(8*(bytes_dvdnd-bytes_dvsr+1)+1) 225 ;para justificar el divisor = 25 en este caso E MOV A,divisor_h ' 228 JNZ JUSTIFICAR RET ;DIVISION POR CERO HABRIA QUE PONER UN FLAG 230 ; o cargar con $FFFFFFFF el resultado JUSTIFICAR 0055 E MOV A,divisor_h E7# 0D' 233 JNB ACC.7,JUSTIENDO ;para corregir el clasico error 234 ;del algoritmo de Booth en el que 235 ;si divisor.7 == 1 y dvdnd.7 ==1 236 ;con MSB dvdnd < divisor 237 ;se shiftea el dvdnd y se pierde 238 ;el bit 7 dando error 005A D2 D5 239 SETB FLAG_ROLEO 005C C3 240 CLR C Pág. 7

8 005D RRC A 005E F MOV divisor_h,a 0060 E MOV A,aux RRC A 0063 F MOV aux1,a DEC contador JUSTIENDO 0067 E MOV A,dvdnd_h " F0" 249 MOV B,divisor_h ; ojo el Assembler pone los Macros como comentario porque no los ; expande, pero esto no significa que SEAN comentarios 250 ;BLO A,B,LOOPDIV ;la primera vez se bate el dvdnd 251 ;para que primero sea menor y luego 252 ;mayor que el divisor (se podrian dividir 253 ;y comparar el resto con el divisor, para 254 ;ajustar) 255 ;BHI A,B,JUSTIDOS 0082 E MOV A,dvdnd_mh " F0" 257 MOV B,aux1 258 ;BLE A,B,LOOPDIV JUSTIDOS 0092 C3 260 CLR C ;shifteo el dvdnd a la derecha empezando 261 ;con el MSB 262 ;SHIFTEO dvdnd_h,#low_right_dvdnd 263 ;shifteo el rsltd a la derecha empezando 264 ;con el MSB ;SHIFTEO rsltd_h,#low_right_division A INC contador 00A ' 269 LJMP JUSTIENDO A8 271 LOOPDIV 00A " 2A" 272 MOV aux1_3,dvdnd_h 00AB 85 25" 29" 273 MOV aux1_2,dvdnd_mh Pág. 8

9 00AE C3 274 CLR C 00AF E MOV A,aux1_2 00B SUBB A,aux1 00B3 F MOV aux1_2,a 00B5 E5 2A 278 MOV A,aux1_3 00B SUBB A,divisor_h 00B9 F5 2A 280 MOV aux1_3,a 00BB 10 D7# 07' 281 JBC PSW.7,MOVER ;el carry en directo 00BE 85 2A" 26" 282 MOV dvdnd_h,aux1_3 00C " 25" 283 MOV dvdnd_mh,aux1_ C4 D3 285 SETB C C5 288 MOVER 289 ;shifteo el rsltd a la izquierda 290 ;empezando por el LSB ;SHIFTEO rsltd_l,#high_left_division CD D5 21" 03' 294 DJNZ contador,shift_div 00D DD' 295 JMP PONRESTO D3 297 SHIFT_DIV ;shifteo el dvdnd a la izquierda 298 ;empezando por el LSB 299 ;SHIFTEO dvdnd_l,#high_left_dvdnd DB 80 CB' 301 JMP LOOPDIV DD 306 PONRESTO 00DD 30 D5# 08' 307 JNB FLAG_ROLEO,DIVISOR_DIRECTO ;SHIFTEO dvdnd_l,#high_left_dvdnd 310 Pág. 9

10 00E8 311 DIVISOR_DIRECTO 00E " 30" 312 MOV resto,dvdnd_h EB 314 FINDIVISION 00EB RET 316 ; ******************************************************************************************* 317 ;Rutina para limpiar los auxiliares de resultado 00EC 317 CLEAR_rsltd 318 ;usa R0, R2 00EC 78 2E 319 MOV R0,#rsltd_h 00EE 320 LOOP_CLEAR 00EE F DEC R0 00F1 DA FB' 323 DJNZ R2,LOOP_CLEAR 00F RET 325 ;********************************************************************* 00F4 326 CLEAR_dvdnd F4 7A MOV R2,#(BYTES_DIVISION + 1) 00F MOV R0,#dvdnd_h 00F8 80 F4' 330 SJMP LOOP_CLEAR FA 332 ;********************************************************************* 333 CLEAR_DISP FA 7A MOV R2,#(BYTES_BCD) 00FC 78 3C 336 MOV R0,#(displ+3) 00FE 80 EE' 337 SJMP LOOP_CLEAR ;********************************************************************* SUMA 342 ;suma en multiple presicion lo que viene apuntado por R0 (LSB) con 343 ;la cantidad de bytes que trae R2 y lo apuntado por R1 (LSB) (idem cant. De bytes) 344 ;el rsltd queda en lo apuntado por R1, que debe tener disponible 1 byte mas 345 ;que lo apuntado por R0 346 ;usa A,R0,R1,R2 Pág. 10

11 C3 348 CLR C LOOP_SUMA 0101 E6 350 MOV A,@R ADDC A,@R F INC R INC R DA F9' 355 DJNZ R2,LOOP_SUMA ' 356 JNC FIN_SUMA 010A B 358 FIN_SUMA 010B RET 360 ;********************************************************************* C 362 MULT ;multiplica 4 bytes en mltplcndo_h/l por un byte en mltplcdor_h 365 ;el rsltd queda en rsltd_h/ll 366 ;puede facilmente generalizarse para cualquier cantidad de bytes C 75 35" MOV mltplcndo_hh,# F 7A MOV R2,#BYTES_PRODUCTO EC' 371 LCALL CLEAR_rsltd LOOP_PROD 373 ;SHIFTEO mltplcdor_h,#low_righ_mltplcdr C 50 09' 375 JNC NO_SUME E MOV R0,#mltplcndo_l B 378 MOV R1,#rsltd_l A MOV R2,#BYTES_MLTPLCND ' 380 LCALL SUMA NO_SUME 0127 C3 382 CLR C 383 ;SHIFTEO mltplcndo_l,#high_left_mltplcnd Pág. 11

12 E MOV A,mltplcdor_h E0' 386 JNZ LOOP_PROD RET 388 ;********************************************************************* HEXA_BCD ;convierte dos bytes hexa en tres byte en BCD (empaquetados como diría Marisa) F4' 390 LCALL CLEAR_dvdnd FA' 391 LCALL CLEAR_DISP 013B 85 37" 23" 392 MOV dvdnd_l,hexal 013E 85 38" 24" 393 MOV dvdnd_ml,hexah " MOV dvdnd_mh,# " MOV dvdnd_h,# LOOP_HEXA " 0A 397 MOV divisor_h,#base_decimal 014A ' 398 LCALL DIV4 014D E MOV A,resto ;el resto 014F 12 00F4' 400 LCALL CLEAR_dvdnd B" 23" 401 MOV dvdnd_l,rsltd_l C" 24" 402 MOV dvdnd_ml,rsltd_ml ORL displ,a 015A 7C MOV R4,#NIBBLE 015C 405 LOOP_BCD 406 ;SHIFTEO displ,#high_left_bcd 0164 DC F6' 407 DJNZ R4,LOOP_BCD 0166 E MOV A,dvdnd_ml DD' 409 JNZ LOOP_HEXA 016A E MOV A, divisor_h 411 ;BLE A,dvdnd_l,LOOP_HEXA E MOV A,dvdnd_l ORL displ,a 017B MOV R0,#displ Pág. 12

13 017D E MOV A,displ ;para dejarlo mas bonito 017F C4 417 SWAP A 0180 F MOV displ,a 0182 E5 3A 419 MOV A,displ C4 420 SWAP A 0185 F5 3A 421 MOV displ+1,a 0187 E5 3B 422 MOV A,displ C4 423 SWAP A 018A F5 3B 424 MOV displ+2,a C RET 427 ;********************************************************************* 018D 428 ROLEO 429 ;Subrutina para shiftear a derecha o izquierda a travez del carry 430 ;y hacia arriba o abajo de la RAM segun lo que traiga en 431 ;los bits 6 y 7 del auxiliar mascara, la cantidad de bytes 432 ;que tenga mascara en el nibble bajo 433 ;R0 apunta al primer byte a shiftear ;usa R0,R1,R2,A (si se usan en la rutina invocante se deben pushear ) D MOV R1,#mascara 018F E4 438 CLR A 0190 D7 439 XCHD A,@R FA 440 MOV R2,A ;en R2 la cantidad de bytes LOOP_SHIFT 0192 E6 443 MOV A,@R # 03' 445 JB DIRECCION_SHIFT,A_IZQUIERDA RRC A ' 447 SJMP SEGUIR A_IZQUIERDA RLC A 019A F6 450 SEGUIR1 Pág. 13

14 B 20 07# 03' 452 JB DIRECCION_RAM,ARRIBA 019E DEC R0 019F 80 01' 454 SJMP SEGUIR2 01A ARRIBA INC R A2 DA EE' 457 SEGUIR2 DJNZ R2,LOOP_SHIFT 01A RET ;bastante elegante!!!! ;************************************************************************** 01A5 461 CARGUE_UN_NUMERO_CQ A " FF 463 MOV dvdnd_h, #$FF ;cargo cualquier numero como 01A " 9F 464 MOV dvdnd_mh, #$9F ;demostracion 01AB 75 24" MOV dvdnd_ml, #$00 01AE 75 23" MOV dvdnd_l, #$00 01B " MOV divisor_h, #$ B " 9F 469 MOV mltplcndo_l,#$9f 01B " FF 470 MOV mltplcndo_ml,#$ff 01BA 75 33" AA 471 MOV mltplcndo_mh,#$aa 01BD 75 34" MOV mltplcndo_h,#$00 01C " 7F 473 MOV mltplcdor_h,#$7f C " FF 475 MOV hexah,#$ff 01C " 9F 476 MOV hexal,#$9f C RET Pág. 14

15 01C1 481 ;************************************************************************** 482 ; Rutina rápida para elevar al cuadrado. 483 ; se podría usar la de multiplicación, pero esta es m s rápida. 484 ; se puede usar con leves variaciones para hacer una rutina de producto 485 ; rápida de dos bytes por dos bytes CUADRADO ; Recibe el dato en mltplcndo_ml y _l y devuelve el rsltd en 490 ; rsltd_h/l 491 ; usa R0,R1,B,A C MOV R0,#mltplcndo_l 01C MOV R1,#mltplcndo_l 01C F5' 495 LCALL PRODUCTO 01C8 F5 2B 496 MOV rsltd_l,a 01CA 85 F0" 2C" 497 MOV rsltd_ml,b 01CD INC R0 01CE 12 01F5' 499 LCALL PRODUCTO 01D RLC A 01D2 C5 F0 501 XCH A,B 01D RLC A 01D5 C5 F0 503 XCH A,B 01D ' 504 JNC CUAD0 01D9 05 2E 505 INC rsltd_h 01DB 506 CUAD0 01DB 25 2C 507 ADD A,rsltd_ml 01DD F5 2C 508 MOV rsltd_ml,a 01DF 50 02' 509 JNC CUAD1 01E1 05 F0 510 INC B ;No teman NO puede haber C 01E3 85 F0" 2D" 511 CUAD1 MOV rsltd_mh,b 01E INC R1 01E F5' 513 LCALL PRODUCTO 01EA 25 2D 514 ADD A,rsltd_mh 01EC F5 2D 515 MOV rsltd_mh,a 01EE C5 F0 516 XCH A,B 01F0 35 2E 517 ADDC A,rsltd_h Pág. 15

16 01F2 F5 2E 518 MOV rsltd_h,a ; y se terminó!!!!!!!!!!! 01F RET 520 ;************************************************************************** 521 ;Realiza el producto de dos variable de un byte apuntadas por R0 y R1 01F5 522 PRODUCTO F5 E6 524 MOV A,@R0 01F6 87 F0 525 MOV B,@R1 01F8 A4 526 MUL AB 01F RET ;************************************************************************** 530 END No lines contained errors. No lines contained warnings. Breve explicación de la rutina de división Div4. Esta rutina está extractada de una mucho más general (cualquier cantidad de bytes dividos por otra cantidad cualquiera de bytes y con signo) que hice para un desarrollo mio. No la debugee, pero supongo que estará bien ( Acá se dividen cuatro bytes dvdnd_h a dvdnd_l y (se reserva un aux0 para shift de este dividendo) por un byte divisor_h (y se reserva un byte aux1 para el shift del divisor). 1.Se justifica (virtualmente) el divisor con el byte MSB del dividendo. A ese efecto se pone un contador en 25 (las veces que lo corrí virtualmente hacia la parte significativa más uno, ya que cuando contador == 0 se termina la división). 2.Se verifica que el divisor no tenga un 1 en el bit MSB (7) ya que eso podría traer un desborde del dividendo cuando lo justifique para ser mayor que el divisor (ejemplo divisor = dividendo = , en este caso al justificar a la derecha el dividendo perdería un uno) Pág. 16

17 En caso que así sea lo shifteo (al divisor) a la derecha hacia el aux0 y decremento el contador. Se memoriza que esto ocurra con un Flag (Flag_roleo), a fin de calcular luego correctamente el resto de la división. 3.Se corre a la derecha (hacia la parte baja) al dividendo hasta que sea menor que el divisor y luego nuevamente hacia la parte alta hasta que sea mayor. Se ajusta el contador. Ahora se pueden restar. 4.Se resta el dividendo menos el divisor en dos auxiliares, si el resultado es mayor que cero, se traslada el resultado al dividendo y se shiftea este (hacia el MSB) y se hace lo mismo con el resultado, ingresado un uno en el bit menos significativo. En caso que la resta de negativa, se shiftea el dividendo y el resultado pero introduciendo un cero en el bit menos significativo de este. Se disminuye el contador. 5. Se itera el paso anterior hasta que el contador dé cero. 6.Se calcula el resto, tomando en cuenta si hubo roleo (Flag_roleo) inicial del divisor, caso en que se shiftea el dividendo, ya que las restas se hicieron en dos bytes. Obvio!!!. Pág. 17

CONJUNTO DE INSTRUCCIONES PARA LA FAMILIA DEL 51

CONJUNTO DE INSTRUCCIONES PARA LA FAMILIA DEL 51 CONJUNTO DE INSTRUCCIONES PARA LA FAMILIA DEL 51 Notas para el conjunto de instrucciones y modos de direccionamiento Rn Registros de R0-R7 del banco de registro seleccionado actualmente. Direct Dirección

Más detalles

BLOQUE 3 (PARTE 2) MICROCONTROLADOR 8051 DESCRIPCIÓN GENERAL

BLOQUE 3 (PARTE 2) MICROCONTROLADOR 8051 DESCRIPCIÓN GENERAL SISTEMAS ELECTRÓNICOS DIGITALES BLOQUE 3 MICROCONTROLADORES (PARTE 2) MICROCONTROLADOR 8051 DESCRIPCIÓN GENERAL Enrique Mandado Pérez María José Moure Rodríguez Familia original del microcontrolador 8051

Más detalles

Tablas familia MCS-51 (8051)

Tablas familia MCS-51 (8051) Tablas familia MCS-5 (805) y detalles para el Atmel AT89C5RE Informática Industrial Ingeniería Técnica Industrial, esp. Electrónico Departamento de Informática de Sistemas y Computadores - DISCA Escuela

Más detalles

Práctica 1 : INTRODUCCIÓN Práctica 1: Introducción al 8051

Práctica 1 : INTRODUCCIÓN Práctica 1: Introducción al 8051 Práctica 1 : INTRODUCCIÓN 8051 1. Práctica 1: Introducción al 8051 ARQUITECTURA 1. Organización microcontrolador 8051 RAM 256 Bytes MEMORIA PASIVA (OPCIONAL) HASTA 4KBytes 8051 (8 bits) T0 T1 PUERTO SERIE

Más detalles

Relación de Problemas I

Relación de Problemas I Relación de Problemas I 352) $1'5e6 52/'È1 $5$1'$ 1. Realizar el cálculo del tiempo que transcurre durante la ejecución del bloque de instrucciones sombreado, en función del contenido de los registros

Más detalles

CONJUNTO DE INSTRUCCIONES DEL MICROCONTROLADOR Regreso al menú principal

CONJUNTO DE INSTRUCCIONES DEL MICROCONTROLADOR Regreso al menú principal CONJUNTO DE INSTRUCCIONES DEL MICROCONTROLADOR 8051 Regreso al menú principal ACALL dirección 11 (llamada absoluta) ACALL llama incondicionalmente a una subrutina localizada en la dirección indicada. Durante

Más detalles

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp

Ciclos de máquina. Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Ciclos de máquina Otro ejemplo: decremento de un registro par (donde rp = HL, DE, BC, SP) DCX rp Acceso a periféricos: función del pin IO/M Este μp cuenta con dos instrucciones específicas para I/O, llamadas

Más detalles

Microcontrolador Cygnal 8051F040

Microcontrolador Cygnal 8051F040 Microcontrolador Cygnal 8051F040 Ingeniería Técnica Industrial Electrónica. Informática Industrial. Prof. Dr. Alejandro Linares Barranco 1 Microcontrolador Cygnal 8051F040. Contenido 1. Introducción y

Más detalles

Instrucciones del microprocesador

Instrucciones del microprocesador Instrucciones del microprocesador Formato de las Instrucciones Las líneas de instrucciones se integran de 4 campos. [Identificador]: Se utiliza par etiquetar a las intrucciones donde se realizara el salto,nombre

Más detalles

Ejercicios Básicos para Simulación

Ejercicios Básicos para Simulación Ejercicios Básicos para Simulación [6609] Laboratorio de Microcomputadoras Facultad de Ingeniería - Universidad de Buenos Aires Durante el desarrollo de estas prácticas, se trabajará con la versión gratuita

Más detalles

ASCII HTML HTML Dec Hex Símbolo Numero Nombre Descripción

ASCII HTML HTML Dec Hex Símbolo Numero Nombre Descripción 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F! " # $ % & ' ( ) * +, -. /! " # $ % & ' ( ) * +, -. / " & 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

Más detalles

Introducción a la Programación en Lenguaje Ensamblador.

Introducción a la Programación en Lenguaje Ensamblador. CAPITULO 5 Introducción a la Programación en Lenguaje Ensamblador. 5.1. INTRODUCCION Se entiende por modelo de programación al conjunto de registros accesibles por el usuario que junto al set de instrucciones

Más detalles

ARQUITECTURA DE LAS COMPUTADORAS

ARQUITECTURA DE LAS COMPUTADORAS ARQUITECTURA DE LAS COMPUTADORAS PROGRAMAS UTILIZANDO EL MICROPROCESADOR 8085 (2007) DETERMINAR PASO A PASO EL RESULTADO DE LA CORRIDA DE LOS SIGUIENTES PROGRAMAS 1) MEMORIA CONTENIDO MNEMONICO A 66 06

Más detalles

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86)

Universidad Nacional de Ingeniería Arquitectura de Maquinas I. Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad II: Arquitectura y Programacion de un Microprocesador (80X86) Arq. de Computadora I Ing. Carlos Ortega H. 1 Interrupciones FUNCIÓN INT

Más detalles

ISO 10646, ISO 8879, ISO

ISO 10646, ISO 8879, ISO Tabla de ASCII estándar, nombres de entidades HTML, ISO 10646, ISO 8879, ISO 8859-1 romano 1 Soporte para browsers: todos los browsers 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 20 21 22 23 24 25

Más detalles

Trabajo Práctico Nro 3: Assembler

Trabajo Práctico Nro 3: Assembler Año 28 Banderas Nombre Estado = Estado = 1 Desbordamiento: Indica cuando el resultado de una operación con NV-No hubo OV-Desborde signo a excedido la capacidad del up. desborde Dirección: Controla la selección

Más detalles

MODOS DE DIRECCIONAMIENTO DEL µc51

MODOS DE DIRECCIONAMIENTO DEL µc51 Los modos de direccionamiento son la manera que tienen los µc para accesar a los distintos recursos con los que cuenta. Para manipular los datos y códigos de operación en cada programa se tienen las siguientes

Más detalles

Set de Instrucciones del CPU08 Sistemas con Microprocesadores y Microcontroladores

Set de Instrucciones del CPU08 Sistemas con Microprocesadores y Microcontroladores Set de Instrucciones del CPU08 Sistemas con Microprocesadores y Microcontroladores http://www.herrera.unt.edu.ar/procesadores Temas a Tratar Tipos de Instrucciones. Movimiento de Datos Procesamiento Aritméticas

Más detalles

Ejemplo del uso de las subrutinas

Ejemplo del uso de las subrutinas Ejemplo del uso de las subrutinas Enunciado del problema: Diseñar un contador BCD que cuente de 0 a 59 para simular un timer de 60 segundos y que el conteo de dos dígitos BCD, sea desplegado en los displays

Más detalles

NOTA TÉCNICA. FECHA: 29 de marzo de 2011. Airbag DTC Codes NºPSA.15

NOTA TÉCNICA. FECHA: 29 de marzo de 2011. Airbag DTC Codes NºPSA.15 NOTA TÉCNICA FECHA: 29 de marzo de 2011 Airbag DTC Codes NºPSA.15 7150 Defecto información velocidad vehículo : No 71AD Defecto presente en el calculador de detección de choque con peatón : No 7362 Defecto

Más detalles

Práctica 3 - Arquitectura del CPU

Práctica 3 - Arquitectura del CPU Práctica 3 - Arquitectura del CPU Organización del Computador 1 Primer cuatrimestre de 2012 Ejercicio 1 A partir de cada uno de los siguientes vuelcos parciales de memoria y estados del procesador, realizar

Más detalles

Intel 8086 modelo básico (primera parte) Registros:

Intel 8086 modelo básico (primera parte) Registros: Intel 8086 modelo básico (primera parte) Registros: Uso general: AX, BX, CX, DX, SI, DI, BP. Uso con direccionamento especial: SP, IP. Registros de segmento: CS, SS, DS, ES. Modelo de los registros: 20

Más detalles

ESCUELA POLITÉCNICA NACIONAL

ESCUELA POLITÉCNICA NACIONAL ESCUELA POLITÉCNICA NACIONAL Campus Politécnico "J. Rubén Orellana R." FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA Carrera de Ingeniería Electrónica y Control Carrera de Ingeniería Electrónica y Telecomunicaciones

Más detalles

Los números naturales y enteros en el 80X86 y en LAN

Los números naturales y enteros en el 80X86 y en LAN Los números naturales y enteros en el 80X86 y en LAN 1. Los números naturales en el 80X86/TASM Representación Sistema de representación En el 80X86 (y en la mayoría de los procesadores), los números naturales

Más detalles

Bus de direcciones. Bus de datos

Bus de direcciones. Bus de datos 1) INTRODUCCIÓN A LA MÁQUINA SENCILLA La máquina sencilla (MS) es un computador concebido para fines exclusivamente didácticos. MS sólo dispone de dos bloques: Unidad Central de Proceso y memoria principal.

Más detalles

CAPITULO II SISTEMAS DE NUMERACIÓN Y CÓDIGOS

CAPITULO II SISTEMAS DE NUMERACIÓN Y CÓDIGOS SISTEMA DE NUMERACIÓN Y CÓDIGOS CAPITULO II SISTEMAS DE NUMERACIÓN Y CÓDIGOS CÓDIGO Un código es un grupo de símbolos que representan algún tipo de información reconocible. En los sistemas digitales, los

Más detalles

Sistemas numéricos -aritmética- Taller de programación

Sistemas numéricos -aritmética- Taller de programación Sistemas numéricos -aritmética- Taller de programación I semestre, 2016 Aritmética en sistemas numéricos Temas Precisión En computadoras todas las operaciones se dan entre números binarios con tamaño finito,

Más detalles

Denominación: Relé Universal Descripción del protocolo Modbus: N EA: 1451 Sustitución de: 12280-1608-00 Hoja: 1 de 10

Denominación: Relé Universal Descripción del protocolo Modbus: N EA: 1451 Sustitución de: 12280-1608-00 Hoja: 1 de 10 N EA: 1451 Sustitución de: 12280-1608-00 Hoja: 1 de 10 MODBUS TCP/IP Puerto TCP: 502 Cantidad máx. de conexiones TCP (max. TCP connections): 5 MODBUS RTU Esquema de conexiones RS 485 Nombre de conexión

Más detalles

El Stack y Subrutinas

El Stack y Subrutinas El Stack y Subrutinas El STACK El Stack es un grupo de localidades de memoria de lecto-escritura que son usadas para almacenar el contenido de registros y direcciones de memoria temporalmente durante la

Más detalles

Conceptos de Arquitectura de Computadoras Curso 2015

Conceptos de Arquitectura de Computadoras Curso 2015 PRACTICA 1 Assembly, Instrucciones, Programas, Subrutinas y Simulador MSX88 Objetivos: que el alumno Domine las instrucciones básicas del lenguaje assembly del MSX88. Utilice los diferentes modos de direccionamiento.

Más detalles

PRÁCTICA 2: Programas básicos. Tipos de direccionamiento.

PRÁCTICA 2: Programas básicos. Tipos de direccionamiento. SISTEMAS ELECTRÓNICOS Y AUTOMÁTICOS PRACTICAS DE MICROCONTROLADORES PIC PRÁCTICA 2: Programas básicos. Tipos de direccionamiento. Tipos de direccionamiento Ejemplos y ejercicios - 1 - 1. Objetivos - Introducir

Más detalles

CONVERSIONES CONVERSIÓN DE BINARIO A: Binario a Octal: se agrupan de a 3 bits y luego se lee el número , B 635,15 O 6 3 5, 1 5 O

CONVERSIONES CONVERSIÓN DE BINARIO A: Binario a Octal: se agrupan de a 3 bits y luego se lee el número , B 635,15 O 6 3 5, 1 5 O CONVERSIONES CONVERSIÓN DE BINARIO A: Binario a Octal: se agrupan de a 3 bits y luego se lee el número. 110011101,001101 B Oct 110 011 101, 001 101 B 635,15 O 6 3 5, 1 5 O Ej: 1001011011,1010 B R/. 1133,50

Más detalles

Ejercicios Práctica 4 Primer Cuatrimestre de de abril de 2008

Ejercicios Práctica 4 Primer Cuatrimestre de de abril de 2008 Ejercicios Práctica 4 Primer Cuatrimestre de 2008 Departamento de Computación, FCEyN,Universidad de Buenos Aires. 8 de abril de 2008 Ejercicio 2 Considere el siguiente programa escrito en Assembler de

Más detalles

Arquitectura y mapa de memoria del 80C167. Cesáreo Fernández Martínez Álvaro Sánchez Miralles

Arquitectura y mapa de memoria del 80C167. Cesáreo Fernández Martínez Álvaro Sánchez Miralles Arquitectura y mapa de memoria del 80C167 Cesáreo Fernández Martínez Álvaro Sánchez Miralles Introducción Microcontrolador (Embedded Processor) de 16 bits ALU y Registros de 16 bits Diseñado para tareas

Más detalles

Tema 2 INSTRUCCIONES DE UN COMPUTADOR. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Tema 2 INSTRUCCIONES DE UN COMPUTADOR. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía Tema 2 INSTRUCCIONES DE UN COMPUTADOR ÍNDICE Definiciones Formatos de instrucción Modos de direccionamiento Tipos de instrucciones Diagrama de flujo Lenguaje del computador Definiciones: conceptos de arquitectura

Más detalles

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo

SISTEMAS NUMERICOS. Ing. Rudy Alberto Bravo SISTEMAS NUMERICOS SISTEMAS NUMERICOS Si bien el sistema de numeración binario es el más importante de los sistemas digitales, hay otros que también lo son. El sistema decimal es importante porque se usa

Más detalles

Organización del Computador I Verano. Aritmética (4 de 5) Basado en el capítulo 4 del libro de Patterson y Hennessy Multiplicaciones y Divisiones

Organización del Computador I Verano. Aritmética (4 de 5) Basado en el capítulo 4 del libro de Patterson y Hennessy Multiplicaciones y Divisiones Organización del Computador I Verano Aritmética (4 de 5) Basado en el capítulo 4 del libro de Patterson y Hennessy Multiplicaciones y Divisiones Verano 2014 Profesora Borensztejn MULTIPLICACIONES 1011

Más detalles

Laboratorio 1 Entorno de desarrollo y subrutinas

Laboratorio 1 Entorno de desarrollo y subrutinas Laboratorio 1 Entorno de desarrollo y subrutinas Objetivos Dar los primeros pasos con el uso de la placa. Desarrollar subrutinas que acceden a puertos de entrada y salida (E/S). Validar subrutinas básicas

Más detalles

5 - Lenguaje Ensamblador

5 - Lenguaje Ensamblador PROGRAMACIÓN EN ENSAMBLADOR 62 Fuente.asm,.s51,... Fases del Ensamblado Ensamblado Objeto.obj,.r03 Objeto Enlazado Ejecutable.hex,.bin Librerías Eprom Simulador Emulador Monitor PROGRAMACIÓN EN ENSAMBLADOR

Más detalles

Ejercicio. Solución. Banderas. Banderas. Banderas 05/10/2011 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80

Ejercicio. Solución. Banderas. Banderas. Banderas 05/10/2011 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80 1 UNIDAD 5 2 A PARTE PROGRAMANDO EN EL ENSAMBLADOR DEL Z80 2 Cargue el numero F2H y 68H en los registros B y C respectivamente Almacene A2H en la locación de memoria 2065H Reste el 68H de F2H (F2H-68H)

Más detalles

Disco de Alberti. Y el disco interno: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z

Disco de Alberti. Y el disco interno: A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Disco de Alberti Se encuentra descrito en un manuscrito del siglo XVI en el cual su creador, Leon Battista Alberti explica su funcionamiento y denota el uso básico de dos alfabetos de la siguiente manera:

Más detalles

Estructura de Computadores. 1. Ejercicios Resueltos 1.1. Tema 6. La unidad aritmética y lógica

Estructura de Computadores. 1. Ejercicios Resueltos 1.1. Tema 6. La unidad aritmética y lógica Estructura de Computadores Tema 6. La unidad aritmética y lógica Operaciones típicas de la unidad aritmético-lógica. Algoritmos de multiplicación de Robertson y de Booth. Algoritmos de división con y sin

Más detalles

RESEÑA DE LENGUAJE C

RESEÑA DE LENGUAJE C RESEÑA DE LENGUAJE C VARIABLES La función main. Es el punto de entrada al programa. void main(void) Aquí escribo mi programa Tipos de datos. Char. El char es una variable de 1 byte. Almacena números enteros.

Más detalles

UNIVERSIDAD DE BUENOS AIRES Facultad de Ingeniería. Docentes : Ing. Jorge A. Alberto (teóricas)

UNIVERSIDAD DE BUENOS AIRES Facultad de Ingeniería. Docentes : Ing. Jorge A. Alberto (teóricas) UNIVERSIDAD DE BUENOS AIRES Facultad de Ingeniería Docentes : Ing. Jorge A. Alberto (teóricas) jalbert@fi.uba.ar Ing. Marisa Bauzá mroman@fi.uba.ar Ing. Graciela Ratto gratto@fi.uba.ar Ing. Marcela Perez

Más detalles

Tema 1. Fundamentos del lenguaje ensamblador

Tema 1. Fundamentos del lenguaje ensamblador Tema 1. Fundamentos del lenguaje ensamblador Laboratorio de Estructura y Organización de Computadores Grados en Ingeniería Informática e Ingeniería de Computadores Curso 2012-2013 Índice Estructura del

Más detalles

COLEGIO LOS ARCOS Guía de trabajo #4 Segmentos proporcionales 9no grado

COLEGIO LOS ARCOS Guía de trabajo #4 Segmentos proporcionales 9no grado GUIA DE TRABAJO Materia: Matemáticas. Tema: Geometría 4 - Segmentos proporcionales. Fecha: Profesor: Fernando Viso Nombre del alumno: Sección del alumno: CONDICIONES: Trabajo individual. Sin libros, ni

Más detalles

Unidades Aritméticas. Full Adder de un Bit. Sumador/Restador. Full Adder de 32 Bits. Carry Lookahead de 4 Bits. Suma Rápida con Carry Lookahead.

Unidades Aritméticas. Full Adder de un Bit. Sumador/Restador. Full Adder de 32 Bits. Carry Lookahead de 4 Bits. Suma Rápida con Carry Lookahead. Unidades Aritméticas Full Adder de un Bit a i b i a i b i c i s i c i+1 c i+1 s i s i = a i b i c i + a i b i c i + a i b i c i + a i b i c i c i+1 = a i b i + a i c i + b i c i c i 0 0 0 0 0 0 0 1 1 0

Más detalles

Operaciones lógicas y repetición

Operaciones lógicas y repetición Organización de computadoras Universidad Nacional de Quilmes http:// Repaso Algebra de Boole Memoria principal datos direcciones Unidad Aritmético- Logica (ALU) Unidad de Control de programa (UC) CPU 1

Más detalles

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones Introducción a la Computación Capítulo 10 Repertorio de instrucciones: Características y Funciones Que es un set de instrucciones? La colección completa de instrucciones que interpreta una CPU Código máquina

Más detalles

Terminales del P 8085 (vistos hasta ahora)

Terminales del P 8085 (vistos hasta ahora) Terminales del P 8085 (vistos hasta ahora) Buses de direcciones y datos Bus de control Alimentación, clock, reset Registros internos del P 8085 Transferencia: MVI r,dato MOV r1,r2 LDA dir STA dir Aritméticas:

Más detalles

W4IKS MANUAL DEL USUARIO

W4IKS MANUAL DEL USUARIO W4IKS MANUAL DEL USUARIO Introducción El controlador 170 es una mini computadora diseñada para controlar señales de transito. El hardware esta compuesto por el procesador, memoria (RAM y EPROM), una interfase

Más detalles

Algoritmos Multiplicación División

Algoritmos Multiplicación División Algoritmos Multiplicación División 1 Algoritmos de Multiplicación Producto = Multiplicando * Multiplicador P : producto R: Multiplicando Q: Multiplicador P = R * Q 2 Algoritmos de Multiplicación Primer

Más detalles

El microprocesador de 8 bits Z80

El microprocesador de 8 bits Z80 INTRODUCCIÓN El microprocesador de 8 bits Z80 El Z80 es un microprocesador de la empresa Zilog Inc., que surgió de personas que desarrollaron el 8080 en INTEL, por lo que mantiene cierta compatibilidad

Más detalles

OPERACIONES CON NÚMEROS BINARIOS

OPERACIONES CON NÚMEROS BINARIOS OPERACIONES CON NÚMEROS BINARIOS Centro CFP/ES SUMA BINARIA La información tenemos que transformarla, compararla y procesarla. Para ello empleamos la aritmética binaria, es decir, procesos matemáticos

Más detalles

Módulo LCD HD44780 de de Hitachi

Módulo LCD HD44780 de de Hitachi Módulo LCD HD4478 de de Hitachi y el el µc µc85 Módulo LCD HD4478 de de Hitachi E R / W D-D7 D-D7 VDD Vo Vss Controlador Controlador del del LCD LCD HD4478 HD4478 Manejador Manejador Del Del LCD LCD Manejador

Más detalles

Los dos círculos deben quedar unidos al centro y con la posibilidad de girar cada uno de ellos de forma independiente.

Los dos círculos deben quedar unidos al centro y con la posibilidad de girar cada uno de ellos de forma independiente. MATERIAL NECESARIO PARA LAS SESIONES DE CRIPTOGRAFÍA CLÁSICA SUSTITUCIÓN MONOALFABÉTICA POLIGRÁMICA - 20 de Agosto REGLAS PARA EL ALGORITMO PLAYFAIR Regla Si m1 y m2: Entonces c1 y c2: 1 Se encuentran

Más detalles

Es una división de polinomios por el método de coeficientes separados.

Es una división de polinomios por el método de coeficientes separados. Baldor Ejercicio 58 - #13 Dividir por coeficientes separados: entre Es una división de polinomios por el método de coeficientes separados. Procedimiento general para la división de polinomios por el método

Más detalles

Organización del Computador I 1er. Parcial 17-Mayo-2005. Turno:

Organización del Computador I 1er. Parcial 17-Mayo-2005. Turno: Nota: En el parcial se puede tener la cartilla de Assembler y la de seguimiento (formatos de instrucción) pero no se pueden compartir. Para aprobar el parcial, son necesarios 6(seis) puntos. Para promocionar,

Más detalles

ESCUELA POLITÉCNICA NACIONAL

ESCUELA POLITÉCNICA NACIONAL ESCUELA POLITÉCNICA NACIONAL Campus Politécnico "J. Rubén Orellana R." FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA Carrera de Ingeniería Electrónica y Control Carrera de Ingeniería Electrónica y Telecomunicaciones

Más detalles

8.4. El software en los μprocesadores

8.4. El software en los μprocesadores 8.4. El software en los μprocesadores Ejemplo de comandos de la CPU: Tarea: Sumar dos números A y B. Suponer los datos A y B almacenados en las posiciones 1000 2 y 1010 2 respectivamente. El resultado

Más detalles

Un. VIII. Generación de Código Objeto

Un. VIII. Generación de Código Objeto Un. VIII. Generación de Código Objeto 8.1 Lenguaje Máquina Es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. El lenguaje máquina solo es entendible por las computadoras.

Más detalles

Programación avanzada en Ensamblador. Tareas que realiza el programa ensamblador

Programación avanzada en Ensamblador. Tareas que realiza el programa ensamblador Programación avanzada en Ensamblador Cesáreo Fernández Martínez Álvaro Sánchez Miralles Tareas que realiza el programa ensamblador Traduce el fuente.a66 a código máquina.obj mov Rx, Ry mov reg, #dato Código

Más detalles

Problemario: Memoria / Entrada Salida / Buses / Interrupciones

Problemario: Memoria / Entrada Salida / Buses / Interrupciones Universidad simón Bolívar Departamento de Electrónica y Circuitos / Sección de Sistemas Digitales EC2721 Arquitectura del Computador I Problemario: Memoria / Entrada Salida / Buses / Interrupciones PARTE

Más detalles

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos

Estructura de Computadores. Problemas de Instrucciones y Direccionamientos Estructura de Computadores. Problemas de Instrucciones y Direccionamientos Departamento de Arquitectura y Tecnología de Sistemas Informáticos Octubre 2009 1. Sea un computador con palabras y direcciones

Más detalles

ESTRUCTURA Y ORGANIZACIÓN DE COMPUTADORES

ESTRUCTURA Y ORGANIZACIÓN DE COMPUTADORES Instrucciones del 8088/8086. Instrucciones de trasferencia de datos. MOV MOV destino, origen Transfiere un byte o una palabra desde el operando origen al operando destino. PUSH PUSH origen Decrementa el

Más detalles

Sistemas Numéricos Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas

Sistemas Numéricos Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas 1 Sistemas Numéricos 2013 Transversal de Programación Básica Proyecto Curricular de Ingeniería de Sistemas 2 Introducción Un sistema de numeración es un conjunto de símbolos y reglas que permiten representar

Más detalles

UNIDAD III NÚMEROS FRACCIONARIOS

UNIDAD III NÚMEROS FRACCIONARIOS UNIDAD III NÚMEROS FRACCIONARIOS COMPETENCIAS E INDICADORES DE DESEMPEÑO Identifica los números fraccionarios y realiza operaciones con ellos. Identifica los porcentajes, decimales y fraccionarios y realiza

Más detalles

RELOJ CRONÓMETRO DIGITAL

RELOJ CRONÓMETRO DIGITAL MICROPROCESADORES 2003/2004 RELOJ CRONÓMETRO DIGITAL Jaime Pérez Crespo Rubén Seijas Valverde Introducción: El objetivo de esta práctica es la construcción de un reloj y cronómetro digital bajo el procesador

Más detalles

TUTORIAL: AÑADIR NUEVA FUNCIONALIDAD A UN JUEGO DE NES

TUTORIAL: AÑADIR NUEVA FUNCIONALIDAD A UN JUEGO DE NES TUTORIAL: AÑADIR NUEVA FUNCIONALIDAD A UN JUEGO DE NES Este proceso es un poco complicado y en algunos juegos no se puede realizar. Para el ejemplo, vamos a utilizar el juego Adventures of Dino Riki, The

Más detalles

MICROPROCESADORES. ANL C, <orig.bit>: Y lógico entre el bit y el indicador de acarreo.

MICROPROCESADORES. ANL C, <orig.bit>: Y lógico entre el bit y el indicador de acarreo. Instrucciones Booleanas. El 8051 contiene un completo procesador Booleano (por bits), el cual permite ejecutar instrucciones de limpieza, establecimiento o complementación de un solo bit, y operaciones

Más detalles

Códigos HTML - Caracteres y símbolos

Códigos HTML - Caracteres y símbolos Códigos HTML - Caracteres y símbolos Tabla de ASCII estándar, nombres de entidades HTML, ISO 10646, ISO 8879, ISO 8859-1 alfabeto romano numero 1 Soporte para browsers: todos los browsers 32 33 34 35 36

Más detalles

RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4)

RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4) RELACIÓN DE PROBLEMAS DE LÓGICA PROGRAMADA (TEMA 4) 1) Se ha escrito el programa adjunto en lenguaje ensamblador del microprocesador 8085. Sabiendo que se encuentra almacenado a partir de la posición 2000H

Más detalles

Ingeniería Técnica en Informática de Sistema E.T.S.I. Informática Universidad de Sevilla

Ingeniería Técnica en Informática de Sistema E.T.S.I. Informática Universidad de Sevilla Fundamentos de Computadores Representación Binaria Ingeniería Técnica en Informática de Sistema E.T.S.I. Informática Universidad de Sevilla Versión 1.0 (Septiembre 2004) Copyright 2004 Departamento de

Más detalles

Arquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005

Arquitectura intel 8086. Preámbulo de OSO para alumnos formados en el procesador MIPS. Asignatura Sistemas Operativos Murcia abril de 2005 Arquitectura intel 8086 Preámbulo de OSO para alumnos formados en el procesador MIPS Asignatura Sistemas Operativos Murcia abril de 2005 página 1. Introducción 2 2.- Direccionamiento y Registros de Segmento

Más detalles

UNIVERSIDAD DE VALLADOLID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE TELECOMUNICACIÓN PROYECTO FIN DE CARRERA INGENIERO EN ELECTRÓNICA

UNIVERSIDAD DE VALLADOLID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE TELECOMUNICACIÓN PROYECTO FIN DE CARRERA INGENIERO EN ELECTRÓNICA UNIVERSIDAD DE VALLADOLID ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE TELECOMUNICACIÓN PROYECTO FIN DE CARRERA INGENIERO EN ELECTRÓNICA Diseño de un Ensamblador Simulador para el Microcontrolador i8051/8052

Más detalles

Grado en Ingeniería Informática - Ingeniería del Software Estructura de Computadores - Prueba 2 - Junio de 2011

Grado en Ingeniería Informática - Ingeniería del Software Estructura de Computadores - Prueba 2 - Junio de 2011 Apellidos, Nombre: Grado en Ingeniería Informática - Ingeniería del Software Estructura de Computadores - Prueba 2 - Junio de 2011 Problema 1. Realice un programa que calcule la cantidad de números negativos

Más detalles

La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: CAPITULO 8 Interrupciones 8.1. INTRODUCCION La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales: a) Consultas (polling):

Más detalles

El Diseño de un Lenguaje Máquina

El Diseño de un Lenguaje Máquina Arquitectura de Ordenadores Juego de Instrucciones del Procesador Intel Pentium Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática El Diseño de un Lenguaje

Más detalles

Aritmética del computador

Aritmética del computador Aritmética del computador Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain. Estructura del curso. Evolución y caracterización

Más detalles

Nibble Sirve para representar números hexadecimales. ( 0-9 A F) Sirve para representar números BCD (0...9)

Nibble Sirve para representar números hexadecimales. ( 0-9 A F) Sirve para representar números BCD (0...9) Formatos Binarios (80x86 ) 8 bits x 7 x 6 x 5 x 4 x 3 x 2 x 1 x 0 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 Alta orden ó más significativo significativo baja orden ó menos 16 bits x 15 x 14 x 13 x 12 x 11 x 10 x

Más detalles

Arquitectura de Computadores II 8086 Parte II

Arquitectura de Computadores II 8086 Parte II 8086 Parte II Facultad de Ingeniería Universidad de la República Instituto de Computación Contenido Funciones recursivas Manejadores de dispositivos Rutinas recursivas(1/10) Introducción Salvar contexto.

Más detalles

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño

Unidad Nº II Capacidad de la unidad central. de procesamiento. Instituto Universitario Politécnico. Santiago Mariño Instituto Universitario Politécnico Santiago Mariño Unidad Nº II Capacidad de la unidad central de procesamiento Organización de instrucción de máquina Cada instrucción requiere la información que necesita

Más detalles

Práctica 1. Sistemas de Numeración y Representación de la Información

Práctica 1. Sistemas de Numeración y Representación de la Información Práctica 1 UNlVERSlDAD DE BUENOS AIRES FACULTAD DE CIENCIAS EXACTAS Y NATURALES Organización Del Computador I Práctica I Sistemas de Numeración y Representación de la Información - Alcance Unidad 3.1 Sistemas

Más detalles

Resumen de las instrucciones del 8086/8088

Resumen de las instrucciones del 8086/8088 Resumen de las instrucciones del 8086/8088 En este capítulo se hace un resumen de las instrucciones del 8086/8088. Estas instrucciones se encuentran explicadas más detalladamente en otro capítulo. Se puede

Más detalles

CON LOS VALORES ASCII

CON LOS VALORES ASCII PRÁCTICA 6 FAMILIARIZARSE CON LOS VALORES ASCII DE TODAS LAS FUNCIONES DEL TECLADO. INTRODUCCIÓN La práctica siguiente está enfocada a que el alumno se familiarice con los valores ASCII de todas las funciones

Más detalles

Sistemas Numéricos. Introducción n a los Sistemas Lógicos y Digitales 2009

Sistemas Numéricos. Introducción n a los Sistemas Lógicos y Digitales 2009 Sistemas Numéricos Introducción n a los Sistemas Lógicos y Digitales 2009 Sergio Noriega Introducción a los Sistemas Lógicos y Digitales - 2009 MSB = Most Significative Bit LSB = Less Significative Bit

Más detalles

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011

Contenido. Conjunto de Instrucciones. Formato de la Instrucción. Instrucciones de 1 byte. Formato de la Instrucción 28/09/2011 1 ontenido 2 UNIDAD 5 EL LENGUAJE DE ENSAMBLADOR DEL Z80 onjunto de instrucciones Tipos de instrucciones Modos de direccionamiento El ensamblador del Z80 El simulador AVOET Implementación de un sistema

Más detalles

Lógica Computacional. Aritmética binaria

Lógica Computacional. Aritmética binaria Lógica Computacional Aritmética binaria Aritmética binaria - Suma Para sumar dos (o más) números en sistema binario seguimos el mismo procedimiento que para sistema decimal, teniendo en cuenta que: 1 +

Más detalles

6-REGISTROS DEL 8086 Y DEL 80286

6-REGISTROS DEL 8086 Y DEL 80286 ESTRUCTURA DE COMPUTADORES I (Capítulo 6: Los registros del microprocesador 8086) 1/7 6-REGISTROS DEL 8086 Y DEL 80286 6.1 INTRODUCCIÓN: Dentro del procesador existen unos contenedores especiales de 16

Más detalles

Informática 1 Sistemas numéricos: decimal, binario, octal y hexadecimal FCFA Febrero 2012

Informática 1 Sistemas numéricos: decimal, binario, octal y hexadecimal FCFA Febrero 2012 Informática 1 Sistemas numéricos: decimal, binario, octal y hexadecimal CONVERSIONES DE UN SISTEMA A OTRO Para la realización de conversiones entre números de bases diferentes se efectúan operaciones aritméticas

Más detalles

Temporización. Internal Timers

Temporización. Internal Timers Temporización Ejemplo: Calcular el tiempo de la siguiente rutina. Suponer fxtal = 11.0592 MHz DELAY: MOV R3,#250 ; 1 ciclo m ACA: NOP ; 1 ciclo m NOP ; 1 ciclo m NOP ; 1 ciclo m NOP ; 1 ciclo m DJNZ R3,ACA

Más detalles

ELO311 Estructuras de Computadores Digitales. Algoritmos de Multiplicación y División

ELO311 Estructuras de Computadores Digitales. Algoritmos de Multiplicación y División ELO311 Estructuras de Computadores Digitales Algoritmos de Multiplicación y División Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer

Más detalles

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez Dpto. Física y Arquitectura de Computadores Universidad Miguel Hernandez Es el lenguaje de más bajo nivel que admite una máquina. El ensamblador hace que el código binario(máquina sea transparente al usuario)

Más detalles

Práctica 6: Programación en ASM Orga 1

Práctica 6: Programación en ASM Orga 1 Matías Vargas Telles y Azul López basado en trabajo previo de Carlos A. Di Pietro Organización del Computador I DC - UBA 2 do Cuatrimestre de 2013 Dónde estamos? Arquitectura Orga1 Operaciones: Manejo

Más detalles

La arquitectura del 8086/8088

La arquitectura del 8086/8088 Repasamos aquí la arquitectura de un PC. Para más información sobre lo aquí expuesto se puede consultar [PA01] y los capítulos iniciales de [Tej01], [Rod00] y [Nor01]. Anatomía del PC A grandes rasgos,

Más detalles

BLOQUE 3. Enrique Mandado Pérez María José Moure Rodríguez. Microcontroladores

BLOQUE 3. Enrique Mandado Pérez María José Moure Rodríguez. Microcontroladores SISTEMAS ELECTRÓNICOS DIGITALES BLOQUE 3 MICROCONTROLADORES (PARTE 4) DESARROLLO DE SISTEMAS ELECTRÓNICOS DIGITALES Interrupciones,Temporizadores/Contadores y Puerto serie Enrique Mandado Pérez María José

Más detalles

4. Aritmética y operadores

4. Aritmética y operadores Fundamentos de Computadores Ingeniería de Telecomunicación Departamento de Automática Escuela Politécnica Superior Curso académico 2009 2010 Contenidos 1 Aritmética y lógica 2 3 4 Introducción Aritmética

Más detalles

UNIDAD DE APRENDIZAJE II

UNIDAD DE APRENDIZAJE II UNIDAD DE APRENDIZAJE II NÚMEROS RACIONALES Jerarquía de Operaciones En matemáticas una operación es una acción realizada sobre un número (en el caso de la raíz y potencia) o donde se involucran dos números

Más detalles

Expresiones y Operadores

Expresiones y Operadores Lenguaje C Expresiones y Departamento de Electrónica Fundación San Valero básicos: Operador de asignación: = No es del todo equivalente al igual matemático. A la derecha siempre estará el valor a asignar,

Más detalles