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
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
; ##############################################################
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
; ##############################################################
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.