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 D010 D011 D012 D013 D014 D015 D016 D017 D018 D019 D01A D01B D01C D01D D01E D01F -------E000 E001 CONTENIDO 3F A6 C3 16 D0 8E AB EA 12 D0 16 24 22 00 E0 76 ---39 45 REGISTROS A 66 06 B 07 00 D 00 8E H D0 10 PC D0 11 SP F0 A0 MNEMONICO CMC ANA M JMP addr 16 D0 ADC M XRA r JPE 12 D0 MVI r, data 24 SHLD 00 E0 HLT --------------39 45 Respuesta: M. D011: ANA M (reg. ind., #1) (A) = (A) . ((H) (L)) (A)= (A) . (D010) = 66 . 3F = 26 (F)= 00000010 = 02 (PC)= D012 M. D012: JMP addr (inm., #3) (PC)= D016 M. D016: XRA r (reg., #1) (A)= (A) ⊕ (E) = 26 ⊕ 8E = A8 (F)= 10000010 = 82 (PC)= D017 M. D017: JPE (inm., #3) (PC)= D01A M. D01A: MVI r (inm., #2) (D)= 24 (PC)= D01C M. D01C: SHLD addr (directo, #3) ((byte 3) (byte 2)) (L) (E000) (L) = 10 (PC) = D01F MEM D01F: HLT (#1) (A)= (A) ⊕ (r) F C E L 10101011 SSS = E ¿P= 1? (r)= (byte 2) NO Î NO SALTA 00010110 DDD = D ((byte 3) (byte 2) + 1) (E001) (H) = D0 stop (H) (PC)= D020 ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 1 FINALMENTE: REGISTROS A A8 82 B 07 00 D 24 8E H D0 10 PC D0 20 SP F0 A0 (E000) 1 0 (E001) D 0 2) MEMORIA CONTENIDO 3000 4D 3001 96 3002 02 3003 C2 3004 01 3005 30 3006 76 ---------5DF1 2C F C E L MNEMÓNICO MOV r1 , r2 SUB M STAX B JNZ 01 30 HLT -------------2C REGISTROS (A)= E7 (F)= 87 (B)= 5D (C)= 00 (D)= 00 (E)= 00 (H)= 5D (L)= F1 (PC)= 3000 (SP)= FF10 Respuesta: (r1) (r2) 01001101 SSS= L M. 3000: MOV r1 , r2 (reg., #1) (C)= F1 = (L) DDDSSS DDD= C (PC)= 3001 M. 3001: SUB M (reg. ind., #1) (A)= (A) - ((H)(L)) (A)= E7 - (5DF1) = E7 - 2C = BB 2C= 00101100 C2= 11010100 (F)= 10000111= 87 + E7= 11100111 (PC)= 3002 1 10111011 M. 3002: STAX B (reg. ind., #1) ((rp)) (A) ((B)(C))= (A) (5DF1)= BB (PC)= 3003 Z=0? SI SALTA M. 3003: JNZ (inm., #3) (PC)= 3001 M. 3001: SUB M (reg. Ind., #1) (A)= BB - BB = 00 10111011 (F)= 01010111 = 57 + 01000101 (PC)= 3002 1 00000000 M. 3002: STAXB (reg. Ind., #1) ((B)(C)) = (A) (5DF1)= 00 (PC)= 3003 Z=0? NO NO SALTA M. 3003: JNZ (PC)= 3006 M. 3006: HLT (#1) stop (PC)= 3007 FINALMENTE: (A)= 00 (F)= 57 (B)= 5D (C)= F1 (D)= 00 (E)= 00 (H)= 5D (L)= F1 (PC)= 3007 (SP)= FF10 Î Î Î Î ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 2 3) MEMORIA 18F4 -----1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 Respuesta: CONTENIDO A9 ---33 A1 F2 06 19 3F 12 1C 15 76 REGISTROS A B5 83 B 00 79 D 18 F4 H 10 04 PC 19 00 SP F0 A0 MNEMONICO A9 -------INX SP ANA r JP addr 06 19 CMC STAX D INR r DCR r HLT MEM 1900: INX SP (registro, #1) (rh)(rl) (rh)(rl) + 1 (SP) (SP) + 1 (SP) = F0A1 (PC) = 1901 MEM 1901: ANA r (registro, #1) (A) (A) (A) . (C) (A) B5 . 79 (A) = 31 x (F) = 00000010 = 02 (PC) = 1902 MEM 1902: JP addr (inmediato, #3) (PC) = 1906 MEM 1906: STAX D (reg. Indirecto, #1) ((rp)) (A) ( (D) (E) ) (A) (18F4) 31 (PC) = 1907 MEM 1907: INR r (registro, #1) (r) (r) + 1 (E) (E) + 1 = F4 + 1 = F5 (F) = 10000110 = 86 (PC) = 1908 (r) MEM 1908: DCR r (registro, #1) (D) (D) - 1 = 18 - 1 = 18 + FF 1 (D) = 17 (F) = 00010110 = 16 + (PC) = 1909 1 MEM 1909: HLT (#1) stop (PC) = 190A F C E L Î (A) . (r) 10100001 SSS = C 10110101 01111001 00110001 ¿S = 0? SI Î SALTA Î FINALMENTE: REGISTROS A 31 16 B 00 79 D 17 F5 H 10 04 PC 19 0A SP F0 A1 (18F4) 3 1 1C = 00011100 DDD = E (r) - 1 1111 00011000 11111111 00010111 15 = 00010101 DDD = D F C E L ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 3 4) MEMORIA 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 ------951F CONTENIDO A3 C6 0F B6 32 1F 95 00 1B 76 ----F0 REGISTROS A FA 86 B 01 11 D 0A 00 H 95 1F PC 10 00 SP 00 01 MNEMONICO ANA r ADI data 0F ORA M STA addr 1F 95 NOP DCX D HLT -----------F0 Respuesta: MEM 1000: ANA r (registro, #1) (A) (A) . (r) (A) (A) . (E) = FA . 00 (A) = 00 (F) = 46 (PC) = 1001 MEM 1001: ADI data (inmediato, #2) (A) (A) + (byte 2) (A) = 00 + 0F = 0F (F) = 06 (PC) = 1003 MEM 1003: ORA M (reg. Ind.,#1) (A) (A) + ( (H) (L) ) (A) 0F + F0 = FF (F) = 86 (PC) = 1004 MEM 1004: STA addr (directo, #3) ( (byte 3) (byte 2) ) (A) (951F) (A) (951F) = FF (PC) = 1007 MEM 1007: NOP (#1) pausa (PC) = 1008 MEM 1008: DCX D (registro, #1) (rh) (rl) (rh) (rl) - 1 (D) (E) (D) (E) -1 = 0A00 - 1 = 0A00 + FFFF = 09FF (D) = 09 (E) = FF (PC) = 1009 stop (PC) = 100A MEM 1009: HLT (#1) Î F C E L 10100011 SSS = E Î FINALMENTE: REGISTROS A FF 86 B 01 11 D 09 FF H 95 1F PC 10 0A SP 00 01 (951F) F F F C E L ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 4 5) MEMORIA D000 D001 D002 D003 D004 D005 D006 D007 D008 D009 D00A D00B D00C D00D CONTENIDO 76 13 CA 0B D0 1A 96 C3 01 D0 15 AA 76 A7 REGISTROS A FF 86 B 04 03 D D0 09 H D0 0A PC D0 01 MNEMONICO HLT INX D JZ addr F C E L LDAX D SUB M JMP addr DCR r XRA r HLT ANA r Respuesta: MEM D001: INX D (registro, #1) (rh) (rl) (rh) (rl) + 1 (D) (E) (D) (E) + 1 D009 + 1 = D00A ==> (D) = D0 , (E) = 0A (PC) = D002 ¿Z= 1? NO ==> NO SALTA MEM D002: JZ addr (inmediato, #3) (PC) = D005 MEM D005: LDAX D (registro indirecto, #1) (A) ( (rp) ) (A) ( (D) (E) ) (A) (D00A) (A) = 15 (PC) = D006 MEM D006: SUB M (reg. Ind., #1) (A) (A) - ( (H) (L) ) (A) (A) - (D00A) 1111111 (A) = 15 - 15 = 00 00010101 (F) = 57 + 11101011 (PC) = D007 1 00000000 MEM D007: JMP addr (inmediato, #3) (PC) (byte 3)(byte2) (PC) = D001 MEM D001: INX D (D)(E) D00A + 1 = D00B (D) = D0 , (E) = 0B (PC) = D002 MEM D002: JZ addr ¿Z = 1? SI SALTA (PC) = D00B (A) (A) ⊕ (r) AA = 10101010 MEM D00B: XRA r (registro, #1) (A) (A) ⊕ (D) 00000000 SSS = D ⊕ 11010000 (A) = 00 ⊕ D0 = D0 (F)= 82 11010000 (PC) = D00C stop MEM D00C: HLT (PC) = D00D Î Î FINALMENTE: (D) = D0 (A) = D0 (E) = 0B (F) = 82 (H) = D0 Î (B) = 04 (L) = 0A (C) = 03 (PC) = D00D ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 5 6) MEMORIA 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 600A 600B 600C -----A000 A001 A002 A003 A004 A005 CONTENIDO 11 00 A0 1A EB AE 2F FA 00 60 B6 76 A7 ---AA 61 16 00 55 66 REGISTROS (EST. INICIAL) A 00 87 F B 11 07 C D A0 03 E H A0 04 L PC 60 00 MNEMONICO LXI D LDAX D XCHG XRA M CMA JM ORA M HLT ANA r ------------ Respuesta: MEM 6000: LXI D (inmediato, #3) (rh) (byte 3) , (rl) (byte 2) (D) A0 , (E) 00 (PC) = 6003 MEM 6003: LDAX D (reg. Indirecto, #1) (A) ( (rp) ) (A) ( (D) (E) ) (A) (A000) (A) = AA (PC) = 6004 (H) MEM 6004: XCHG (reg., #1) (H) = A0 , (D) = A0 , (L) = 00 , (E) = 04 (PC) = 6005 MEM 6005: XRA M (reg. Ind., #1) (A) (A) ⊕ (A000) = AA ⊕ AA (A) = 00 (F)= 46 (PC) = 6006 MEM 6006: CMA (#1) (A) (A’) (A) = FF (PC) = 6007 MEM 6007: JM addr (inmediato, #3) (PC) = 600A MEM 600A: ORA M (reg. Ind., #1) (A) (A) + ( (H) (L) ) (A) (A) + (A000) = FF + AA (A) = FF (F) = 86 Î Ù (D) (A) , (L) (A) ⊕ ( (H) (L) ) 10101010 ⊕ 10101010 00000000 ¿S = 1? “or” Ù (E) NO Î NO SALTA 11111111 10101010 11111111 ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 6 (PC) = 600B MEM 600B: HLT (#1) FINALMENTE: (D) = A0 (A) = FF (E) = 04 stop (F) = 86 (H) = A0 (PC) = 600C (B) = 11 (L) = 00 7) MEMORIA 3000 3001 3002 3003 3004 3005 3006 3007 CONTENIDO CE 25 A7 3C F2 03 30 76 (C) = 07 (PC) = 600C REGISTROS A 00 46 B 11 07 D 32 28 H 00 FF PC 30 00 SP FB 00 MNEMONICO ACI data ANA r INR r JP F C E L HLT Respuesta: MEM 3000: ACI data (inmediato, #2) (A) (A) + (byte 2) + (Cy) (A) 00 + 25 + 0 = 25 (F) = 02 (PC) = 3002 MEM 3002: ANA r (registro, #1) (A) (A) . (r) (A) (A) . (A) A7 = 10100111 (A) = 25 . 25 = 25 SSS = A (F) = 02 (PC) = 3003 MEM 3003: INR r (registro, #1) (r) (r) + 1 (A) (A) + 1 3C = 00111100 (A) 25 + 1 = 26 DDD=A (F) = 02 (PC) = 3004 MEM 3004: JP (inmediato, #3) ¿S = 0? SI SALTA (PC) = 3003 MEM 3003: INR r (A) = 26 + 1 = 27 (E) = 06 (PC) = 3004 ¿S = 0? SI SALTA (PC) = 3003 MEM 3004: JP MEM 3003: …. MEM 3004: …. -------------------NOTA: SISTEMA EN LOOP hasta que S sea igual a “1”. Esto ocurrirá cuando: (A) = 80 (F) = 92 (PC) = 3004 ¿S = 0? NO NO SALTA MEM 3004: JP (PC) = 3007 stop (PC) = 3008 MEM 3007: HLT (#1) Î Î Î Î ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 7 FINALMENTE: A B D H PC SP REGISTROS 80 92 11 07 32 28 00 FF 30 08 FB 00 8) MEMORIA A0FA A0FB -------B000 B001 B002 B003 B004 B005 B006 B007 B008 B009 B00A -------DDFE CONTENIDO 50 D9 ----3A FB A0 2F B6 32 FE DD C3 FE DD ----99 MNEMONICO ------------LDA addr F C E L REGISTROS A 38 02 B 05 0B D 15 33 H A0 FA PC B0 00 SP FD 01 F C E L CMA ORA M STA addr JMP addr --------------- Respuesta: MEM B000: LDA addr (directo, #3) (A) ( (byte 3) (byte 2) ) (A) (A0FB) = D9 (PC) = B003 MEM B003: CMA (#1) (A) (A’) (A) [D9]’ = 26 (PC) = B004 MEM B004: ORA M (reg. Indirecto, #1) (A) (A) + ( (H) (L) ) (A) (A) “or” (A0FA) = 26 + 50 = 76 00100110 (F) = 02 + 01010000 (PC) = B005 01110110 MEM B005: STA addr (directo, #3) ( (byte 3) (byte 2) ) (A) (DDFE) (A) (DDFE) = 76 (PC) = B008 MEM B008: JMP addr (inmediato, #3) (PC) (byte 3) (byte 2) (PC) = DDFE MEM DDFE: Como (DDFE) = 76 y éste es el código del mnemónico HLT, la máquina se detiene. (PC) = DDFF Î ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 8 FINALMENTE: REGISTROS A 76 02 B 05 0B D 15 33 H A0 FA PC DD FF SP FD 01 (DDFE) 7 6 9) MEMORIA 4104 4105 4106 4107 4108 4109 410A 410B 410C ------FF0D FF0E CONTENIDO MNEMONICO 31 LXI SP, data 16 04 04 FF FF 39 DAD SP 33 INX SP F9 SPHL 3B DCX SP E3 XTHL 76 HLT ------------47 47 C3 C3 F C E L REGISTROS A 1E 06 B 00 D3 D 57 00 H 00 0A PC 41 04 SP F0 00 F C E L Respuesta: MEM 4104: LXI SP data 16 (inmediato, #3) (rh) (byte 3) , (rl) (byte 2) ∴ (SP) = FF04 (PC) = 4107 (H)(L) (H)(L) + (rh)(rl) MEM 4107: DAD SP (registro; #1) (H)(L) (H)(L) + (SP) (H)(L) = 000A + FF04 = FF0E (H) = FF , (L) = 0E (F) = 06 (PC) = 4108 MEM 4108: INX SP (registro, #1) (rh)(rl) (rh)(rl) + 1 (SP) (SP) + 1 = FF04 + 1 = FF05 (PC) = 4109 MEM 4109: SPHL (reg., #1) (SP) (H)(L) (SP) = FF0E (PC) = 410A MEM 410A: DCX SP (reg., #1) (rh)(rl) (rh)(rl) - 1 (SP) (SP) - 1 = FF0E - 1 = FF0D (PC) = 410B MEM 410B: XTHL (reg. Indirecto, #1) (L) ((SP)) (H) ((SP) + 1) (L) (FF0D) (H) (FF0E) (L) = 47 (H) = C3 (FF0D) = 0E (FF0E) = FF (PC) = 410C Î Ù Ù Ù Ù ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 9 MEM 410C: HLT (#1) (PC) = 410D FINALMENTE: stop REGISTROS A 1E 06 B 00 D3 D 57 00 H C3 47 PC 41 0D SP FF 0D (FF0D) 0 E (FF0E) F F 10) MEMORIA CONTENIDO 6001 3E 6001 74 6002 F6 6003 2E 6004 EA 6005 09 6006 60 6007 AE 6008 37 6009 32 600A 01 600B 60 600C 11 600D 33 600E 20 600F 76 F C E L MNEMÓNICO MVI r,data 74 ORI, data 2E JPE, addr 09 60 XRA M STC STA addr 01 60 LXI D, data 16 33 20 HLT Respuesta: MEM 6000: MVI r, data (inm., #2) (r) (byte 2) (A)= 74 (PC)= 6002 MEM 6002: ORI data (inm., # 2) (A) (A) + (byte 2) (A) 74 +2E (A)= 7E (F)= 00000110 = 06 (PC)= 6004 MEM 6004: JPE addr (inm., #3) ¿P= 1? (PC)= 6009 MEM 6009: STA addr (directo, #3) ((byte 3) (byte 2)) (A) (6001) = 7E (PC)= 600C MEM 600C: LXI D, data 16 (inmediato, #3) (rh) (byte 3) , (rl) (byte 2) (D) (byte 3) (D) = 20 (E) (byte 2) (E) = 33 (PC) = 600F REGISTROS (A)= 00 (F)= 46 (B)= 00 (C)= 00 (D)= 00 (E)= 00 (H)= 60 (L)= 0E (PC)= 6000 (SP )= F10A 00111110 DDD = A Î + Si 01110100 00101110 01111110 Î SALTA Î Î ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 10 MEM 600F: HLT (#1) (PC)= 6010 FINALMENTE: stop REGISTROS A 7E 06 B 00 00 D 20 33 H 60 0E PC 60 10 SP F1 0A (6001) 7 E 11) MEMORIA 6F00 6F01 6F02 6F03 6F04 6F05 6F06 CONTENIDO D6 08 F2 00 6F 3F 76 MNEMONICO SUI data 08 JP addr 00 6F CMC HLT F C E L REGISTROS A 0C 17 B 48 93 D C1 AB H D3 2A PC 6F 00 SP EF 00 F C E L Respuesta: Mem. 6F00: SUI data (inm., #2) (A) – (b2) (A) (A) 0C – 08 = 04 00001100 (F) = 00010011 = 13 - 00001000 (PC) = 6F02 Í Í JP (inm., #3) Mem. 6F02: (PC) (b 3) (b 2) (PC) = 6F00 ¿S = 0? Í SUI Mem. 6F00: (A) 04 – 08 = FC (F) = 10000110 = 86 (PC) = 6F02 Í Mem. 6F02: (PC) = 6F05 JP Mem. 6F05: (F) = 87 (PC) = 6F06 CMC Mem. 6F06: (PC) = 6F07 HLT 00000100 - 00001000 ¿S= 0? (Cy) 00001100 +11111000 1 / 00000100 Î SI Î SALTA 00000100 + 11111000 11111100 Î NO Î NO SALTA Í (Cy ) ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 11 FINALMENTE: REGISTROS FC 87 48 93 C1 AB D3 2A 6F 07 EF 00 A B D H PC SP F C E L 12) MEMORIA 7008 7009 700A 700B 700C 700D 700E 700F --7025 CONTENIDO EA 0C 70 2F 0F C3 25 70 --76 REGISTROS A 17 03 B 00 00 D 00 0E H 00 00 PC 70 08 SP F0 01 MNEMONICO JPE CMA RRC JMP F C E L Respuesta: Mem. 7008: JPE (inm.,#3) ¿P = 1? NO NO SALTA (PC) = 700B Î F= 00000011 = 03 P Î Mem. 700B: CMA (#1) (A) = 17 = 00010111 (A’) = 11101000 = E8 Î (A) = E8 (PC) = 700C Mem. 700C: RRC (#1) (An) (An+1) (A7) (A) = E8 = 11101000 (A) = 01110100 = 74 (PC) = 700D (A0) Î Mem. 700D: JMP (inm., #3) (PC) = 7025 Mem. 7025: 76 A+/7 (Cy) ; (PC) (A0) (Cy) = 0 Î (F) = 02 (byte 3)(byte 2) Î STOP (PC) = 7026 FINALMENTE: A B D H PC SP REGISTROS 74 02 00 00 00 0E 00 00 70 26 F0 01 F C E L ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 12 13) REGISTROS MEMORIA 8FFF 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 CONTENIDO EB 3F 9E DA 06 90 3F 17 91 76 84 MNEMONICO XCHG CMC SBB M JC A B D H PC SP 24 86 2D E1 04 67 90 00 90 00 EF 00 F C E L CMC RAL SUB r Respuesta: Mem. 9000: CMC (#1) (Cy actual) = 1 (F) = 87 (PC) = 9001 Î (F) = 86 Mem. 9001: SBB M (reg. Ind., #1) (A) (A) – ((H)(L)) – (Cy) (A) (A) – (9000) – (Cy) (A) 24 – 3F – 1 = E4 (F)= 10010111 = 97 (PC) = 9002 00100100 - 00111111 Mem. 9002: JC (inm., #3) (PC) = 9006 Mem. 9006: RAL (#1) (An+1) (An) (A0) (A) = E4 = 11100100 (A) = 11001001 = C9 (PC) = 9007 ¿Cy = !? (Cy anterior) Î 00100100 + 11000001 11100101 + 11111111 1 11100100 SI (Cy actual) Cy actual = 1 Mem. 9007: SUB r (reg., #1) (A) (A) – ( r ) (A) C9 – E1 = E8 (F) = 10010110 =96 (PC) = 9008 Mem. 9008: 76 A+/7 (PC) = 9009 Î (Cy) = 0 Î (Cy)’ = 1 91 = 10010001 C 11001001 - 11100001 Î SALTA (A7) Î (F) = 97 11001001 + 00011111 11101000 Î STOP FINALMENTE: A B D H PC SP REGISTROS E8 96 2D E1 04 67 90 00 90 09 EF 00 F C E L ARQUITECTURA DE LAS COMPUTADORAS * PROGRAMAS CON MICROPROCESADOR 8085 Recopilación hecha por la Ing. Patricia V. Ruiz PAG. 13