Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Anderson L. S. Moreira
anderson.moreira@recife.ifpe.edu.br
http://dase.ifpe.edu.br/~alsm
.asm .obj
.exe
.rc .res
Chame o RadASM
Este é o programa.
.code diz ao assembler que o que se segue são as instruções de
código;
start: é uma etiqueta de código (label). Ele também informa o
vinculador que este é o lugar onde a execução do programa deve
começar;
ret é uma instrução do processador mnemônica, que informa
ao processador para retornar para o chamador do código (que
neste caso vai ser o próprio Windows.
Make finished.
Total compile time 16 ms
Make finished.
Total compile time 10577 ms
Após esse processo vamos executar nosso programa. Pode ser pelo
menu Montar e após escolher Run, ou escolher Ferramentas Goto
Dos (essa segunda opção é mais apropriada para a situação);
Então digite nada, na linha de comando. O que irá acontecer?
.data
PALAVRA dd 0
.code
start:
push -11
CALL GetStdHandle
“.code” e “start” que visto antes. Sendo que posso digitar CODE
SECTION;
“push” coloca um valor na pilha. O valor neste caso é -11 (expresso
como um número decimal ordinário). Isso é empurrado para a pilha
pronta para enviar para a chamada API como um parâmetro.
"CALL" transfere a execução de um processo, neste caso, a API do
Windows é GetStdHandle. Esta API tem um parâmetro e retorna um
identificador no registrador EAX para se adequarem. Aqui ele trata
com o valor -11 que é o identificador de saída padrão para o
console. O console é a interface com o usuário, que neste caso será
a janela de MS-DOS (também conhecido como "comando" ou
prompt.
mov eax,0
ret
Arquivo .asm
Arquivo .exe
ou .dll
Arquivo .obj
Arquivo .asm
Arquivo .rc
Arquivo .res
GoLink @comando
/debug coff
Myprog.obj
Myprog.res
Kernel32.dll
As principais flags que iremos usar são Z (zero flag), C (carry flag), S
(flag de sinal) e D (flag de direção). A maioria das instruções altera
as flags automaticamente para dar o resultado da instrução. Existem
instruções específicas que podemos usar para mudar as flags do
processador manualmente: