1 / 14

Interface Hardware Software

Interface Hardware Software. Monitoria Ângelo Lima Mazer - alm Daniel Brito de Oliveira Carvalho – dboc Diogo de Lima Lages – dll Igor Marcel Leal de Morais - imlm Lucio Paulo de Souza Ribeiro - lpsr Pedro Fernandes Dallegrave – pfd2 Rodolfo Cesar de Avelar Ferraz - rcaf.

sidone
Download Presentation

Interface Hardware Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Interface Hardware Software Monitoria Ângelo Lima Mazer - alm Daniel Brito de Oliveira Carvalho – dboc Diogo de Lima Lages – dll Igor Marcel Leal de Morais - imlm Lucio Paulo de Souza Ribeiro - lpsr Pedro Fernandes Dallegrave – pfd2 Rodolfo Cesar de Avelar Ferraz - rcaf

  2. Diretivas assembler O que são? Diferentemente das instruções assembly (mov, add, push, jmp...), que são comandos direcionados à CPU, as diretivas assembler são comandos direcionados ao assembler(exemplo: TASM). As diretivas assembler são executadas em tempo de “compilação” (montagem). Já as instruções assembly são executadas em tempo de execução. Diretivas assembly podem ser comandos para reservar áreas de memória, definir procedimentos, definir constantes, entre outros.

  3. DIRETIVAS TASM Definindo o modelodememória e segmentos Definindovariáveis Definindoprocedimentos Criando macros Criandoestruturas

  4. Modelos de memória Obs.: No modelo tiny o segmento de dados e o de código compartilham a mesma região de memória.

  5. Definindo modelo de memória Estrutura básica de um código em assembly .model small ;Diretiva assembler .model definindo o modelo de memória .stack ;Definindo o segmento de pilha .data ;Definindo segmento de dados .code ;Definindo segmento de código mov ax,@data mov ds,ax mov ax, 4c00h int 21h end ;Fim do segmento de código

  6. Variáveis .model small .stack .data Numero db10 Numero1 dw? VetorNumeros db10 dup(5) ; Definindo um vetor com 10 posições ;de um byte contendo o valor 5 .code ....

  7. Constantes Declarandoumaconstante .model small .stack .data Numero db 10 Numero1 dw ? ConstanteCinco equ 5 .code ...

  8. Procedimento Declarandouma procedure .model small ;modelo de memória a ser usado .stack ;Define o segmento de pilha .data ;Define segmento de dados .code ;Define segmento de código mov ax,@data ;DS aponta para o segmento de dados mov ds,ax call Func_1 mov ax, 4c00h ;AH – Função a ser chamada int 21h ;Chama SO para executar função requisitada Func_1 proc push bx mov bx,ax pop bx ret Func_1 endp end

  9. Macros Declarandouma Macro .data meumacro MACRO <lista de parametros> <corpo do macro (código)> ENDM .code ... end

  10. Macros .model small .stack .data num1 db 10 num2 db 20 soma MACRO a , b mov al ,a add al,b mov a ,al Endm .code .startup soma num1 , num2 .exit end Exemplo:

  11. Estruturas Declarando uma estrutura .data minhastruc STRUC <corpo da estrutura (definição de variáveis)> ENDS .code ... end

  12. Estruturas Exemplo: .model small .stack .data date struc ;definindo a estrutura day db ? month db ? year dw ? ends aniversario date <04h,05h,1987h> ;criando variável do tipo date feriado date <15h,11h,2008h> ;e inicializando .code .startup mov al,aniversario.day mov ah,aniversario.month mov bx,aniversario.year .exit end

  13. Exercício 1 • Definir uma struc “telefone” com ddd e o numero do telefone;

  14. Exercício 2 • Definir uma struc “datas” e definir um vetor deste tipo, contendo 31 posições; • Definir uma macro que receba 3 parâmeros (dia, mês, ano), e armazene estes valores na primeira posição do vetor criado. • 3. Definir uma macro que receba 4 parâmeros (data, mês, ano e posição de memória), que armazene estes valores na variável “data” correspondente; • 4. Definir um procedimento, que utilize a macro criada, para inserir no vetor os 31 dias do mês de outubro de 2008.

More Related