João Ferreira, Dez 2003STRINGS, 1/6 Definição de String String (sentido lato) -> um string é um conjunto de valores (não necessariamente interpretáveis.

Slides:



Advertisements
Apresentações semelhantes
Modelos de Microprocessadores
Advertisements

Utilizando o DOS -r ip IP 0102 :100 -g 102 A Caracter que foi impresso pelo DOS AX=0241 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000.
Execução de Programas Partes de um programa: ‣ Dados
SOFTWARE BÁSICO.
Assembly MAC-1 Implementação de ciclos Ciclo ‘while’ // Em Java : ...
Programação MAC-1 Exemplo: copiar vector
Aula 4 – Sumário Linguagem assembly do MAC-1 A pilha
Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados.
Arquitetura dos Microprocessadores 8086 e 8088
Execução de Programas Partes de um programa: Dados Código (instruções) Um programa necessita estar carregado em memória RAM para ser executado, sendo assim,
Organização da Memória
ICC – Matrizes Jorge Macêdo.
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
PROCEDIMENTOS COM RECURSIVIDADE
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
ESTRUTURA DE UM PROGRAMA
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
EEL Microprocessadores Prof. Raimes Moraes GpqCom – EEL UFSC.
O MICROPROCESSADOR INTEL 8080
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Instruções de manipulação de strings Registradores implícitos –[E]SIíndice para string fonte –[E]DIíndice para string destino –ESsegmento do string destino.
Montador para Intel TASM - Turbo Assembler
ANEXO-1 : INSTRUÇÕES(ROTINA)
ARQUITETURA DE COMPUTADORES ANEXO-1: INSTRUÇÕES (LOGICAS) AND DE DADOS ENTRE REGISTRADORES REG 0 :AH,AL,AX,BH,BL,BX,CH,CL,CX,DH,DL,DX,SI,DI,SP,BP,CS, DS,ES,SS.
ANEXO-1: INSTRUÇÕES (MOVIMENTAÇÃO DE DADOS)
LINGUAGEM C X LINGUAGEM ASSEMBLY
Assembly x86.
Autor: Fernando de Mesentier Silva
A arquitectura IA32 A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador. Tamanho da palavra Número.
Programação em Assembly Procedimentos e funções
EEL Microprocessadores
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
A ULA P RÁTICA - A SSEMBLY Ciro Luiz Araujo Ceissler.
Aula Prática - Assembly
Linguagem de Montagem.
Linguagem de Montagem Vetores.
Linguagem de Montagem PROVA 4 – 3/12.
Prática de Programação Assembly 8086
Prof. Ricardo Santos PONTEIROS
Interface Hardware/Software
Interface C / Assembly Modo Real
2 -1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM - Laboratório.
Processamento de dados na UCP e memória UCP
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Ciro Ceissler / ASSEMBLY Ciro Ceissler /
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
Arquitetura de Computadores
Operações com Arquivos Monitoria A estrutura FILE  É como um tipo de dado, mas não é um tipo propriamente dito  Definido no arquivo cabeçalho.
STRINGS Dilvan Moreira (baseado no livro Big Java e Z. Liang)
A Linguagem de Máquina – Funções e recursividade Prof. André Luis M. Silva orgearq wordpress.com.
8088 Assembly Software Básico Mitsuo Takaki.
8 - 1 Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A pilha e subrotinas.
Rotinas do BIOS e DOS Serviços de vídeo (INT 10H)
Organização Básica de Computadores e Linguagem de Montagem Ricardo Pannain ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Arrays e modos.
2a Aula Pratica Dispositivos Programáveis Roteador 2E-2S e Modularização.
Ciro Ceissler / ASSEMBLY Ciro Ceissler /
Lucas Aranha ASSEMBLY Lucas Aranha
Interface Hardware Software
Existem 8 registos principais de 32 bits no processador (existem mais como %EIP): %EAX %EBX %ECX %EDX %ESI %EDI %EBP %ESP Os registos são armazenados em.
Ponteiros em C Prof. Kariston Pereira
Afonso Ferreira Miguel
O Stack e Subrotinas Permitem reusar o código Escreva e depure o código uma vez, use-o quantas vezes for preciso Uma Subrotina deve ser chamada Uma Subrotina.
Linguagem de Programação
Ney Laert Vilar Calazans Exemplo de Apresentação de TP1 Descrição Resumida de uma Arquitetura de Processador: o estudo de caso do Intel 8086 ORGANIZAÇÃO.
EA869 Subrotinas Faculdade de Engenharia Elétrica e de Computação (FEEC) Universidade Estadual de Campinas (UNICAMP) Prof. Levy Boccato 1.
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Programação em Assembly
Ney Laert Vilar Calazans
Transcrição da apresentação:

João Ferreira, Dez 2003STRINGS, 1/6 Definição de String String (sentido lato) -> um string é um conjunto de valores (não necessariamente interpretáveis como código ASCII!) contíguo na memória. String de algarismos decimais Ex.: Memória (bytes)

João Ferreira, Dez 2003STRINGS, 2/6 Instruções de manipulação de Strings movsb(w) (move string of bytes/words) cmpsb(w) (compare string of bytes/words) mov [di],[si] Origem: (ds:)si (source index) Destino: (es:)di (destination index) inc si inc di dec si dec di Flag DF? 0 (cld)1 (std) Funciona analogamente a movsb. Equivale a um cmp normal...

João Ferreira, Dez 2003STRINGS, 3/6 Processando strings rep -> Usado com uma instrução de manipulação de strings, repete-a ciclicamente usando CX como contador. Ex.: rep movsb ; copia CX bytes de um string apontado por SI para buffer apontado por DI repe (repne) -> Funcionam como rep apenas enquanto o byte actual da origem for = () ao byte actual do destino. Ex.: repe cmpsb ; verifica igualdade entre dois strings

João Ferreira, Dez 2003STRINGS, 4/6 Exemplo (Ex. 6, Folha 3) ; Programa para efectuar a cópia de um ; string. ; Serve como esqueleto para outros programas feitos pelos alunos. s_pilha segment para stack 'stack dw 100h dup(?) s_pilha ends s_dados segment para public 'data ; String origem str_origem db Eu sou um string!,0 buffer_dest db 255 dup (?) s_dados ends s_codigo segment para public 'code assume cs:s_codigo,ss:s_pilha,ds:s_dados main proc near INICIO: ; necessário e óbvio... mov AX,s_dados mov DS,AX ; Muito importante!: mov ES,AX ; ES aponta para ; o segmento de dados lea SI, str_origem lea DI, buffer_dest push SI push DI call copia_str ; fim de programa.exe mov ah,4ch int 21h main endp

João Ferreira, Dez 2003STRINGS, 5/6 Exemplo (cont.) copia_str proc near push BP mov BP,SP push SI push DI push CX mov SI, [BP + 6] mov DI, [BP + 4] push SI call tam_str pop CX ; Em CX está o tam da str inc CX ; Assim inclui-se o 0 rep movsb ; Copia-se string pop CX pop DI pop SI pop BP ret 4 copia_str endp s_codigo ends end main ; ou então end INICIO

João Ferreira, Dez 2003STRINGS, 6/6 Exercício Comparar strings -> Faça um programa que use uma rotina (passagem de parâmetros pela pilha) para comparar dois strings. Verificar se um substring se encontra num string -> Faça um programa que use uma rotina (passagem de parâmetros pela pilha) para este efeito. Conselho: Consulte-se sempre que possível os Norton Guides!