Escolar Documentos
Profissional Documentos
Cultura Documentos
Web site
Examples
Web site
Examples
Web site
Examples
Um operando
Exemplo: INC DX
Web site
Examples
Web site
Examples
Web site
Examples
Web site
Examples
Examples
Web site
Examples
10
Web site
Examples
11
Web site
Examples
12
Web site
Examples
13
High-level
language
program
(in C)
Lembrana
Descendo no
nvel de
abstraes
revelam-se
outras
informaes
C compiler
swap:
muli $2, $5,4
add $2, $4,$2
lw $15, 0($2)
lw $16, 4($2)
sw $16, 0($2)
sw $15, 4($2)
jr $31
Assembly
language
program
(for MIPS)
Assembler
Binary machine
language
program
(for MIPS)
00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
00000011111000000000000000001000
Web site
Examples
14
Prxima seo
Web site
Examples
15
Constantes de inteiros
Expresses de inteiros
Constantes de caracteres e cadeias
Palavras reservadas e identificadores
Diretivas e instrues
Rtulos ou Labels
Mnemnicos e operandos
Comentrios
Exemplos
Web site
Examples
16
Constantes de Inteiros
Opo de ser acompanhado pelos sinais + ou
Dgitos: binrio, decimal, hexadecimal, ou octal
Sufixos comuns:
h hexadecimal
d decimal
b binrio
r real
Web site
Examples
17
Expresses de Inteiros
Operadores e nveis de precedncia:
Exemplos:
Web site
Examples
18
Web site
Examples
19
Identificadores
1-247 caracteres, incluindo dgitos
Insensvel caixa (maiscula e minscula)
primeiro caractere deve ser letra, _, @, ?, ou $
Web site
Examples
20
Diretivas
Comandos que so reconhecidos pelo montador
No fazem parte do conjunto de instrues do processador
Usados para declarar reas de cdigo, reas de dados,
selecionar modo de memria, declarar procedimentos, etc.
Insensvel caixa
Diferentes montadores podem ter diferentes diretivas
Por exemplo, NASM no igual a MASM
Web site
Examples
21
Instrues
Label
Mnemnico
Operandos
Comentrio
(opcional)
(necessrio)
(depende da instruo)
(opcional)
Web site
Examples
22
Labels (rtulos)
Funciona como marcadores de posio
marca o endereo de cdigos e dados
Web site
Examples
23
Mnemnicos e Operandos
Mnemnicos de instrues
ajuda a memorizao
exemplos: MOV, ADD, SUB, MUL, INC, DEC
Operandos
constante
expresso de constantes
registrador
memria (label de dados)
Web site
Examples
24
Comentrios
Comentrios so teis!
Web site
Examples
25
Um operando
inc eax
; register
inc myByte; memory
Dois operandos
add ebx,ecx
sub myByte,25
add eax,36 * 25
; register, register
; memory, constant
; register, constant-expression
Web site
Examples
26
Prxima seo
Web site
Examples
27
(AddSub.asm)
;
;
;
;
EAX = 10000h
EAX = 50000h
EAX = 30000h
display registers
Web site
Examples
28
Exemplo de sada
Sada do programa, mostrando registradores e flags:
EAX=00030000
EBX=7FFDF000
ECX=00000101
EDX=FFFFFFFF
ESI=00000000
EDI=00000000
EBP=0012FFF0
ESP=0012FFC4
EIP=00401024
EFL=00000206
CF=0
SF=0
Web site
ZF=0
OF=0
Examples
29
(1 de 2)
Outras sugestes
nomes de identificadores descritivos
espaos ao redor dos operadores aritmticos
linhas em branco entre procedimentos
Web site
Examples
30
(2 de 2)
Indentao e espaamento
labels de cdigo e dados sem indentao
instrues executveis indentar 4-5 espaos
comentrios: comear na coluna 40-45, alinhados
verticalmente
1-3 espaos entre mnemnico da instruo e operandos
ex: mov ax,bx
Web site
Examples
31
(AddSubAlt.asm)
; EAX = 10000h
; EAX = 50000h
; EAX = 30000h
Web site
Examples
32
Gabarito de programa
TITLE Program Template
;
;
;
;
;
Program Description:
Author:
Creation Date:
Revisions:
Date:
Modified by:
(Template.asm)
Instructors: please
customize as needed
INCLUDE Irvine32.inc
.data
; (insert variables here)
.code
main PROC
; (insert executable instructions here)
exit
main ENDP
; (insert additional procedures here)
END main
Web site
Examples
33
Prxima seo
Web site
Examples
34
Assemble-Link-Execute Cycle
make32.bat
Listing File
Map File
Web site
Examples
35
Web site
Examples
36
cdigo fonte
endereos
cdigo objeto (linguagem de mquina)
nomes de segmentos
smbolos (variveis, procedimentos, e constantes)
Web site
Examples
37
endereo de incio
endereo de fim
tamanho
tipo de segmento
Web site
Examples
38
Prxima seo
Web site
Examples
39
Definio de dados
Web site
Examples
40
WORD, SWORD
16-bit unsigned & signed integer
DWORD, SDWORD
32-bit unsigned & signed integer
QWORD
64-bit integer
TBYTE
80-bit integer
Web site
Examples
41
REAL8
8-byte IEEE long real
REAL10
10-byte IEEE extended real
Web site
Examples
42
value1 BYTE 10
Web site
Examples
43
; character constant
value2 BYTE 0
value6 BYTE ?
; uninitialized byte
Web site
Examples
44
Web site
Examples
45
(1 de 3)
Exemplos:
str1 BYTE
str2 BYTE
str3 BYTE
greeting
Web site
Examples
46
(2 de 3)
Web site
Examples
47
(3 de 3)
Web site
Examples
48
; 20 bytes, uninitialized
; 20 bytes: "STACKSTACKSTACKSTACK"
; 5 bytes
Web site
Examples
49
ou dupla de caracteres
valor nico ou mltiplos valores
word1
word2
word3
word4
myList
array
WORD
SWORD
WORD
WORD
WORD
WORD
65535
32768
?
"AB"
1,2,3,4,5
5 DUP(?)
;
;
;
;
;
;
Web site
Examples
50
DWORD
SDWORD
DWORD
SDWORD
12345678h
2147483648
20 DUP(?)
3,2,1,0,1
;
;
;
;
unsigned
signed
unsigned array
signed array
Web site
Examples
51
Web site
Examples
52
Web site
Examples
53
Web site
Examples
54
Web site
Examples
55
Prxima seo
Web site
Examples
56
Constantes simblicas
(representao de constantes usando smbolos)
Web site
Examples
57
Web site
Examples
58
Web site
Examples
59
Web site
Examples
60
Web site
Examples
61
Diretiva EQU
Define um smbolo como um inteiro ou expresso de texto
No pode ser redefinido
PI EQU <3.1416>
pressKey EQU <"Press any key to continue...",0>
.data
prompt BYTE pressKey
Web site
Examples
62
Diretiva TEXTEQU
Define um smbolo como um inteiro ou expresso de texto.
Chamado um macro de texto
Pode ser redefinido
continueMsg TEXTEQU <"Do you wish to continue (Y/N)?">
rowSize = 5
.data
prompt1 BYTE continueMsg
count TEXTEQU %(rowSize * 2)
Web site
Examples
63
Prxima seo
Web site
Examples
64
(1 of 2)
Desvantagens
deve estar alerta a segmentos e offsets
No pode chamar funes Win32 (Windows 95 em
diante)
Limitado a 640K para memria de programa
Web site
Examples
65
(2 de 2)
Requisitos
INCLUDE Irvine16.inc
Initializar DS para o segmento de dados:
mov ax,@data
mov ds,ax
Web site
Examples
66
Web site
Examples
67
Resumo
Constante simblica
EQU e TEXTEQU
Web site
Examples
68
46 69 6E 69 73
Web site
Examples
69