• Nenhum resultado encontrado

Analisemos o exemplo de uma tabela com 10 elementos tipo integer. Vejamos a definição da variável em Pascal: var tab:array[0..9] of integer; i:word;

N/A
N/A
Protected

Academic year: 2021

Share "Analisemos o exemplo de uma tabela com 10 elementos tipo integer. Vejamos a definição da variável em Pascal: var tab:array[0..9] of integer; i:word;"

Copied!
5
0
0

Texto

(1)

Analisemos o exemplo de uma tabela com 10 elementos tipo byte. Vejamos a definição da variável em Pascal:

var tab:array[0..9] of byte; i:word;

{Codificação em Pascal}

TAB[2]:=0

{Codificação em Assembly} MOV BYTE PTR TAB[2],0

endereçamento directo

SE TAB [0044h]

MOV BYTE PTR [0044h][2],0 MOV BYTE PTR [0046h],0 {Acesso ao i-ésimo elemento} MOV i,3

MOV bx,i {i-ésimo elemto} MOV BYTE PTR TAB[bx],0

endereçamento indirecto SE TAB [0044h]

MOV BYTE PTR [0044h][bx],0

O compilador associa ao identificador TAB o endereço do 1.º elemento da tabela

{Acesso ao i-ésimo elemento} i:=3; TAB[i]:=0; TAB[0] DS:TAB TAB[1] . . . TAB[9] 60

Acesso a tipos estruturados de dados

Tabelas

Analisemos o exemplo de uma tabela com 10 elementos tipo integer. Vejamos a definição da variável em Pascal:

var tab:array[0..9] of integer; i:word; TAB[0] DS:TAB TAB[1] . . TAB[9] MOV WORD PTR TAB[2*2],50

End. directo SE TAB [0044h] MOV WORD PTR [0044h][2*2],50 MOV WORD PTR [0048h],50 Índice Tamanho

Acesso ao i-ésimo elemento MOV i,3

MOV ax,2 {Tamanho de cada elemento} MUL i

MOV bx,ax {considera-se os 16bits - significativos} MOV WORD PTR TAB[bx],50

Endereçamento indirecto

(2)

Tabelas

Analisemos o exemplo de uma tabela com 10 elementos tipo integer. Vejamos a definição da variável em Pascal:

var tab:array[0..9] of integer; i:word;

62

Codificação em pascal TAB[2]:=50;

Acesso ao i-ésimo elemento i:=3;

TAB[i]:=50;

Algumas notas:

Nos Exemplos anteriores os registos bx, si e di também poderiam ter sido utilizados.

Instruções assembly

Instrução MUL e IMUL

63

Estas duas instruções são na sua génese idênticas. A instrução MUL efectua a multiplicação de números não negativos, enquanto que o IMUL efectua a multiplicação de números negativos.

(I)MUL <origem> em que <origem> é um registo ou memória;

(3)

Analisemos o exemplo de uma tabela bidimensional do tipo byte.

Vejamos a definição da variável em Pascal:

var TAB:array[0..3,0..2] of byte; i,j:word; TAB[3,1] TAB[3,2] TAB[1,2] TAB[1,1] TAB[0,2] TAB[1,0] TAB[0,0] DS:TAB TAB[0,1] . . 64 Codificação em Assembly

MOV BYTE PTR TAB[1*3*1][2*1],50 End. directo

Supondo que TAB é [0044h]

MOV BYTE PTR [0044h][3][2],50 MOV BYTE PTR [0044h][5],50 MOV BYTE PTR [0049h],50 N. º linha N. º coluna Tamanho N. º Elemento p/ linha Codificação em Pascal TAB[1,2]:=50

O compilador associa ao identificador TAB o endereço do 1.º elemento da tabela TAB[0,0].

Acesso a tipos estruturados de dados

Tabelas TAB[3,1] TAB[3,2] TAB[1,2] TAB[1,1] TAB[0,2] TAB[1,0] TAB[0,0] DS:TAB TAB[0,1] . . Codificação em Assembly

O compilador associa ao identificador TAB o endereço do 1.º elemento da tabela TAB[0,0].

Acesso ao i,j elemento MOV i,1

MOV j,2

MOV AX,1 {Tamanho de cada elemento} MOV BX,3 {n.º elementos p/ linha} MUL BX {AX <-- AX*BX} MUL i {AX<--AX*i} MOV BX,AX

MOV AX,1 {Tamanho de cada elemento} MUL j {AX <-- AX*j} ADD BX,AX

Codificação em Pascal {Acesso ao i,j elemento} i:=1;j:=2;

TAB[i,j]:=50;

Analisemos o exemplo de uma tabela bidimensional do tipo byte.

Vejamos a definição da variável em Pascal:

(4)

Tabelas

Analisemos o exemplo de uma string. Vejamos a definição da variável em Pascal:

var S:string[10]; . S[10] . . S[2] . S[0] DS:S S[1] . . 66 Codificação em Assembly Nesta situação define-se:

Comprimento dinâmico =N.º Caracteres da String (0..10) Comprimento estático =10

MOV BYTE PTR S,1 MOV BYTE PTR S[1],'a' MOV BYTE PTR S,2 MOV BYTE PTR S[1],'A' MOV BYTE PTR S[2],'B' MOV BYTE PTR S,0 Codificação em Pascal S:='a'; S:='AB'; S:='';

O compilador associa ao identificador S o endereço do byte onde se encontra armazenado o comprimento dinâmico da String. S[0]= “comprimento dinâmico”.

Acesso a tipos estruturados de dados

Tabelas

Analisemos o exemplo de um record. Vejamos a definição da variável em Pascal:

var REC:Record i:integer; s:string[3]; b:boolean; end; . rec.s[3] rec.s[2] rec.s[0] rec.s[1] DS:rec rec.i .rec.b . 67 Codificação em Assembly Codificação em Pascal REC.i:=20; REC.s:='AC'; REC.b:=TRUE; MOV REC.i,20 ou

MOV WORD PTR REC[0],20 MOV BYTE PTR REC.s,2 MOV BYTE PTR REC.s[1],'A' MOV BYTE PTR REC.s[2],'C' ou

MOV BYTE PTR REC.[2],2 MOV BYTE PTR REC.[2+1],'A' MOV BYTE PTR REC.[2+2],'C' MOV REC.b,TRUE

ou

(5)

Analisemos o exemplo da seguinte tabela de registos Vejamos a definição da variável em Pascal:

var TREC:array[0..9] of Record i:integer; s:string[3]; b:boolean; end; i:word; 68 Codificação em Assembly Codificação em Pascal TREC[1].i:=-10; TREC[2].s:='AB'; TREC[i].b:=FALSE

MOV WORD PTR TREC[1*7+0],-10 MOV BYTE PTR TREC[2*7+2],2 MOV BYTE PTR TREC[2*7+2][1],'A' MOV BYTE PTR TREC[2*7+2][2],'B' Se TREC <=> [0044h] End. Efectivo =[0044h]+[14+2]+[2] =[0044h]+18 =0044h+12h=0056h MOV BYTE PTR [0056h],'B' MOV i,2 MOV ax,7 MUL i MOV bx,ax

MOV BYTE PTR TREC[bx][7],FALSE

Referências

Documentos relacionados

Portanto, a proposta do trabalho sinaliza para a importância da atenção em saúde aos pacientes vulneráveis à doença.Em relação aos benefícios, a pesquisa pode subsidiar

Haveria agora algo que dizer -e haverá muito mais que estudar, pois não têm sido regiões que tenham merecido particular atenção por parte dos historiadores- sobre certas

nação &lt;=&gt; Povo &lt;=&gt; Origem &lt;=&gt; Língua &lt;=&gt; Leitkultur ?...

Segundo Brown (2004), apoiado principalmente no trabalho de Warren e Nisbet (1999), é possível conceber que os indivíduos, quer sejam professores ou estudantes, geralmente

Como prenuncia o próprio título do texto, O pensamento cria, embora fique evidente que aí se trata da relação entre música e artes visuais, não deixamos de notar que o foco

• The definition of the concept of the project’s area of indirect influence should consider the area affected by changes in economic, social and environmental dynamics induced

O presente trabalho aborda a temática das migrações sob a perspectiva da condição de vulnerabilidade dos imigrantes, diante do recrudescimento punitivo voltado

Destaca-se que o filme com menor resistência de folha equivale a menor transmitância resultando numa fraca figura de mérito indicando a necessidade pela busca de