Trabalho em sala

Arquitetura e organização de computadores

Valor 2 pontos.

Grupo : máximo de 2 elementos.

 

 

Prática 01

 

Utilizando o software masm32 (instalar antes em seu computador) compile e execute o código assembly abaixo: (dê ao arquivo o nome teste1.asm)

 

 

; teste 1 ################################################################

.386

.model flat, stdcall

option casemap:none

 

include    /masm32/include/windows.inc

include    /masm32/include/kernel32.inc

include    /masm32/include/user32.inc

 

 

includelib /masm32/lib/kernel32.lib

includelib /masm32/lib/user32.lib

 

.data

 

    Msg_Texto db "Bem vindo ao curso de Arquitetura e organização de computadores",0

    Msg_Titulo db "Meu primeiro programa",0

 

    

.code

Prog001:

 

    invoke MessageBox,NULL,addr Msg_Texto,addr Msg_Titulo,MB_OK + MB_ICONINFORMATION

    invoke ExitProcess,0

 

end Prog001

; ############################################################################

 

Atividade

 

  1. Comente o código linha a linha descrevendo a função de cada comando
  2. Modifique o código de forma que escreva como mensagem o primeiro nome dos elementos do grupo de trabalho (chame o professor para visualizar a execução).

 

Prática 2

 

Utilizando o software masm32 (instalar antes em seu computador) compile e execute o código assembly abaixo: (dê ao arquivo o nome teste2.asm)

 

; teste 2 ################################################################

 

.386

.model flat, stdcall

option casemap:none

 

include    /masm32/include/windows.inc

include    /masm32/include/kernel32.inc

include    /masm32/include/user32.inc

include    /masm32/include/masm32.inc

 

 

includelib /masm32/lib/kernel32.lib

includelib /masm32/lib/user32.lib

includelib /masm32/lib/masm32.lib

 

.data

 

   

    Msg_Titulo db "Meu primeiro programa",0

    Valor_A1 dd "333",0

    Valor_A2 dd "444",0

    Valor dd 0

 

.data?

Resultado db 10 dup (?)

 

    

.code

Prog001:

    invoke atodw,addr Valor_A1

    mov Valor,eax

    invoke atodw,addr Valor_A2

    add eax,Valor

    invoke dwtoa,eax,addr Resultado

   

   

    invoke MessageBox,NULL,addr Resultado,addr Msg_Titulo,MB_OK + MB_ICONINFORMATION

 

    invoke ExitProcess,0

 

end Prog001

; ##############################################################

  1. Comente o código linha a linha descrevendo a função de cada comando
  2. Modifique o código de forma que trabalhe com três valores decimais e execute a operação aritmética com estes valores.(chame o professor para visualizar a execução).

Obs:

A função chamada atodw realiza a conversão de formato decimal para binário e armazena o valor no varável “valor”.

A funçao dwtoa realiza a conversão de binário para decimal.

 

 

 

Prática 3

 

Utilizando o software masm32 (instalar antes em seu computador) compile e execute o código assembly abaixo: (dê ao arquivo o nome teste3.asm)

 

; teste 3 ################################################################

.386

.model flat, stdcall

option casemap:none

 

include    /masm32/include/windows.inc

include    /masm32/include/kernel32.inc

include    /masm32/include/user32.inc

include    /masm32/include/masm32.inc

 

 

includelib /masm32/lib/kernel32.lib

includelib /masm32/lib/user32.lib

includelib /masm32/lib/masm32.lib

 

.data

 

   

    Msg_Titulo db "Meu primeiro programa",0

    Valor_A1 dd "333",0

    Valor_A2 dd "444",0

    Valor_H1 dd "14D",0

    Valor_H2 dd "1BC",0

    Valor dd 0

 

.data?

Resultado db 10 dup (?)

 

    

.code

Prog001:

    invoke atodw,addr Valor_A1

    mov Valor,eax

    invoke atodw,addr Valor_A2

    add eax,Valor

    invoke dwtoa,eax,addr Resultado

   

   

    invoke MessageBox,NULL,addr Resultado,addr Msg_Titulo,MB_OK + MB_ICONINFORMATION

 

    invoke htodw,addr Valor_H1

    mov Valor,eax

    invoke htodw,addr Valor_H2

    add eax,Valor

    invoke dw2hex,eax,addr Resultado

 

    invoke MessageBox,NULL,addr Resultado,addr Msg_Titulo,MB_OK + MB_ICONINFORMATION

 

 

 

    invoke ExitProcess,0

 

end Prog001

 

; ##############################################################

  1. Comente o código linha a linha descrevendo a função de cada comando
  2. Modifique o código de forma que trabalhe com três valores hexadecimais (sedo o terceiro valor AAA) e execute a operação aritmética com estes valores.(chame o professor para visualizar a execução).

Obs:

A função chamada htodw realiza a conversão de formato hexadecimal para binário e armazena o valor no varável “valor”.

A funçao dw2hex realiza a conversão de binário para hexadecimal.

 

Obs: As atividades práticas devem ser realizadas em sala de aula e o professor deve ser chamado para avaliar a execução.