asm+tarea

7
Modelo de Programación Bus de direcciones de 24bits y bus de datos de 16bits, bus de control conformado por las líneas WR’ para las operaciones de escritura y RD’ para las operaciones de lectura, ambas son bajo activas. Registros: Acumulador (AC) de 16bits. Registro Auxiliar (AR) de 16 bits. Registro que almacena la parte alta del producto, pero que puede usarse como un acumulador de repuesto. Puntero de Pila (SP) de16bits. Contador de programa (PC) de 24bits. Puntero X (IX) de 16bits. Puntero Y (IY) de 16bits. Registro de Estado (SR) 8bits (No es propiamente un registro). Bits de estado: Z = resultado cero; N = resultado negativo; C = acarreo de salida; V = desbordamiento; I = bandera de interrupción; Puntero de Páginas: HSP[8] = Página de la pila. HPC[8] = Página del programa. HDS[8] = Página de datos. Registros transparentes DT, DM, IR, MPR y SC MPR es un registro de 32 bits usado por la instrucción MAC. SC es un registro de 16 bits para uso genérico. uSIT2.0 Data[0:15] ADDRS[0:23] ~WR ~RD RST IRQ

Upload: delia-karina-sanchez-l

Post on 03-Oct-2015

215 views

Category:

Documents


2 download

DESCRIPTION

teoria y estructu¿ra de microprocesadores

TRANSCRIPT

  • Modelo de ProgramacinBus de direcciones de 24bits y bus de datos de 16bits, bus de control conformado por laslneas WR para las operaciones de escritura y RD para las operaciones de lectura, ambasson bajo activas.Registros:Acumulador (AC) de 16bits.Registro Auxiliar (AR) de 16 bits. Registro que almacena la parte alta del producto, pero quepuede usarse como un acumulador de repuesto.Puntero de Pila (SP) de16bits.Contador de programa (PC) de 24bits.Puntero X (IX) de 16bits.Puntero Y (IY) de 16bits.Registro de Estado (SR) 8bits (No es propiamente un registro).

    Bits de estado: Z = resultado cero; N = resultado negativo; C = acarreo de salida;V = desbordamiento; I = bandera de interrupcin;

    Puntero de Pginas:HSP[8] = Pgina de la pila.HPC[8] = Pgina del programa.HDS[8] = Pgina de datos.

    Registros transparentesDT, DM, IR, MPR y SC

    MPR es un registro de 32 bits usado por la instruccin MAC.SC es un registro de 16 bits para uso genrico.

    uSIT2.0

    Data[0:15]

    ADDRS[0:23]

    ~WR

    ~RD

    RST

    IRQ

  • Las instrucciones son de una o dos palabras dependiendo del modo de direccionamiento. Losmodos donde se especifique una direccin de memoria o un valor inmediato sern de dospalabras.El campo reg indica el registro de trabajo. Con cuatro bits se pueden direccionar 16 registros .El bit 0 indica el tipo de instruccin. Si es 1 entonces la instruccin es de memoria tal como seindica en el patrn 1; si es 0 entonces la instruccin tendr otro patrn y depender del tipo.

    El patrn 1 respalda las siguientes instrucciones:

    Nemnico Ecuacin Descripcin Cdigo

    ADD reg, DATO reg = reg + DATO Suma. 00000ADC reg, DATO reg = reg + DATO + C Suma con acarreo. 00001SUB reg, DATO reg = reg DATO Resta. 00011SBC reg, DATO reg = reg DATO C Resta con acarreo. 00010CMP reg, DATO flags f(reg DATO) Comparacin. 00111LD reg, DATO reg = DATO Carga registro. 00110AND reg, DATO reg = reg AND DATO AND lgico. 00101OR reg, DATO reg = reg OR DATO OR lgico. 00100XOR reg, DATO reg = reg XOR DATO XOR. 01100ST reg, DATO DATO = reg Guarda registro. 01101NOT DATO DATO = ~DATO Complemento a 1. 01111NEG DATO DATO = -DATO Complemento a 2. 01110INC DATO DATO = DATO + 1 Incremento. 01010DEC DATO DATO = DATO 1 Decremento. 01011JMP DATO PC = HPC:DATO Salto incondicionado. 01001CALL DATO M(-SP) = PC | PC = HPC:DATO Llama a subrutina. 01000XCHG reg,DATO reg DATO Intercambio. 11000MUL DATO A:AR = A * DATO Multiplicacin. 11001DIV DATO A = A/DATO | AR=residuo Divisin. 11011SHR DATO DATO = 0 DATO Traslacin a la derecha. 11010ASR DATO DATO = b15 DATO Traslacin arit a derecha. 11110SHL DATO DATO = DATO 0 Traslacin a la izquierda. 11111ROR DATO DATO = b0 DATO Rotacin a la derecha. 11101ROL DATO DATO = DATO B15 Rotacin a la izquierda. 11100

    Instrucciones de Memoria

    reg0 15

    OP1 5 11

    AM126

    1 Patrn 1

  • reg0 15

    OP1 5 11

    AM126

    1 Patrn 1

    Modos De Direccionamiento

    Mnemnico DescripcinDATO = #ADDR InmediatoDATO = ADDR DirectoDATO = ADDR,X Indexado por XDATO = ADDR,X+ Indexado por X con post-incremento.DATO = ADDR,+X Indexado por X con pre-incremento.DATO = ADDR,X- Indexado por X con post-decremento.DATO = ADDR,-X Indexado por X con pre-decremento.DATO = ADDR,Y Indexado por Y.DATO = ADDR,Y+ Indexado por Y con post-incremento.DATO = ADDR,+Y Indexado por Y con pre-incremento.DATO = ADDR,Y- Indexado por y con post-decremento.DATO = ADDR,-Y Indexado por Y con pre-decremento.DATO = (ADDR) Indirecto.DATO = (ADDR),X Indirecto indexado por X.DATO = (ADDR),X+ Indirecto indexado por X con post-incremento.DATO = (ADDR),+X Indirecto indexado por X con pre-incremento.DATO = (ADDR),X- Indirecto indexado por X con post-decremento.DATO = (ADDR),-X Indirecto indexado por X con pre-decremento.DATO = (ADDR),Y Indirecto indexado por Y.DATO = (ADDR),Y+ Indirecto indexado por Y con post-incremento.DATO = (ADDR),+Y Indirecto indexado por Y con pre-incremento.DATO = (ADDR),Y- Indirecto indexado por Y con post-decremento.DATO = (ADDR),-Y Indirecto indexado por Y con pre-decremento.

    modo de direcc.inmediatodirectoindexado Xindexado X+indexado +Xindexado X-indexado -Xindexado Yindexado Y+indexado +Yindexado Y-indexado -Yindirectoindirecto indexado Xindirecto indexado X+indirecto indexado +Xindirecto indexado X-indirecto indexado -Xindirecto indexado Yindirecto indexado Y+indirecto indexado +Yindirecto indexado Y-indirecto indexado -Y

    IR[6:11]000xxx001xxx010000010001010101010011010111011000011001011101011011011111100xxx110000110001110101110011110111111000111001111101111011111111

  • Nemnico Ecuacin Descripcin OP

    ADD regd, regf regd = regd + regf Suma. 0000ADC regd, regf regd = regd + regf + C Suma con acarreo. 0001SUB regd, regf regd = regd regf Resta. 0011SBC regd, regf regd = regd regf C Resta con acarreo. 0010CMP regd, regf flags f(regd regf) Comparacin. 0110AND regd, regf regd = regd AND regf AND lgico. 0111OR regd, regf regd = regd OR regf OR lgico. 0101XOR regd, regf regd = regd XOR regf XOR. 0100MOV regd, regf regd = regf Carga registro. 1100XCHG regd, regf regd regf Intercambio. 1101MAC regd, regf A:AR = A:AR + regd*regf Multiplica y acumula 1111

    regd y regf representan cualquiera de los registros menos el registro de estado

    Registro Id. BinariaAcumulador 0000Acumulador Auxiliar 0001Indicador X 0010Indicador Y 0011Puntero de Pila 0100Contador de Programa 0101Pgina de datos 0110Alta del PC 0111Alta del SP 1000Registro de Estado 1001

    0 RegD RegFOP0 151211874

    0 0 01 3

  • 0 Condicin Modo0 15144

    0 0 11 3

    Instrucciones estructura (2 palabras)

    f C C N N Z Z V V N@V

    4 14Modo

    Directo 0Indirecto 1

    sbr

    sbr = 0 ramificacin condicionadasbr = 1 ramificacin a subrutinaf = 0 salto con la condicin normalf = 1 salto con la condicin negada

  • Instrucciones de Registro

    Nemnico Ecuacin Descripcin OP

    CLR reg reg = 0 borra registro 0000INC reg reg = reg + 1 Incremento. 0001DEC reg reg = reg 1 Decremento. 0011NEG reg reg = -reg Complemento a 2. 0010NOT reg reg = ~reg Complemento a 1. 0110SHR reg,n reg = 0 DATO(n veces) Traslacin a la derecha. 0111ASR reg,n reg = b15 reg(n veces) Traslacin arit a derecha. 0101SHL reg,n reg = DATO(n veces) 0 Traslacin a la izquierda. 0100ROR reg,n reg = b0 reg(n veces) Rotacin a la derecha. 1100ROL reg,n reg = DATO(n veces) B15 Rotacin a la izquierda. 1101PUSH reg M(-SP) = reg Deposita registro en la pila 1111POP reg reg = M(SP+) Extrae registro de la pila 1110CLC C = 0 Borra Acarreo 1010SEC C = 1 Alza Acarreo 1011CLI I = 0 Borra Bandera I 1001SEI I = 1 Alza Bandera I 1000

    0 0 1 1 RegOP0 41 3 1187

    n15

    0 0 1 00 1 3 4 15

    Instrucciones Miscelaneas

    Nemnico Ecuacin Descripcin OP

    NOP NA NO OPERARET PC = M(SP+) Recupera PC de la PilaRTI PC = M(SP+)| SR = M(SP+) Recupera PC y SR de la Pila

  • Tarea No 3Ej. 1Traduzca las siguientes instrucciones a lenguaje de mquina la h indica que el nmero eshexadecimal:

    a. ld ix #2045hb. st ac fde3hc. add ac ixd inc fed4h,xe dec (fed4),x+f dec ixg call 2345,-y

    Ej.2Se requiere medir el largo de una frase que termina en 00. La frase est almacenada en la direccinFraseDir tal como se ejemplifica a continuacin:FraseDir db Hola Mundo,0Haga una subrutina que realice lo propio y que entregue el resultado en el acumulador.

    Ej.3Se requiere copiar de una frase de una posicin origen a otra posicin destino tal como se ilustra:FraseOrDir: db Hola Mundo,0FraseDeDir:

    Ej.4Se requiere implementar un convertidor de paralelo a serie para transmisin en serie, realice lainterfaz asumiendo que:

    El dato a convertir reside en el registro A,Que la conversin se da a travs del registro de corrimiento ubicado en la posicin RegCorrDirQue la transmisin se efectuar por el bit menos significativo de este registroQue entre cada bit transmitido se deber ejecutar una subrutina de retardo Bdrte para calibrarel baudrate.

    Realizar el programa de transmisin. La rutina de calibracin se muestra a continuacin.

    Bdrte:ld ix #BAUDRATE

    begin0:dec ixbne begin0ret

    Ej5Se requiere realizar la suma de dos nmeros de 32 bits cada uno est almacenado en dosposiciones de memoria consecutivas tal que la parte mas significativa ocupa la posicin cuyadireccin es mayor por ejemplo si se requiere sumar NUM2 = NUM1 + NUM2 y NUM1 = $01004530y NUM2 = $00A00200.NUM1 dw $4530 ; parte menos significativa de NUM1.

    dw $0100 ; parte mas significativa.NUM2 dw $0200 ; parte menos significativo de NUM2

    dw $00A0 ; parte mas significativa.El resultado de la suma debe reemplazar al NUM2.