Escolar Documentos
Profissional Documentos
Cultura Documentos
Kip Irvine
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
OPCODE DE MOV AX,DX = 100010dw, onde d = 0 ou 1 (reg = fonte ou destino) e w = 0 ou 1 (8 ou 16 bits) Web site Examples
Web site
Examples
10
Web site
Examples
11
Web site
Examples
12
Web site
Examples
13
swap(int v[], int k) {int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; }
Lembrana
Descendo no nvel de abstraes revelam-se outras informaes
Assembly language program (for MIPS)
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
Assembler
Web site
Examples
14
Prxima seo
Elementos bsicos da linguagem Assembly Exemplo: adio e subtrao de inteiros Montagem, Linking, e execuo de programas Definio de dados Constantes simblicas Programao no modo de endereamento real
Web site
Examples
15
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
Exemplos: 30d, 6Ah, 42, 1101b Hexadecimal comeando com letra: 0A5h
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
Montado em cdigo de mquina pelo montador(assembler) Executado em tempo de execuo pelo CPU Nesta disciplina usa-se as instrues do Intel IA-32 Todas as instrues contm:
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!
explica o propsito do programa quando foi escrito e o autor informao de reviso tcnicas e detalhes de codificao explicao especfica da aplicao
Web site
Examples
25
Um operando
inc eax inc myByte ; register ; 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
Elementos bsicos da linguagem Assembly Exemplo: adio e subtrao de inteiros Montagem, Linking, e execuo de programas Definio de dados Constantes simblicas Programao no modo de endereamento real
Web site
Examples
27
; Este programa soma e subtrai inteiros de 32-bits. INCLUDE Irvine32.inc .code main PROC mov eax,10000h add eax,40000h sub eax,20000h call DumpRegs exit main ENDP END main
; ; ; ;
Web site
Examples
28
Exemplo de sada
Sada do programa, mostrando registradores e flags:
Web site
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)
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
Web site
Examples
32
Gabarito de programa
TITLE Program Template ; ; ; ; ; Program Description: Author: Creation Date: Revisions: Date: Modified by: (Template.asm)
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
Elementos bsicos da linguagem Assembly Exemplo: adio e subtrao de inteiros Montagem, Linking, e execuo de programas Definio de dados Constantes simblicas Programao no modo de endereamento real
Web site
Examples
34
Web site
Examples
35
Step 3: linker
Step 4: OS loader
Output
Web site
Examples
36
Web site
Examples
37
Web site
Examples
38
Prxima seo
Elementos bsicos da linguagem Assembly Exemplo: adio e subtrao de inteiros Montagem, Linking, e execuo de programas Definio de dados Constantes simblicas Programao no modo de endereamento real
Web site
Examples
39
Definio de dados
Tipos de dados intrnsecos Sentenas para definio de dados Definio de BYTE e SBYTE Definio de WORD e SWORD Definio de DWORD e SDWORD Definio de QWORD Definio de TBYTE Definio nmero Real Ordem Little Endian Adicionando variveis ao programa AddSub Declarao de dados no-inicializados
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
REAL4
4-byte IEEE short real
REAL8
8-byte IEEE long real
REAL10
10-byte IEEE extended real
Web site
Examples
42
Web site
Examples
43
; character constant
; smallest unsigned byte ; largest unsigned byte ; smallest signed byte ; largest signed byte ; uninitialized byte
Se for declarada uma varivel SBYTE, o Microsoft debugger mostra automaticamente o seu valor decimal com sinal.
Web site
Examples
44
BYTE 81,82,83,84
list3 BYTE ?,32,41h,00100010b list4 BYTE 0Ah,20h,A,22h
Web site
Examples
45
(1 de 3)
Exemplos:
str1 BYTE str2 BYTE str3 BYTE greeting "Enter your name",0 'Error: halting program',0 'A','E','I','O','U' BYTE "Welcome to the Encryption Demo program " BYTE "created by Kip Irvine.",0
Web site
Examples
46
(2 de 3)
Para continuar uma cadeia na linha seguinte, essa linha deve terminar com vrgula:
menu BYTE "Checking Account",0dh,0ah,0dh,0ah, "1. Create a new account",0dh,0ah, "2. Open an existing account",0dh,0ah, "3. Credit the account",0dh,0ah, "4. Debit the account",0dh,0ah, "5. Exit",0ah,0ah, "Choice> ",0
Web site
Examples
47
(3 de 3)
str1 BYTE "Enter your name: ",0Dh,0Ah BYTE "Enter your address: ",0 newLine BYTE 0Dh,0Ah,0
Idia: Definir todas as cadeias usadas no programa na mesma rea do segmento de dados.
Web site
Examples
48
Counter e argument devem ser constantes ou expresses de constantes counter indica o nmero de dados argument indica o valor do dado
var1 BYTE 20 DUP(0) var2 BYTE 20 DUP(?) var3 BYTE 4 DUP("STACK") var4 BYTE 10,3 DUP(0),20
Web site
Examples
49
Web site
Examples
50
Web site
Examples
51
Web site
Examples
52
Web site
Examples
53
Web site
Examples
54
Web site
Examples
55
Prxima seo
Elementos bsicos da linguagem Assembly Exemplo: adio e subtrao de inteiros Montagem, Linking, e execuo de programas Definio de dados Constantes simblicas Programao no modo de endereamento real
Web site
Examples
56
Constantes simblicas
Diretiva de sinal de igual Clculo de tamanho de vetores e cadeias Diretiva EQU Diretiva TEXTEQU
Web site
Examples
57
mov al,COUNT
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>
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
setupAL
Web site
Examples
63
Prxima seo
Elementos bsicos da linguagem Assembly Exemplo: adio e subtrao de inteiros Montagem, Linking, e execuo de programas Definio de dados Constantes simblicas Programao no modo de endereamento real
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)
Web site
Examples
66
Web site
Examples
67
Resumo
expresso de inteiros, constantes de caracteres diretivas interpretadas pelo montador (assembler) instruo executa no runtime segmentos de cdigo, dados e pilha Arquivos: fonte, listing, objeto, map, executvel Diretivas para definio de dados:
BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD, QWORD, TBYTE, REAL4, REAL8, e REAL10
Constante simblica
EQU e TEXTEQU
Web site
Examples
68
46 69 6E 69 73
Web site
Examples
69