ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Computador Cleópatra Formato de Instrução e Codificação prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno 2/7 Formato de Instrução e Codificação Formato de Instrução Tipo de instrução Modo End. Não usado I I I I E E 0 0 Tipo de instrução Código Mnemônico 000x NOT 001x STA 0100 LDA 0101 ADD 0110 OR 0111 AND 1000 JMP 1001 JC 1110 JV 1010 JN 1011 JZ 1100 JSR 1101 RTS 1111 HLT Modos de endereçamento Código Mnemônico 00 IMEDIATO 01 DIRETO 10 INDIRETO 11 RELATIVO Instrução e operando NOT Exemplos Codificação Instrução Operando 00h ou 10h Não tem LDA #23 40h 17h OR nn 64h 85h (supondo 85h o endereço de nn) ADD var,I 58h 85h (supondo 85h o endereço de var) JSR fim,R CCh 10 (supondo fim estar 10 bytes após JSR) 3/7 Exemplo de Assembly com Codificação 4/7 Exercícios 1. Fazer o código objeto do programa que segue e dizer qual a área de dados e de código Código Objeto Código Objeto Linha Código Dados (hexadecimal) (hexadecimal) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. LDA b INI: jz FIM LDA a,i ADD #3 STA a,i LDA a ADD #1 STA a LDA b ADD #-1 STA b JMP INI FIM: HLT a: DB #c b: DB #07h c: DB DB DB DB DB DB DB #01h #02h #03h #04h #05h #06h #07h 5/7 Resposta de Exercícios 1. Fazer o código objeto do programa que segue e dizer qual a área de dados e de código Código Objeto Código Objeto Linha Código Dados (hexadecimal) (hexadecimal) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. LDA b INI: jz FIM LDA a,i ADD #3 STA a,i LDA a ADD #1 STA a LDA b ADD #-1 STA b JMP INI FIM: HLT 44 1A a: DB #c 1B B4 18 b: DB #07h 07 48 50 28 44 50 24 44 50 24 84 c: DB DB DB DB DB DB DB 01 02 03 04 05 06 07 F0 19 03 19 19 01 19 1A FF 1A 02 #01h #02h #03h #04h #05h #06h #07h 25 bytes de código 9 bytes de dados 6/7 Exercícios 2. Dado o código objeto da área de código (em hexadecimal) e a linguagem de máquina da área de dados, preencha os campos faltantes Dados Código Assembly org #80h a: db #05h p: db #v v: db #0, #0, #0, #0, #0 Endereços Código objeto 40 82 50 05 00 50 01 54 81 B4 1D 44 80 28 81 44 80 50 03 24 80 44 81 50 01 24 81 84 00 F0 7/7 Resposta de Exercícios Dados Código 2. Dado o código objeto da área de código (em hexadecimal) e a linguagem de máquina da área de dados, preencha os campos faltantes Assembly Inicio: lda #82 add #5 not add #1 add p jz Fim lda a sta p,i lda a add #3 sta a lda p add #1 sta p jmp Inicio Fim: hlt org #80h a: db #05h p: db #v v: db #0, #0, #0, #0, #0 Endereços 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D Código objeto 40 82 50 05 00 50 01 54 81 B4 1D 44 80 28 81 44 80 50 03 24 80 44 81 50 01 24 81 84 00 F0 80 81 82, 83, 84, 85, 86 05 82 00, 00, 00, 00, 00