·
Cursos Gerais ·
Organização de Computadores
Send your question to AI and receive an answer instantly
Recommended for you
77
Conjunto de Instruções da Arquitetura de Computadores
Organização de Computadores
UFS
53
Registradores e Memória em Arquitetura de Computadores
Organização de Computadores
UFS
3
Prova Organização de Computadores - Unip
Organização de Computadores
UNIP
2
Atividade de Arquitetura de Computadores: Montagem de Circuito Lógico e Tabela Verdade
Organização de Computadores
UNOPAR
8
Prova1_ftc
Organização de Computadores
UFOP
6
Ptis Senac
Organização de Computadores
UMG
4
prova - Organização de Computadores - Unip
Organização de Computadores
UMG
8
Prova1_ftc
Organização de Computadores
UFOP
Preview text
Linguagem de máquina e de montagem Arquitetura de Computadores Bruno Prado Departamento de Computação UFS Introdução O que é linguagem de máquina É a representação em formato binário das instruções que o processador é capaz de entender e executar Processador 01101101011101010110100101110100 01101111001000000110011001100001 01100011011010010110110000101100 00100000011001100110000101100011 01101001011011000010000001100100 01100101011011010110000101101001 01110011001000010000000000000000 Memória C 2022 Bruno Prado Departamento de Computação UFS 2 73 Introdução O que é linguagem de montagem assembly É uma linguagem de programação de baixo nível que utiliza mnemônicos e dados em formatos decimal ou hexadecimal para descrição das instruções l32 r1 0x40 cmpi r1 0 beq 2 subi r1 r1 1 bun 4 s32 0x40 r1 int 0 Linguagem de montagem 01101101011101010110100101110100 01101111001000000110011001100001 01100011011010010110110000101100 00100000011001100110000101100011 01101001011011000010000001100100 01100101011011010110000101101001 01110011001000010000000000000000 Memória O montador assembler é responsável por traduzir o código de montagem para linguagem de máquina C 2022 Bruno Prado Departamento de Computação UFS 3 73 Introdução O que é linguagem de montagem assembly É uma linguagem de programação de baixo nível que utiliza mnemônicos e dados em formatos decimal ou hexadecimal para descrição das instruções l32 r1 0x40 cmpi r1 0 beq 2 subi r1 r1 1 bun 4 s32 0x40 r1 int 0 Linguagem de montagem 01101101011101010110100101110100 01101111001000000110011001100001 01100011011010010110110000101100 00100000011001100110000101100011 01101001011011000010000001100100 01100101011011010110000101101001 01110011001000010000000000000000 Memória O montador assembler é responsável por traduzir o código de montagem para linguagem de máquina C 2022 Bruno Prado Departamento de Computação UFS 4 73 Introdução Representação binária decimal e hexadecimal Normalmente os seres humanos trabalham com números representados em base decimal 10 dígitos Os dados e as instruções nos computadores são representadas em formato binário 2 dígitos 12310 1 102 2 101 3 100 1 26 59 1 26 1 25 27 1 26 1 25 1 24 11 1 26 1 25 1 24 1 23 3 1 26 1 25 1 24 1 23 1 21 1 20 011110112 A notação posicional pode ser utilizada em qualquer base numérica C 2022 Bruno Prado Departamento de Computação UFS 5 73 Introdução Representação binária decimal e hexadecimal Normalmente os seres humanos trabalham com números representados em base decimal 10 dígitos Os dados e as instruções nos computadores são representadas em formato binário 2 dígitos 12310 1 102 2 101 3 100 1 26 59 1 26 1 25 27 1 26 1 25 1 24 11 1 26 1 25 1 24 1 23 3 1 26 1 25 1 24 1 23 1 21 1 20 011110112 A notação posicional pode ser utilizada em qualquer base numérica C 2022 Bruno Prado Departamento de Computação UFS 6 73 Introdução Representação binária decimal e hexadecimal Normalmente os seres humanos trabalham com números representados em base decimal 10 dígitos Os dados e as instruções nos computadores são representadas em formato binário 2 dígitos 12310 1 102 2 101 3 100 1 26 59 1 26 1 25 27 1 26 1 25 1 24 11 1 26 1 25 1 24 1 23 3 1 26 1 25 1 24 1 23 1 21 1 20 011110112 A notação posicional pode ser utilizada em qualquer base numérica C 2022 Bruno Prado Departamento de Computação UFS 7 73 Introdução Representação binária decimal e hexadecimal O formato hexadecimal permite codificar diretamente números binários agrupados em nibbles reduzindo significativamente a quantidade de dígitos 01102 01002 11102 01102 10012 01002 10002 11012 616 416 E16 616 916 416 816 D16 011001001110011010010100100011012 64E6948D16 C 2022 Bruno Prado Departamento de Computação UFS 8 73 Introdução Como entender organizar e traduzir as instruções para linguagem de máquina Todas as informações são números em formato binário É preciso fazer as conversões numéricas e atender ao formatos definidos na especificação datasheet Operação Campo 1 Campo 2 Campo 3 0 7 8 16 15 24 23 31 Regularidade Simplicidade C 2022 Bruno Prado Departamento de Computação UFS 9 73 Introdução Como entender organizar e traduzir as instruções para linguagem de máquina Todas as informações são números em formato binário É preciso fazer as conversões numéricas e atender ao formatos definidos na especificação datasheet Operação Campo 1 Campo 2 Campo 3 0 7 8 16 15 24 23 31 Regularidade Simplicidade C 2022 Bruno Prado Departamento de Computação UFS 10 73 Introdução Paradigmas de computação Complex Instruction Set Computing CISC Focado na linguagem de programação simplificando a tradução para linguagem de máquina e deixando a arquitetura do processador mais complexa Instruções com operandos em memória Maior densidade de código Ex IBM Intel x86 Z80 Reduced Instruction Set Computing RISC Centrado no funcionamento do processador simplificando a arquitetura de hardware e tornando o software mais complexo incluindo o compilador Arquitetura de carregamentoarmazenamento Menor densidade de código Ex ARM MIPS RISCV Convergência CISC RISC C 2022 Bruno Prado Departamento de Computação UFS 11 73 Introdução Paradigmas de computação Complex Instruction Set Computing CISC Focado na linguagem de programação simplificando a tradução para linguagem de máquina e deixando a arquitetura do processador mais complexa Instruções com operandos em memória Maior densidade de código Ex IBM Intel x86 Z80 Reduced Instruction Set Computing RISC Centrado no funcionamento do processador simplificando a arquitetura de hardware e tornando o software mais complexo incluindo o compilador Arquitetura de carregamentoarmazenamento Menor densidade de código Ex ARM MIPS RISCV Convergência CISC RISC C 2022 Bruno Prado Departamento de Computação UFS 12 73 Introdução Paradigmas de computação Complex Instruction Set Computing CISC Focado na linguagem de programação simplificando a tradução para linguagem de máquina e deixando a arquitetura do processador mais complexa Instruções com operandos em memória Maior densidade de código Ex IBM Intel x86 Z80 Reduced Instruction Set Computing RISC Centrado no funcionamento do processador simplificando a arquitetura de hardware e tornando o software mais complexo incluindo o compilador Arquitetura de carregamentoarmazenamento Menor densidade de código Ex ARM MIPS RISCV Convergência CISC RISC C 2022 Bruno Prado Departamento de Computação UFS 13 73 Introdução Paradigmas de computação Complex Instruction Set Computing CISC Focado na linguagem de programação simplificando a tradução para linguagem de máquina e deixando a arquitetura do processador mais complexa Instruções com operandos em memória Maior densidade de código Ex IBM Intel x86 Z80 Reduced Instruction Set Computing RISC Centrado no funcionamento do processador simplificando a arquitetura de hardware e tornando o software mais complexo incluindo o compilador Arquitetura de carregamentoarmazenamento Menor densidade de código Ex ARM MIPS RISCV Convergência CISC RISC C 2022 Bruno Prado Departamento de Computação UFS 14 73 Introdução Paradigmas de computação Complex Instruction Set Computing CISC Focado na linguagem de programação simplificando a tradução para linguagem de máquina e deixando a arquitetura do processador mais complexa Instruções com operandos em memória Maior densidade de código Ex IBM Intel x86 Z80 Reduced Instruction Set Computing RISC Centrado no funcionamento do processador simplificando a arquitetura de hardware e tornando o software mais complexo incluindo o compilador Arquitetura de carregamentoarmazenamento Menor densidade de código Ex ARM MIPS RISCV Convergência CISC RISC C 2022 Bruno Prado Departamento de Computação UFS 15 73 Introdução Por que escolher uma arquitetura RISC A formatação regular e simples das instruções permite a decodificação e execução mais eficiente das operações reduzindo a área de silício necessária assim como o custo unitário e o consumo de potência Na arquitetura de carregamentoarmazenamento é reduzido o número de acessos à memória e a latência das operações que são realizadas exclusivamente em registradores explorando os princípios de localidade espacial e temporal Simplifica a implementação de técnicas para execução sobreposta pipeline ou paralela superescalar de instruções no processador C 2022 Bruno Prado Departamento de Computação UFS 16 73 Introdução Por que escolher uma arquitetura RISC A formatação regular e simples das instruções permite a decodificação e execução mais eficiente das operações reduzindo a área de silício necessária assim como o custo unitário e o consumo de potência Na arquitetura de carregamentoarmazenamento é reduzido o número de acessos à memória e a latência das operações que são realizadas exclusivamente em registradores explorando os princípios de localidade espacial e temporal Simplifica a implementação de técnicas para execução sobreposta pipeline ou paralela superescalar de instruções no processador C 2022 Bruno Prado Departamento de Computação UFS 17 73 Introdução Por que escolher uma arquitetura RISC A formatação regular e simples das instruções permite a decodificação e execução mais eficiente das operações reduzindo a área de silício necessária assim como o custo unitário e o consumo de potência Na arquitetura de carregamentoarmazenamento é reduzido o número de acessos à memória e a latência das operações que são realizadas exclusivamente em registradores explorando os princípios de localidade espacial e temporal Simplifica a implementação de técnicas para execução sobreposta pipeline ou paralela superescalar de instruções no processador C 2022 Bruno Prado Departamento de Computação UFS 18 73 Linguagem de máquina Arquitetura Poxim ComplexityReduced Instruction Set Processor CRISP Didática hipotética e simples com 32 bits Memória Von Neumann de 32 KiB 3 formatos de instruções C 2022 Bruno Prado Departamento de Computação UFS 19 73 Linguagem de máquina Formato U OP Z X Y L 6 bits para operação OP 5 bits para operandos Z X Y 11 bits para uso livre L OP Z X Y L 0 10 11 16 15 21 20 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 20 73 Linguagem de máquina Formato F OP Z X I16 6 bits para operação OP 5 bits para operandos Z X 16 bits para imediato I16 OP Z X i16 0 16 15 21 20 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 21 73 Linguagem de máquina Formato S OP I26 6 bits para operação OP 26 bits para imediato I26 OP i26 0 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 22 73 Linguagem de máquina Operação ociosa Tipo U Pseudoinstrução nop Nenhuma ação é realizada 000000 00000 00000 00000 00000000000 0 10 11 16 15 21 20 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 23 73 Linguagem de máquina Operações aritméticas e lógicas Adição add addi Atribuição imediata mov movs Bit a bit and or not xor Comparação cmp cmpi Deslocamento sla sll sra srl Divisão div divs divi Multiplicação mul muls muli Subtração sub subi C 2022 Bruno Prado Departamento de Computação UFS 24 73 Linguagem de máquina Operação de atribuição imediata mov Tipo U Sem extensão de sinal Rz 11 0 x y l 000000 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 l10l9l8l7l6l5l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 25 73 Linguagem de máquina Operação de atribuição imediata movs Tipo U Com extensão de sinal Rz 11 x4 x y l 000001 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 l10l9l8l7l6l5l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 26 73 Linguagem de máquina Operação de adição com registradores add Tipo U Rz Rx Ry 000010 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 OV Rx31 Ry31 Rz31 Rx31 CY Rz32 1 C 2022 Bruno Prado Departamento de Computação UFS 27 73 Linguagem de máquina Operação de subtração com registradores sub Tipo U Rz Rx Ry 000011 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 OV Rx31 Ry31 Rz31 Rx31 CY Rz32 1 C 2022 Bruno Prado Departamento de Computação UFS 28 73 Linguagem de máquina Operação de multiplicação com registradores mul Tipo U Sem sinal Rl40 Rz Rx Ry 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 000l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rl40 Rz 0 CY Rl40 0 C 2022 Bruno Prado Departamento de Computação UFS 29 73 Linguagem de máquina Operação de deslocamento para esquerda sll Tipo U Lógico sem sinal Rz Rx Rz Ry 2l401 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 001l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz Rx 0 CY Rz 0 C 2022 Bruno Prado Departamento de Computação UFS 30 73 Linguagem de máquina Operação de multiplicação com registradores muls Tipo U Com sinal Rl40 Rz Rx Ry 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 010l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rl40 Rz 0 OV Rl40 0 C 2022 Bruno Prado Departamento de Computação UFS 31 73 Linguagem de máquina Operação de deslocamento para esquerda sla Tipo U Aritmético com sinal Rz Rx Rz Ry 2l401 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 011l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz Rx 0 OV Rz 0 C 2022 Bruno Prado Departamento de Computação UFS 32 73 Linguagem de máquina Operação de divisão com registradores div Tipo U Sem sinal Rl40 Rx mod Ry Rz Rx Ry 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 100l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 ZD Ry 0 CY Rl40 0 C 2022 Bruno Prado Departamento de Computação UFS 33 73 Linguagem de máquina Operação de deslocamento para direita srl Tipo U Lógico sem sinal Rz Rx Rz Ry 2l401 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 101l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz Rx 0 CY Rz 0 C 2022 Bruno Prado Departamento de Computação UFS 34 73 Linguagem de máquina Operação de divisão com registradores divs Tipo U Com sinal Rl40 Rx mod Ry Rz Rx Ry 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 110l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 ZD Ry 0 OV Rl40 0 C 2022 Bruno Prado Departamento de Computação UFS 35 73 Linguagem de máquina Operação de deslocamento para direita sra Tipo U Aritmético com sinal Rz Rx Rz Ry 2l401 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 111l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz Rx 0 OV Rz 0 C 2022 Bruno Prado Departamento de Computação UFS 36 73 Linguagem de máquina Operação de comparação com registradores cmp Tipo U CMP Rx Ry 000101 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN CMP 0 SN CMP31 1 OV Rx31 Ry31 CMP31 Rx31 CY CMP32 1 C 2022 Bruno Prado Departamento de Computação UFS 37 73 Linguagem de máquina Operação bit a bit and Tipo U Rz Rx and Ry 000110 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 C 2022 Bruno Prado Departamento de Computação UFS 38 73 Linguagem de máquina Operação bit a bit or Tipo U Rz Rx or Ry 000111 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 C 2022 Bruno Prado Departamento de Computação UFS 39 73 Linguagem de máquina Operação bit a bit not Tipo U Rz not Rx 001000 z4z3z2z1z0 x4x3x2x1x0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 C 2022 Bruno Prado Departamento de Computação UFS 40 73 Linguagem de máquina Operação bit a bit xor Tipo U Rz Rx xor Ry 001001 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 C 2022 Bruno Prado Departamento de Computação UFS 41 73 Linguagem de máquina Operação de adição imediata addi Tipo F Rz Rx 16 i15 i 010010 z4z3z2z1z0 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 OV Rx31 i15 Rz31 Rx31 CY Rz32 1 C 2022 Bruno Prado Departamento de Computação UFS 42 73 Linguagem de máquina Operação de subtração imediata subi Tipo F Rz Rx 16 i15 i 010011 z4z3z2z1z0 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 OV Rx31 i15 Rz31 Rx31 CY Rz32 1 C 2022 Bruno Prado Departamento de Computação UFS 43 73 Linguagem de máquina Operação de multiplicação imediata muli Tipo F Com sinal Rz Rx 16 i15 i 010100 z4z3z2z1z0 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 OV Rz6332 0 C 2022 Bruno Prado Departamento de Computação UFS 44 73 Linguagem de máquina Operação de divisão imediata divi Tipo F Com sinal Rz Rx 16 i15 i 010101 z4z3z2z1z0 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 ZD i 0 OV 0 C 2022 Bruno Prado Departamento de Computação UFS 45 73 Linguagem de máquina Operação de resto imediato modi Tipo F Com sinal Rz Rx mod 16 i15 i 010110 z4z3z2z1z0 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 ZD i 0 OV 0 C 2022 Bruno Prado Departamento de Computação UFS 46 73 Linguagem de máquina Operação de comparação imediata cmpi Tipo F CMPI Rx 16 i15 i 010111 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN CMPI 0 SN CMPI31 1 OV Rx31 i15 CMPI31 Rx31 CY CMPI32 1 C 2022 Bruno Prado Departamento de Computação UFS 47 73 Linguagem de máquina Operações de leituraescrita da memória 8 bits l8 s8 16 bits l16 s16 32 bits l32 s32 C 2022 Bruno Prado Departamento de Computação UFS 48 73 Linguagem de maquina Operacdo de leitura de 8 bits da mem6oria 18 Pm Tipo F 16 Riz MEM tx hs 3 2625 220 leis Oo C 2022 Bruno Prado Departamento de Computado UFS 4973 Linguagem de maquina Operacdo de leitura de 16 bits da memoria 116 Pm Tipo F 16 Riz MEM Ge his i 31 2625 220 bs Oo cco sana eouso iehibiatohiotiiswiato C 2022 Bruno Prado Departamento de Computado UFS 5073 Linguagem de maquina Operacdo de leitura de 32 bits da memoria 132 Pm Tipo F 16 Riz MEM Ge hs 2 31 2625 220 bts Oo C 2022 Bruno Prado Departamento de Computado UFS 5173 Linguagem de maquina Operacdo de escrita de 8 bits na memoria s8 Tipo F 16 MEM ee hs Riz 31 2625 2u20 bts Oo C 2022 Bruno Prado Departamento de Computado UFS 5273 Linguagem de maquina Operacdo de escrita de 16 bits na memoria s16 Pm Tipo F 16 MEM Rod s K i Riz 31 2625 220 bs Oo C 2022 Bruno Prado Departamento de Computado UFS 5373 Linguagem de maquina Operacdo de escrita de 32 bits na memoria s32 Pm Tipo F 16 MEM IG 5 K 2 Riz 31 2625 220 bs Oo C 2022 Bruno Prado Departamento de Computado UFS 5473 Linguagem de máquina Operações de controle de fluxo Desvio condicional bae bat bbe bbt beq bge bgt biv ble blt bne bni bnz bzd Desvio incondicional bun Interrupção int C 2022 Bruno Prado Departamento de Computação UFS 55 73 Linguagem de maquina Operacdo de desvio condicional bae Tipo S Condicdo AE sem sinal 6 Pm PCPC4 is 2 BI 2625 oO ABoABOAE CY0 C 2022 Bruno Prado Departamento de Computado UFS 5673 Linguagem de maquina Operacdo de desvio condicional bat Tipo Ss Condicdo AT sem sinal 6 Pm PCPC4 is 2 BI 2625 oO ABABO0AT ZNOACY0 C 2022 Bruno Prado Departamento de Computado UFS 5773 Linguagem de maquina Operacdo de desvio condicional bbe Tipo S Condido BE sem sinal 6 Pm PCPC4 is 2 3I 2625 oO ABABO0OBE ZN1VCY1 C 2022 Bruno Prado Departamento de Computado UFS 5873 Linguagem de maquina Operacdo de desvio condicional bbt Tipo Ss Condicdo BT sem sinal 6 Pm PCPC4 is 2 3I 2625 oO ABABOBI CY1 C 2022 Bruno Prado Departamento de Computado UFS 5973 Linguagem de maquina Operacdo de desvio condicional beq Tipo Ss Condicdo FQ 6 Pm PCPC4 is 2 3I 2625 Oo ABAB0FQ ZN1 C 2022 Bruno Prado Departamento de Computado UFS 6073 Linguagem de maquina Operacdo de desvio condicional bge Tipo Ss Condido GE com sinal 6 Pm PCPC4 is 2 BI 2625 oO ABoABOGE SNOV C 2022 Bruno Prado Departamento de Computado UFS 6173 Linguagem de maquina Operacdo de desvio condicional bgt Tipo S Condido GT com sinal 6 P PC PC4 is 2 3I 2625 Oo ABAB0GT ZN0ASNOV C 2022 Bruno Prado Departamento de Computado UFS 6273 Linguagem de maquina Operacdo de desvio condicional biv Tipo Ss Condicdo IV 6 P PCPC44 is 2 3I 2625 O lIOOOC loslouiz3io2igizolpiginigisttsin iiolsigitigisipisiz ilo C 2022 Bruno Prado Departamento de Computado UFS 6373 Linguagem de maquina Operacdo de desvio condicional ble Tipo Ss Condicdo LE com sinal 6 Pm PCPC4 is 2 3I 2625 oO ABABOLE ZN1VSN4OV C 2022 Bruno Prado Departamento de Computado UFS 6473 Linguagem de maquina Operacdo de desvio condicional blt Tipo Ss Condicdo LT com sinal 6 Pm PCPC4 is 2 3I 2625 Oo ABABO0OLlT SNOV C 2022 Bruno Prado Departamento de Computado UFS 6573 Linguagem de maquina Operacdo de desvio condicional one Tipo Ss Condicdo NE 6 Pm PCPC4 is 2 3I 2625 Oo A4BAB40NE ZN0 C 2022 Bruno Prado Departamento de Computado UFS 6673 Linguagem de maquina Operagcdo de desvio condicional oni P Tipo S Condicdo Ni 6 Pm PCPC4 is 2 3I 2625 Oo Ni IV0O C 2022 Bruno Prado Departamento de Computado UFS 6773 Linguagem de maquina Operagcdo de desvio condicional nz Tipo Ss Condicdo NZ 6 Pm PCPC4 is 2 3I 2625 Oo NZ ZD0 C 2022 Bruno Prado Departamento de Computado UFS 6873 Linguagem de maquina Operacdo de desvio incondicional bun Tipo Ss 6 Pm PCPC4 is 2 3I 2625 Oo C 2022 Bruno Prado Departamento de Computado UFS 6973 Linguagem de maquina Operacdo de desvio condicional zd P Tipo S Condido ZD 6 Pm PCPC4 is 2 3I 2625 Oo C 2022 Bruno Prado Departamento de Computado UFS 7073 Linguagem de máquina Operação de interrupção int Tipo S Se i 0 a execução é finalizada 111111 i25i24i23i22i21i20i19i18i17i16i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 71 73 Exemplo Considerando o código fonte abaixo faça sua tradução para código de montagem e depois o converta para linguagem de máquina Execute passo a passo o programa Verifique os resultados obtidos 1 Inteiros com tamanho fixo 2 include stdinth 3 Função principal 4 int main 5 Variáveis em memória 6 uint32t i n 5 r 1 7 Controle iterativo 8 fori 2 i n i 9 Multiplicação 10 r r i 11 12 Retorno sem erros 13 return 0 14 C 2022 Bruno Prado Departamento de Computação UFS 72 73 Exercício Considerando a arquitetura Poxim construa um simulador que realize o carregamento da programação código binário representado em formato hexadecimal e execute passo a passo o seu comportamento fluxo de execução em arquivo 0xDC000007 0x00000000 0x00000000 0x00200007 0x00400003 0x10611404 0xFC000000 Linguagem de máquina Entrada Simulador START OF SIMULATION 0x00000000 bun 7 0x00000020 mov r17 0x00000024 mov r23 0x00000028 div r4r3r1r2 0x0000002C int 0 END OF SIMULATION Fluxo de execução Saída Implemente o simulador utilizando as linguagens de programação suportadas obtendo os argumentos de entrada e de saída por linha de comando C 2022 Bruno Prado Departamento de Computação UFS 73 73
Send your question to AI and receive an answer instantly
Recommended for you
77
Conjunto de Instruções da Arquitetura de Computadores
Organização de Computadores
UFS
53
Registradores e Memória em Arquitetura de Computadores
Organização de Computadores
UFS
3
Prova Organização de Computadores - Unip
Organização de Computadores
UNIP
2
Atividade de Arquitetura de Computadores: Montagem de Circuito Lógico e Tabela Verdade
Organização de Computadores
UNOPAR
8
Prova1_ftc
Organização de Computadores
UFOP
6
Ptis Senac
Organização de Computadores
UMG
4
prova - Organização de Computadores - Unip
Organização de Computadores
UMG
8
Prova1_ftc
Organização de Computadores
UFOP
Preview text
Linguagem de máquina e de montagem Arquitetura de Computadores Bruno Prado Departamento de Computação UFS Introdução O que é linguagem de máquina É a representação em formato binário das instruções que o processador é capaz de entender e executar Processador 01101101011101010110100101110100 01101111001000000110011001100001 01100011011010010110110000101100 00100000011001100110000101100011 01101001011011000010000001100100 01100101011011010110000101101001 01110011001000010000000000000000 Memória C 2022 Bruno Prado Departamento de Computação UFS 2 73 Introdução O que é linguagem de montagem assembly É uma linguagem de programação de baixo nível que utiliza mnemônicos e dados em formatos decimal ou hexadecimal para descrição das instruções l32 r1 0x40 cmpi r1 0 beq 2 subi r1 r1 1 bun 4 s32 0x40 r1 int 0 Linguagem de montagem 01101101011101010110100101110100 01101111001000000110011001100001 01100011011010010110110000101100 00100000011001100110000101100011 01101001011011000010000001100100 01100101011011010110000101101001 01110011001000010000000000000000 Memória O montador assembler é responsável por traduzir o código de montagem para linguagem de máquina C 2022 Bruno Prado Departamento de Computação UFS 3 73 Introdução O que é linguagem de montagem assembly É uma linguagem de programação de baixo nível que utiliza mnemônicos e dados em formatos decimal ou hexadecimal para descrição das instruções l32 r1 0x40 cmpi r1 0 beq 2 subi r1 r1 1 bun 4 s32 0x40 r1 int 0 Linguagem de montagem 01101101011101010110100101110100 01101111001000000110011001100001 01100011011010010110110000101100 00100000011001100110000101100011 01101001011011000010000001100100 01100101011011010110000101101001 01110011001000010000000000000000 Memória O montador assembler é responsável por traduzir o código de montagem para linguagem de máquina C 2022 Bruno Prado Departamento de Computação UFS 4 73 Introdução Representação binária decimal e hexadecimal Normalmente os seres humanos trabalham com números representados em base decimal 10 dígitos Os dados e as instruções nos computadores são representadas em formato binário 2 dígitos 12310 1 102 2 101 3 100 1 26 59 1 26 1 25 27 1 26 1 25 1 24 11 1 26 1 25 1 24 1 23 3 1 26 1 25 1 24 1 23 1 21 1 20 011110112 A notação posicional pode ser utilizada em qualquer base numérica C 2022 Bruno Prado Departamento de Computação UFS 5 73 Introdução Representação binária decimal e hexadecimal Normalmente os seres humanos trabalham com números representados em base decimal 10 dígitos Os dados e as instruções nos computadores são representadas em formato binário 2 dígitos 12310 1 102 2 101 3 100 1 26 59 1 26 1 25 27 1 26 1 25 1 24 11 1 26 1 25 1 24 1 23 3 1 26 1 25 1 24 1 23 1 21 1 20 011110112 A notação posicional pode ser utilizada em qualquer base numérica C 2022 Bruno Prado Departamento de Computação UFS 6 73 Introdução Representação binária decimal e hexadecimal Normalmente os seres humanos trabalham com números representados em base decimal 10 dígitos Os dados e as instruções nos computadores são representadas em formato binário 2 dígitos 12310 1 102 2 101 3 100 1 26 59 1 26 1 25 27 1 26 1 25 1 24 11 1 26 1 25 1 24 1 23 3 1 26 1 25 1 24 1 23 1 21 1 20 011110112 A notação posicional pode ser utilizada em qualquer base numérica C 2022 Bruno Prado Departamento de Computação UFS 7 73 Introdução Representação binária decimal e hexadecimal O formato hexadecimal permite codificar diretamente números binários agrupados em nibbles reduzindo significativamente a quantidade de dígitos 01102 01002 11102 01102 10012 01002 10002 11012 616 416 E16 616 916 416 816 D16 011001001110011010010100100011012 64E6948D16 C 2022 Bruno Prado Departamento de Computação UFS 8 73 Introdução Como entender organizar e traduzir as instruções para linguagem de máquina Todas as informações são números em formato binário É preciso fazer as conversões numéricas e atender ao formatos definidos na especificação datasheet Operação Campo 1 Campo 2 Campo 3 0 7 8 16 15 24 23 31 Regularidade Simplicidade C 2022 Bruno Prado Departamento de Computação UFS 9 73 Introdução Como entender organizar e traduzir as instruções para linguagem de máquina Todas as informações são números em formato binário É preciso fazer as conversões numéricas e atender ao formatos definidos na especificação datasheet Operação Campo 1 Campo 2 Campo 3 0 7 8 16 15 24 23 31 Regularidade Simplicidade C 2022 Bruno Prado Departamento de Computação UFS 10 73 Introdução Paradigmas de computação Complex Instruction Set Computing CISC Focado na linguagem de programação simplificando a tradução para linguagem de máquina e deixando a arquitetura do processador mais complexa Instruções com operandos em memória Maior densidade de código Ex IBM Intel x86 Z80 Reduced Instruction Set Computing RISC Centrado no funcionamento do processador simplificando a arquitetura de hardware e tornando o software mais complexo incluindo o compilador Arquitetura de carregamentoarmazenamento Menor densidade de código Ex ARM MIPS RISCV Convergência CISC RISC C 2022 Bruno Prado Departamento de Computação UFS 11 73 Introdução Paradigmas de computação Complex Instruction Set Computing CISC Focado na linguagem de programação simplificando a tradução para linguagem de máquina e deixando a arquitetura do processador mais complexa Instruções com operandos em memória Maior densidade de código Ex IBM Intel x86 Z80 Reduced Instruction Set Computing RISC Centrado no funcionamento do processador simplificando a arquitetura de hardware e tornando o software mais complexo incluindo o compilador Arquitetura de carregamentoarmazenamento Menor densidade de código Ex ARM MIPS RISCV Convergência CISC RISC C 2022 Bruno Prado Departamento de Computação UFS 12 73 Introdução Paradigmas de computação Complex Instruction Set Computing CISC Focado na linguagem de programação simplificando a tradução para linguagem de máquina e deixando a arquitetura do processador mais complexa Instruções com operandos em memória Maior densidade de código Ex IBM Intel x86 Z80 Reduced Instruction Set Computing RISC Centrado no funcionamento do processador simplificando a arquitetura de hardware e tornando o software mais complexo incluindo o compilador Arquitetura de carregamentoarmazenamento Menor densidade de código Ex ARM MIPS RISCV Convergência CISC RISC C 2022 Bruno Prado Departamento de Computação UFS 13 73 Introdução Paradigmas de computação Complex Instruction Set Computing CISC Focado na linguagem de programação simplificando a tradução para linguagem de máquina e deixando a arquitetura do processador mais complexa Instruções com operandos em memória Maior densidade de código Ex IBM Intel x86 Z80 Reduced Instruction Set Computing RISC Centrado no funcionamento do processador simplificando a arquitetura de hardware e tornando o software mais complexo incluindo o compilador Arquitetura de carregamentoarmazenamento Menor densidade de código Ex ARM MIPS RISCV Convergência CISC RISC C 2022 Bruno Prado Departamento de Computação UFS 14 73 Introdução Paradigmas de computação Complex Instruction Set Computing CISC Focado na linguagem de programação simplificando a tradução para linguagem de máquina e deixando a arquitetura do processador mais complexa Instruções com operandos em memória Maior densidade de código Ex IBM Intel x86 Z80 Reduced Instruction Set Computing RISC Centrado no funcionamento do processador simplificando a arquitetura de hardware e tornando o software mais complexo incluindo o compilador Arquitetura de carregamentoarmazenamento Menor densidade de código Ex ARM MIPS RISCV Convergência CISC RISC C 2022 Bruno Prado Departamento de Computação UFS 15 73 Introdução Por que escolher uma arquitetura RISC A formatação regular e simples das instruções permite a decodificação e execução mais eficiente das operações reduzindo a área de silício necessária assim como o custo unitário e o consumo de potência Na arquitetura de carregamentoarmazenamento é reduzido o número de acessos à memória e a latência das operações que são realizadas exclusivamente em registradores explorando os princípios de localidade espacial e temporal Simplifica a implementação de técnicas para execução sobreposta pipeline ou paralela superescalar de instruções no processador C 2022 Bruno Prado Departamento de Computação UFS 16 73 Introdução Por que escolher uma arquitetura RISC A formatação regular e simples das instruções permite a decodificação e execução mais eficiente das operações reduzindo a área de silício necessária assim como o custo unitário e o consumo de potência Na arquitetura de carregamentoarmazenamento é reduzido o número de acessos à memória e a latência das operações que são realizadas exclusivamente em registradores explorando os princípios de localidade espacial e temporal Simplifica a implementação de técnicas para execução sobreposta pipeline ou paralela superescalar de instruções no processador C 2022 Bruno Prado Departamento de Computação UFS 17 73 Introdução Por que escolher uma arquitetura RISC A formatação regular e simples das instruções permite a decodificação e execução mais eficiente das operações reduzindo a área de silício necessária assim como o custo unitário e o consumo de potência Na arquitetura de carregamentoarmazenamento é reduzido o número de acessos à memória e a latência das operações que são realizadas exclusivamente em registradores explorando os princípios de localidade espacial e temporal Simplifica a implementação de técnicas para execução sobreposta pipeline ou paralela superescalar de instruções no processador C 2022 Bruno Prado Departamento de Computação UFS 18 73 Linguagem de máquina Arquitetura Poxim ComplexityReduced Instruction Set Processor CRISP Didática hipotética e simples com 32 bits Memória Von Neumann de 32 KiB 3 formatos de instruções C 2022 Bruno Prado Departamento de Computação UFS 19 73 Linguagem de máquina Formato U OP Z X Y L 6 bits para operação OP 5 bits para operandos Z X Y 11 bits para uso livre L OP Z X Y L 0 10 11 16 15 21 20 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 20 73 Linguagem de máquina Formato F OP Z X I16 6 bits para operação OP 5 bits para operandos Z X 16 bits para imediato I16 OP Z X i16 0 16 15 21 20 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 21 73 Linguagem de máquina Formato S OP I26 6 bits para operação OP 26 bits para imediato I26 OP i26 0 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 22 73 Linguagem de máquina Operação ociosa Tipo U Pseudoinstrução nop Nenhuma ação é realizada 000000 00000 00000 00000 00000000000 0 10 11 16 15 21 20 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 23 73 Linguagem de máquina Operações aritméticas e lógicas Adição add addi Atribuição imediata mov movs Bit a bit and or not xor Comparação cmp cmpi Deslocamento sla sll sra srl Divisão div divs divi Multiplicação mul muls muli Subtração sub subi C 2022 Bruno Prado Departamento de Computação UFS 24 73 Linguagem de máquina Operação de atribuição imediata mov Tipo U Sem extensão de sinal Rz 11 0 x y l 000000 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 l10l9l8l7l6l5l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 25 73 Linguagem de máquina Operação de atribuição imediata movs Tipo U Com extensão de sinal Rz 11 x4 x y l 000001 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 l10l9l8l7l6l5l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 26 73 Linguagem de máquina Operação de adição com registradores add Tipo U Rz Rx Ry 000010 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 OV Rx31 Ry31 Rz31 Rx31 CY Rz32 1 C 2022 Bruno Prado Departamento de Computação UFS 27 73 Linguagem de máquina Operação de subtração com registradores sub Tipo U Rz Rx Ry 000011 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 OV Rx31 Ry31 Rz31 Rx31 CY Rz32 1 C 2022 Bruno Prado Departamento de Computação UFS 28 73 Linguagem de máquina Operação de multiplicação com registradores mul Tipo U Sem sinal Rl40 Rz Rx Ry 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 000l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rl40 Rz 0 CY Rl40 0 C 2022 Bruno Prado Departamento de Computação UFS 29 73 Linguagem de máquina Operação de deslocamento para esquerda sll Tipo U Lógico sem sinal Rz Rx Rz Ry 2l401 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 001l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz Rx 0 CY Rz 0 C 2022 Bruno Prado Departamento de Computação UFS 30 73 Linguagem de máquina Operação de multiplicação com registradores muls Tipo U Com sinal Rl40 Rz Rx Ry 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 010l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rl40 Rz 0 OV Rl40 0 C 2022 Bruno Prado Departamento de Computação UFS 31 73 Linguagem de máquina Operação de deslocamento para esquerda sla Tipo U Aritmético com sinal Rz Rx Rz Ry 2l401 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 011l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz Rx 0 OV Rz 0 C 2022 Bruno Prado Departamento de Computação UFS 32 73 Linguagem de máquina Operação de divisão com registradores div Tipo U Sem sinal Rl40 Rx mod Ry Rz Rx Ry 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 100l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 ZD Ry 0 CY Rl40 0 C 2022 Bruno Prado Departamento de Computação UFS 33 73 Linguagem de máquina Operação de deslocamento para direita srl Tipo U Lógico sem sinal Rz Rx Rz Ry 2l401 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 101l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz Rx 0 CY Rz 0 C 2022 Bruno Prado Departamento de Computação UFS 34 73 Linguagem de máquina Operação de divisão com registradores divs Tipo U Com sinal Rl40 Rx mod Ry Rz Rx Ry 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 110l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 ZD Ry 0 OV Rl40 0 C 2022 Bruno Prado Departamento de Computação UFS 35 73 Linguagem de máquina Operação de deslocamento para direita sra Tipo U Aritmético com sinal Rz Rx Rz Ry 2l401 000100 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 111l4l3l2l1l0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz Rx 0 OV Rz 0 C 2022 Bruno Prado Departamento de Computação UFS 36 73 Linguagem de máquina Operação de comparação com registradores cmp Tipo U CMP Rx Ry 000101 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN CMP 0 SN CMP31 1 OV Rx31 Ry31 CMP31 Rx31 CY CMP32 1 C 2022 Bruno Prado Departamento de Computação UFS 37 73 Linguagem de máquina Operação bit a bit and Tipo U Rz Rx and Ry 000110 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 C 2022 Bruno Prado Departamento de Computação UFS 38 73 Linguagem de máquina Operação bit a bit or Tipo U Rz Rx or Ry 000111 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 C 2022 Bruno Prado Departamento de Computação UFS 39 73 Linguagem de máquina Operação bit a bit not Tipo U Rz not Rx 001000 z4z3z2z1z0 x4x3x2x1x0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 C 2022 Bruno Prado Departamento de Computação UFS 40 73 Linguagem de máquina Operação bit a bit xor Tipo U Rz Rx xor Ry 001001 z4z3z2z1z0 x4x3x2x1x0 y4y3y2y1y0 0 10 11 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 C 2022 Bruno Prado Departamento de Computação UFS 41 73 Linguagem de máquina Operação de adição imediata addi Tipo F Rz Rx 16 i15 i 010010 z4z3z2z1z0 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 OV Rx31 i15 Rz31 Rx31 CY Rz32 1 C 2022 Bruno Prado Departamento de Computação UFS 42 73 Linguagem de máquina Operação de subtração imediata subi Tipo F Rz Rx 16 i15 i 010011 z4z3z2z1z0 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 SN Rz31 1 OV Rx31 i15 Rz31 Rx31 CY Rz32 1 C 2022 Bruno Prado Departamento de Computação UFS 43 73 Linguagem de máquina Operação de multiplicação imediata muli Tipo F Com sinal Rz Rx 16 i15 i 010100 z4z3z2z1z0 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 OV Rz6332 0 C 2022 Bruno Prado Departamento de Computação UFS 44 73 Linguagem de máquina Operação de divisão imediata divi Tipo F Com sinal Rz Rx 16 i15 i 010101 z4z3z2z1z0 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 ZD i 0 OV 0 C 2022 Bruno Prado Departamento de Computação UFS 45 73 Linguagem de máquina Operação de resto imediato modi Tipo F Com sinal Rz Rx mod 16 i15 i 010110 z4z3z2z1z0 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN Rz 0 ZD i 0 OV 0 C 2022 Bruno Prado Departamento de Computação UFS 46 73 Linguagem de máquina Operação de comparação imediata cmpi Tipo F CMPI Rx 16 i15 i 010111 x4x3x2x1x0 i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 16 15 21 20 26 25 31 Campos afetados ZN CMPI 0 SN CMPI31 1 OV Rx31 i15 CMPI31 Rx31 CY CMPI32 1 C 2022 Bruno Prado Departamento de Computação UFS 47 73 Linguagem de máquina Operações de leituraescrita da memória 8 bits l8 s8 16 bits l16 s16 32 bits l32 s32 C 2022 Bruno Prado Departamento de Computação UFS 48 73 Linguagem de maquina Operacdo de leitura de 8 bits da mem6oria 18 Pm Tipo F 16 Riz MEM tx hs 3 2625 220 leis Oo C 2022 Bruno Prado Departamento de Computado UFS 4973 Linguagem de maquina Operacdo de leitura de 16 bits da memoria 116 Pm Tipo F 16 Riz MEM Ge his i 31 2625 220 bs Oo cco sana eouso iehibiatohiotiiswiato C 2022 Bruno Prado Departamento de Computado UFS 5073 Linguagem de maquina Operacdo de leitura de 32 bits da memoria 132 Pm Tipo F 16 Riz MEM Ge hs 2 31 2625 220 bts Oo C 2022 Bruno Prado Departamento de Computado UFS 5173 Linguagem de maquina Operacdo de escrita de 8 bits na memoria s8 Tipo F 16 MEM ee hs Riz 31 2625 2u20 bts Oo C 2022 Bruno Prado Departamento de Computado UFS 5273 Linguagem de maquina Operacdo de escrita de 16 bits na memoria s16 Pm Tipo F 16 MEM Rod s K i Riz 31 2625 220 bs Oo C 2022 Bruno Prado Departamento de Computado UFS 5373 Linguagem de maquina Operacdo de escrita de 32 bits na memoria s32 Pm Tipo F 16 MEM IG 5 K 2 Riz 31 2625 220 bs Oo C 2022 Bruno Prado Departamento de Computado UFS 5473 Linguagem de máquina Operações de controle de fluxo Desvio condicional bae bat bbe bbt beq bge bgt biv ble blt bne bni bnz bzd Desvio incondicional bun Interrupção int C 2022 Bruno Prado Departamento de Computação UFS 55 73 Linguagem de maquina Operacdo de desvio condicional bae Tipo S Condicdo AE sem sinal 6 Pm PCPC4 is 2 BI 2625 oO ABoABOAE CY0 C 2022 Bruno Prado Departamento de Computado UFS 5673 Linguagem de maquina Operacdo de desvio condicional bat Tipo Ss Condicdo AT sem sinal 6 Pm PCPC4 is 2 BI 2625 oO ABABO0AT ZNOACY0 C 2022 Bruno Prado Departamento de Computado UFS 5773 Linguagem de maquina Operacdo de desvio condicional bbe Tipo S Condido BE sem sinal 6 Pm PCPC4 is 2 3I 2625 oO ABABO0OBE ZN1VCY1 C 2022 Bruno Prado Departamento de Computado UFS 5873 Linguagem de maquina Operacdo de desvio condicional bbt Tipo Ss Condicdo BT sem sinal 6 Pm PCPC4 is 2 3I 2625 oO ABABOBI CY1 C 2022 Bruno Prado Departamento de Computado UFS 5973 Linguagem de maquina Operacdo de desvio condicional beq Tipo Ss Condicdo FQ 6 Pm PCPC4 is 2 3I 2625 Oo ABAB0FQ ZN1 C 2022 Bruno Prado Departamento de Computado UFS 6073 Linguagem de maquina Operacdo de desvio condicional bge Tipo Ss Condido GE com sinal 6 Pm PCPC4 is 2 BI 2625 oO ABoABOGE SNOV C 2022 Bruno Prado Departamento de Computado UFS 6173 Linguagem de maquina Operacdo de desvio condicional bgt Tipo S Condido GT com sinal 6 P PC PC4 is 2 3I 2625 Oo ABAB0GT ZN0ASNOV C 2022 Bruno Prado Departamento de Computado UFS 6273 Linguagem de maquina Operacdo de desvio condicional biv Tipo Ss Condicdo IV 6 P PCPC44 is 2 3I 2625 O lIOOOC loslouiz3io2igizolpiginigisttsin iiolsigitigisipisiz ilo C 2022 Bruno Prado Departamento de Computado UFS 6373 Linguagem de maquina Operacdo de desvio condicional ble Tipo Ss Condicdo LE com sinal 6 Pm PCPC4 is 2 3I 2625 oO ABABOLE ZN1VSN4OV C 2022 Bruno Prado Departamento de Computado UFS 6473 Linguagem de maquina Operacdo de desvio condicional blt Tipo Ss Condicdo LT com sinal 6 Pm PCPC4 is 2 3I 2625 Oo ABABO0OLlT SNOV C 2022 Bruno Prado Departamento de Computado UFS 6573 Linguagem de maquina Operacdo de desvio condicional one Tipo Ss Condicdo NE 6 Pm PCPC4 is 2 3I 2625 Oo A4BAB40NE ZN0 C 2022 Bruno Prado Departamento de Computado UFS 6673 Linguagem de maquina Operagcdo de desvio condicional oni P Tipo S Condicdo Ni 6 Pm PCPC4 is 2 3I 2625 Oo Ni IV0O C 2022 Bruno Prado Departamento de Computado UFS 6773 Linguagem de maquina Operagcdo de desvio condicional nz Tipo Ss Condicdo NZ 6 Pm PCPC4 is 2 3I 2625 Oo NZ ZD0 C 2022 Bruno Prado Departamento de Computado UFS 6873 Linguagem de maquina Operacdo de desvio incondicional bun Tipo Ss 6 Pm PCPC4 is 2 3I 2625 Oo C 2022 Bruno Prado Departamento de Computado UFS 6973 Linguagem de maquina Operacdo de desvio condicional zd P Tipo S Condido ZD 6 Pm PCPC4 is 2 3I 2625 Oo C 2022 Bruno Prado Departamento de Computado UFS 7073 Linguagem de máquina Operação de interrupção int Tipo S Se i 0 a execução é finalizada 111111 i25i24i23i22i21i20i19i18i17i16i15i14i13i12i11i10i9i8i7i6i5i4i3i2i1i0 0 26 25 31 C 2022 Bruno Prado Departamento de Computação UFS 71 73 Exemplo Considerando o código fonte abaixo faça sua tradução para código de montagem e depois o converta para linguagem de máquina Execute passo a passo o programa Verifique os resultados obtidos 1 Inteiros com tamanho fixo 2 include stdinth 3 Função principal 4 int main 5 Variáveis em memória 6 uint32t i n 5 r 1 7 Controle iterativo 8 fori 2 i n i 9 Multiplicação 10 r r i 11 12 Retorno sem erros 13 return 0 14 C 2022 Bruno Prado Departamento de Computação UFS 72 73 Exercício Considerando a arquitetura Poxim construa um simulador que realize o carregamento da programação código binário representado em formato hexadecimal e execute passo a passo o seu comportamento fluxo de execução em arquivo 0xDC000007 0x00000000 0x00000000 0x00200007 0x00400003 0x10611404 0xFC000000 Linguagem de máquina Entrada Simulador START OF SIMULATION 0x00000000 bun 7 0x00000020 mov r17 0x00000024 mov r23 0x00000028 div r4r3r1r2 0x0000002C int 0 END OF SIMULATION Fluxo de execução Saída Implemente o simulador utilizando as linguagens de programação suportadas obtendo os argumentos de entrada e de saída por linha de comando C 2022 Bruno Prado Departamento de Computação UFS 73 73