Interface Hardware Software

14
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

description

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. - PowerPoint PPT Presentation

Transcript of Interface Hardware Software

Page 1: 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

Page 2: Interface Hardware Software

Diretivas assembler

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.

O que são?

Page 3: Interface Hardware Software

Definindo o modelo de memória e segmentosDefinindo o modelo de memória e segmentos

Definindo variáveisDefinindo variáveis

Definindo procedimentosDefinindo procedimentos

Criando macrosCriando macros

Criando estruturasCriando estruturas

DIRETIVAS TASM

Page 4: Interface Hardware Software

Modelos de memória

Modelo Segmento de dados Segmento de Código

*TINY UM UM

SMALL UM UM

MEDIUM UM VÁRIOS

COMPACT VÁRIOS UM

LARGE VÁRIOS VÁRIOS

HUGE VÁRIOS VÁRIOS

FLAT UM UM

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

Page 5: Interface Hardware Software

Definindo modelo de memória

Estrutura básica de um código em assemblyEstrutura 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

Page 6: Interface Hardware Software

Variáveis

.model small

.stack

.dataNumero db 10Numero1 dw ?VetorNumeros db 10 dup(5) ; Definindo um vetor com 10 posições

;de um byte contendo o valor 5.code....

Page 7: Interface Hardware Software

Constantes

Declarando uma constanteDeclarando uma constante

.model small

.stack

.data

Numero db 10Numero1 dw ?ConstanteCinco equ 5

.code

...

Page 8: Interface Hardware Software

Procedimento

Declarando uma procedureDeclarando uma 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 retFunc_1 endpend

Page 9: Interface Hardware Software

Macros

Declarando uma MacroDeclarando uma Macro

.data

meumacro MACRO <lista de parametros>

<corpo do macro (código)>

ENDM

.code

...end

Page 10: Interface Hardware Software

Macros

.model small

.stack

.data

num1 db 10num2 db 20

soma MACRO a , bmov al ,aadd al,bmov a ,al

Endm

.code.startup

soma num1 , num2

.exitend

Exemplo:Exemplo:

Page 11: Interface Hardware Software

Estruturas

Declarando uma estruturaDeclarando uma estrutura

.data

minhastruc STRUC

<corpo da estrutura (definição de variáveis)>

ENDS

.code

...

end

Page 12: Interface Hardware Software

Estruturas

Exemplo:Exemplo:.model small.stack.data

date struc ;definindo a estruturaday 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.startupmov al,aniversario.daymov ah,aniversario.monthmov bx,aniversario.year.exit

end

Page 13: Interface Hardware Software

Exercício 1

1.Definir uma struc “telefone” com ddd e o numero do telefone;

Page 14: Interface Hardware Software

Exercício 2

1.Definir uma struc “datas” e definir um vetor deste tipo, contendo 31 posições;

2.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.