Microsoft powerpoint - ac2_slides_aula04_mac1_procedimentos.ppt

Linguagem assembly do MAC-1:Funções e procedimentos Durante a execução de um programa são invocadas funções e procedimentos (ou métodos)
Ocupa posições de memória consecutivas Variáveis locais
Inserem-se e retiram-se elementos a partir Variáveis que só são válidas dentro do procedimento Argumentos
Valores ou referências passados ao procedimento Quando um procedimento retorna, o CPU necessita de saber qual o ponto do programa para onde se volta Todos estes dados são guardados num espaço da memória designado por pilha (ou stack)
pilha no registo Stack Pointer (SP)
Invocação e retorno de procedimentos
Quando se invoca um procedimento (call), o valor de Program Counter (PC) é copiado para pilha.
Esse valor é o endereço de retorno – ponto para
Mnemónica Descrição
Significado
onde o programa volta após o procedimento retornar SP ← SP – 1; M[SP] ← PC; PC ← x Call function or procedure Para a rotina retornar, o endereço de retorno é transferido da pilha para PC (retn).
x é um endereço entre 0 e 4095, ou uma label que represente esse endereço.
Corresponde à posição do programa onde começa a rotina.
Quando se pretende devolver um valor, coloca-se esse valor no Acumulador (AC), antes da função retornar Manipulação básica da pilha
Invocar a função ou procedimento usando call Criar e descartar as variáveis locais (ou outros dados Mnemónica
Descrição
Significado
Criar as variáveis locais, reservando espaço na pilha “Destruir” as variáveis locais, descartando-as da pilha n é um valor entre 0 e 255, e especifica o número de posições que se querem acrescentar ou retirar à pilha.
Endereçamento local
Exemplo:
Acesso a dados guardados na pilha, com destaque uma função que calcula a soma de dois números para as variáveis locais e argumentos dos public class Exemplo
public static int s = 0; // s – variável global
Mnemónica
Descrição
Significado
public static int soma( final int x, final int y)
{

return x + y;
public static void main(String[] args)
{

s = soma(10, 15);
n designa a posição relativa a SP.
Será portanto a n-ésima posição da pilha a contar do topo.
Exemplo: evolução da pilha
jump main
jump main
main: loco 10
main: loco 10
# colocar os argumentos no stack:
# passar o 10 (1º argumento)
# passar o 15 (2º argumento)
call soma
call soma
# chamar a rotina
# descartar os argumentos
# guardar o valor em s
7 (end. ret.)
soma: lodl 2
soma: lodl 2
# carregar x (da pilha)
# somar a y (da pilha)
# retornar (em AC está x+y)
jump main
# soma_n(int n)
Exemplo: soma dos n primeiros naturais
# exemplo
soma_n: loco 0
Pretende-se implementar uma função que devolve a push # int soma=0
soma dos n primeiros números inteiros naturais.
call soma_n # soma_n(10)
insp 1

subl 0 # n-i
// Possível código da função (em Java)
# while n-i>=0
lodl 1
addl 0

public static int soma_n( final int n )
stol 1 # soma=soma+i
int soma = 0;
addl 0
stol 0 # i=i+1

for (int i=1; i<=n; i++)
Organização da pilha dentro de ‘soma_n’ jump ciclo
soma = soma + i;
lodl 1 # AC=soma
return soma;
Exemplo: divisão inteira
Possível solução:utilizar o método das subtracções sucessivas: Pretende-se implementar função que devolve o quociente da divisão inteira entre dois números inteiros // Possível código da função (em Java)
public static int div( int D, final int d )
while (D >= d)
{

q++;
D = D - d;

Nota: Esta função pode ser útil, pois na linguagem assembly do processador MAC-1 não existe nenhuma instrução para dividir… return q;
jump main
# div(int D, int d)
loco 5
push

ciclo: lodl 3
# div(11,5)
# while D>=d
loco 1
addl 0
stol 0 # q++
lodl 3
subl 2
stol 3 # D=D-d

Organização da pilha dentro de ‘div’ jump ciclo
lodl 0 # AC=q
insp 1
retn

Source: http://ac2.dcti.iscte.pt/ac2-2009-10/material/acetatos/ac2_slides_aula04_mac1_procedimentos.pdf

Pglo tranformation manual 1660033_edu

Lesson 1 Introduction to Transformation In this lab you will perform a procedure known as genetic transformation. Rememberthat a gene is a piece of DNA which provides the instructions for making (codes for) a protein. This protein gives an organism a particular trait. Genetic transformation literallymeans “change caused by genes,” and involves the insertion of a gene into an organismin ord

Patient name:________________________

Inflammatory Bowel Disease Medical Exam Questionnaire Name_________________________________ DOB___/___/____ Age____ Marital Status________ Race____ Gender M / F Height __________ Present Weight _________ Usual Weight _________ Managed Care ____ ____ Self referral ____ ____ Referring Physician (if different from PCP) Name__________________________ ______________________________ Address___

Copyright © 2010-2014 Metabolize Drugs Pdf