Prévia do material em texto
fa Lista 12-1) o b d e f 3 h PC BE BE PC RE ROM BD ROM ROM RFON LOAD RI CONT PC LOAD BE RE BE WR RAMVE1 7-24) Os conceitos de subrotina, pilha e interrupção serão definidos e bastante explorados no capitulo 12. Seja a estrutura de mostrada pelo circuito da figura. 4 registradores de deslocamento 74194 (vide capitulo 8) são usados para aninhar até 4 niveis de pilha. Note que As instruções são: cada 74194 implementa um bit da pilha. dado entra pelos pinos SRSI assim que um push Pilha Mux Somador deva ser ou seja, um push deve acionar um deslocamento à direita nos 74194. Os Flip-Flop Instrução Opcode Descrição (BMUX (Ci) (JK) bits mais significativos, ou seja, os mais à de cada 74194 formam dado de saida se FLAG 1, EP = EP +1 hold hold da pilha. Numa operação os registradores de deslocamento devem então lograr CC 000 FLAG se FLAG EP EP 00 10 00 deslocamentos à esquerda. SC 001 se FLAG EP = DCBA hold ou hold FLAG.X se FLAG EP EP 00 FLAG FLAG 00 Projete um seqüenciador com uma interface parecida com a do nanocontrolador. As instruções se FLAG EP = DCBA hold ou FLAG + hold CSC 010 e seus respectivos opcodes estão listados a seguir. Note que relógio da pilha é o mesmo que se FLAG EP EP + 1 00 FLAG FLAG FLAG.X 00 CALL salta para a rotina DCBA e 011 push hold 1 salva EP na pilha 01 01 00 faz EP = EP e hold set STI 100 1 habilita interrupções 00 10 10 CLI faz EP = EP e hold reset 101 1 desabilita interrupções 00 10 01 retorna da subrotina, pop D3 set IRET 110 X habilitando interrupções 10 11 10 retorna da subrotina sem RET 111 pop D3 hold X habilitar interrupções 10 11 00 Observação: EP Estado Presente: sinal +Vcc deve estar disponível no multiplexador de entradas para permitir salto e a contagem incondicionais. Alexandre Mendonça e Ricardo Zelenovsky 245 Caso flip-flop JK esteja habilitado, um sinal externo INTR ativa EXEINT. Neste caso, ao invés de executar a instrução definida pelo opcode, programa chama uma rotina localizada a partir o da máquina de estados. Os sinais J. S1 e devem ser gerados a partir de de um endereço interno fixo e pré-definido (entrada do multiplexador). Em resumo, a lógicas calculadas com FLAG e sinal que sinaliza a ocorrência de um ativação de EXEINT provoca: salto para uma rotina de interrupção no relógio seguinte. EXEINT salta para um endereço fixo, salva push reset 0 EP na pilha e desabilita interrupções 01 00 01 entrada da pilha Para implementar a lógica, pode-se efetuar inicialmente os cálculos dos sinais sem levar saída EXEINT em conta. Em seguida, basta inserir a influência de EXEINT. Por exemplo, seja S1' da pilha uma função de FLAG, OC2, e Portanto, S1 pois S1 0 se SRSI SRSI SRSI SRSI EXEINT Já sinal seria EXEINT pois SO = 1 se EXEINT 1. S1 S1 S1 S1 S1 do opcode FLAG) Qc Qc Qc CLK Qo FLAG DCBA K CLR J Seqüenciador INTR RIN Rout QDQCQBQA ROUT Flip-Flop JK INTR Somador C, EXEINT Endereço Endereço Pilha de Carga Interno (D C B A) Fixo BMUX D₂ AMUX Multiplexador CLK Flip-Flops D CLR Estado Presente- 2020 3) for x Z x; If Y-1; else Y=6; rotina Nov Mov R1 AQUi: Mov R1, [10] R1 = x Mev 12 R2=12 ADD R2, R1 R2= Mov R1 = R1=X = 1 Y=1 MOV Nov R2, [R] Mov R3, Salta SUB R3, R1 #0 ALI Mov R4,6 Mov Inc [10] MQVVE1 - 2021 BD 00.001 Mux 2 Mux_S Mux B A Y Inverte m s 01 D1 1 Dz 1 1 D3 ACUMULADOR>1 m n D₂ D₂ D₂ Multiplexador 01 1 10 1 11 ACUMULADOR CLK (Flip-Flops D) MUX 1 OE Acum s Y Do = BD BD = Brux Arox Y d l BD o Acumulador 1 AcumuladorInstrução Opcode Inverte DEC N-1 8 1 1 INC 8 1 ADD 8 SUB ou N-M 8 1 les 11 x N/Z X N&M X - 111 - X ocr ocr or 11 10 or 11 10 s d s Q x a A = QC2 SR+SL SR+MOV ocr ocr or 11 10 or 11 10 s n 1 s Q л = + DEC + INC + SR+ + OR + b) decA d d CB CB ; d d PC BET + e + f PC 3 8Lista 3 - Cap 12 12- 1°- Verificar se de R3 AND Saltar se 3- se PUSH R3 AND B3, 4 POP R3 AQUI of 12-14) 1°- Verificar se de Rz 2°- Saltar se sim. 3- se PUSH R1 AND R1, 32 POP R1 JZ AQUI 15) OR = OR R2,32 AND 11... 11106 INV 1 MOV R1,2 2 INV R1 AND R2,R1XOR 001000000 XOR R2,64 21) PUSH Salva R1 PUSH Nov R1, Nov 4Z Mov [51], R1 } SUB Nov R1, 4Z JNZ CASEZ SUB B1, Nov R1, FIM se =0 pulo Mov [51], R1 Nov R1, 107 JMP FIM Mov [51], R1 Nov R1, SUB R1, FIM se = pulo Nov R1, 2 Mov [51], R1 Nov R1, 24 24 - SUB R1, [50] FIM se =0 pulo Nov R1, 13 } Y=10 Mov [51], R1 Nov - SUB R1,[50] FIM se =0 pulo FIM: R1, [50], R1 POP R1 Devolve valor de R112-26) PUSH MOV R4, SP SUB SP,1 PUSH R1 NOV R1, NOV 1, R1 JZ FIM NOV [B4-1],20 R3, R3 como registrador de retorno POP R1 ADD SP,1 POP RET b) PUSH MOV R4, SP SUB SP,1 PUSH R1 NOV NOV 1 1, R1 JZAQUi: AQUi: AND R1 AND JZ JZ OR R3,4 MOV R4,4 JMP AQUI INV ALI: AND R3,R4 R2,16 JMP AQUI JMP AQUI ALI: R2,16 JMP AQUI 7-24) Y end (Tipo x) h Return Y= ratina (5) 1 MOV R1,5 MOV R3, 2 PUSH R1 ADD CALL POP Rh MOV ,R3 RET 5 OP,1 PUSH R4 R4, SUB 4 bits S MOV R1, + INC R1 MOV R13 CCI CALL A CCI RET 5 15 1111 $ CCI 1110 1100