Arquitetura e Organização de ComputadoresVisão geral
Programação em Linguagem de Montagem
Uma instrução em linguagem de montagem é uma linha de fonte: mnemônico, operandos e, opcionalmente, rótulo e diretiva. O montador troca o mnemônico pelo opcode e o rótulo pelo endereço.
Programar lw/sw, o quadro de pilha e as duas passagens deste tópico — e a rotina de interrupção e o pipeline nos tópicos seguintes — partem dessa substituição.
As páginas se agrupam em três blocos. O primeiro lê os campos da linha: mnemônico e opcode, operando imediato, de registrador ou de memória, rótulo de posição e diretiva.
O segundo escreve lw e sw com deslocamento 4·i, a atribuição A[12] = h + A[8], e um quadro de pilha com prólogo e epílogo.
O terceiro traduz o fonte em duas passagens: o contador de localização e a tabela de símbolos na primeira; a emissão do objeto na segunda. O vinculador junta objetos e produz o executável.
Fundamentos da Linguagem de Montagem nomeia cada campo da linha. Programação em Assembly calcula base + 4·i, escreve lw, add e sw e reserva o quadro na pilha.
Fundamentos da Linguagem de Montagem marca uma posição com o rótulo. Processo de Montagem preenche o destino de um salto cujo rótulo ainda não apareceu: LC na passagem 1, endereço na passagem 2.
Fundamentos da Linguagem de Montagem troca mnemônico por opcode neste fonte. Processo de Montagem emite o arquivo objeto e deixa o símbolo externo para o vinculador.
Páginas deste tópico
Fundamentos da Linguagem de Montagem
ProMédia incidência no POSCOMP8 min de leitura · 21ª mais cobrada em Arquitetura e Organização de Computadores
Mnemônico, opcode, operando, rótulo e diretiva; montagem ≠ máquina.
Programação em Assembly
ProAlta incidência no POSCOMP8 min de leitura · 10ª mais cobrada em Arquitetura e Organização de Computadores
lw/sw com offset 4·i; A[12]=h+A[8] (32/48); um quadro de pilha.
Processo de Montagem
ProMédia incidência no POSCOMP8 min de leitura · 25ª mais cobrada em Arquitetura e Organização de Computadores
Duas passagens: LC e referências futuras; objeto ≠ executável.