Aula 03-assembly

69
 Assembly Language for Intel-Based  Assembly Language for Intel-Based Computers, 5 Computers, 5 th th  Edition Edition Capítulo 3: Linguagem Assembly undamentos !"# $earson Edu"ation, %&&'-%&&() All rights reser*ed) +ou may modify and "opy this slide sho for your personal use, or for use in the "lassroom, as long as this "opyright statement, the authors name, and the title are not "hanged) Slides prepared by the author Revision date: June 4, 2006 .ip Ir*ine

Transcript of Aula 03-assembly

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 169

Assembly Language for Intel-Based Assembly Language for Intel-Based

Computers 5Computers 5thth

EditionEdition

Capiacutetulo 3 Linguagem Assembly

undamentos

$earson Eduation ampamp-ampamp() All rights resered) +ou may modify and opy this slide sho for your personal useor for use in the lassroom as long as this opyright statement the authors name and the title are not hanged)

Slides prepared by the author

Revision date June 4 2006

ip Irine

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 269

eb site E0amples 22

Linguagem de 12uina Codifia4o deLinguagem de 12uina Codifia4o deinstru46es Intelinstru46es Intel

7 ormato de instru46es IA-3

7 Instru46es de um byte

7 1oe imediato para registrador

7 Instru46es no modo registrador 7 $refi0os para operandos no proessador IA-3

7 Instru46es no modo mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 369

eb site E0amples 33

ormato de instru4o IA-3ormato de instru4o IA-3

7 Campos7 Byte de prefi0o de intru4o tamanho de operando

7 opode

7 Byte 1od 91 modo de endere4amento e operandos

7 Byte sale inde0 para esalar iacutendie de etores

7 esloamento de endere4os

7 ado imediato onstante

7 ltomente o opode = sempre reuerido

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 469

eb site E0amples 44

ormato de instru46es Intel IA-3ormato de instru46es Intel IA-3

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 569

eb site E0amples 55

Instru46es de um gtnio byteInstru46es de um gtnio byte

7 ltomente o opode = usado7 enhum operando

7 E0emplo AAA

7 m operando7 E0emplo IC

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 669

eb site E0amples 66

1oe imediato para registrador 1oe imediato para registrador 7 p ode seguido por um alor imediato

7 E0emplo moe imediato para registrador de bits7 ormato de 8digo BDrw dw

7 BD F opode rw = um ngtmero de registrador dw = o operandoimediato

7 gtmero de registrador adiionado a BD para produGir um noo

opode

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 769

eb site E0amples 77

Instru46es no modo registrador Instru46es no modo registrador

7 byte 1od 91 ontem um ngtmero de registradorde 3-bits para ada operando registrador 7 Codifia4o de bits para ngtmeros de registradores

7 E0emplo 1H B A

opode F DB

byte 1od91 F D

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 869

eb site E0amples 88

$refi0o para tamanho de operando do IA-3$refi0o para tamanho de operando do IA-3

7 1odifia o atributo de segmento default -bit ou 3-bit7 Halor espeial reonheido pelo proessador h

7 A Intel desenoleu opodes para os proessadores IA-37 eessitando de ompatibilidade om DampD

7 Em sistemas IA-3 = usado um prefi0o de um byte uandoso usados operandos de bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 969

eb site E0amples 99

$refi0o de tamanho de operando IA-3$refi0o de tamanho de operando IA-3

7 E0emplo de 8digo para proessador de -bits

7 Codifia4o para proessador de 3-bits

oerrides defaultoperand siGe

$CE E 1H A F ampampampampd onde d F amp ou reg F fonte ou destino e F amp ou D ou bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1069

eb site E0amples 1010

Instru46es no modo de mem8riaInstru46es no modo de mem8ria

7 ma ariedade de tipos de operandos modos deendere4amento

7 lto possiacuteeis 5 ombina46es de operandos7 eterminadas pelo byte 1od 91

7 Codifia4o 1od 917 mod F modo de endere4amento

7 reg F ngtmero de registrador

7 rm F india registrador ou mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 269

eb site E0amples 22

Linguagem de 12uina Codifia4o deLinguagem de 12uina Codifia4o deinstru46es Intelinstru46es Intel

7 ormato de instru46es IA-3

7 Instru46es de um byte

7 1oe imediato para registrador

7 Instru46es no modo registrador 7 $refi0os para operandos no proessador IA-3

7 Instru46es no modo mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 369

eb site E0amples 33

ormato de instru4o IA-3ormato de instru4o IA-3

7 Campos7 Byte de prefi0o de intru4o tamanho de operando

7 opode

7 Byte 1od 91 modo de endere4amento e operandos

7 Byte sale inde0 para esalar iacutendie de etores

7 esloamento de endere4os

7 ado imediato onstante

7 ltomente o opode = sempre reuerido

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 469

eb site E0amples 44

ormato de instru46es Intel IA-3ormato de instru46es Intel IA-3

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 569

eb site E0amples 55

Instru46es de um gtnio byteInstru46es de um gtnio byte

7 ltomente o opode = usado7 enhum operando

7 E0emplo AAA

7 m operando7 E0emplo IC

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 669

eb site E0amples 66

1oe imediato para registrador 1oe imediato para registrador 7 p ode seguido por um alor imediato

7 E0emplo moe imediato para registrador de bits7 ormato de 8digo BDrw dw

7 BD F opode rw = um ngtmero de registrador dw = o operandoimediato

7 gtmero de registrador adiionado a BD para produGir um noo

opode

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 769

eb site E0amples 77

Instru46es no modo registrador Instru46es no modo registrador

7 byte 1od 91 ontem um ngtmero de registradorde 3-bits para ada operando registrador 7 Codifia4o de bits para ngtmeros de registradores

7 E0emplo 1H B A

opode F DB

byte 1od91 F D

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 869

eb site E0amples 88

$refi0o para tamanho de operando do IA-3$refi0o para tamanho de operando do IA-3

7 1odifia o atributo de segmento default -bit ou 3-bit7 Halor espeial reonheido pelo proessador h

7 A Intel desenoleu opodes para os proessadores IA-37 eessitando de ompatibilidade om DampD

7 Em sistemas IA-3 = usado um prefi0o de um byte uandoso usados operandos de bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 969

eb site E0amples 99

$refi0o de tamanho de operando IA-3$refi0o de tamanho de operando IA-3

7 E0emplo de 8digo para proessador de -bits

7 Codifia4o para proessador de 3-bits

oerrides defaultoperand siGe

$CE E 1H A F ampampampampd onde d F amp ou reg F fonte ou destino e F amp ou D ou bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1069

eb site E0amples 1010

Instru46es no modo de mem8riaInstru46es no modo de mem8ria

7 ma ariedade de tipos de operandos modos deendere4amento

7 lto possiacuteeis 5 ombina46es de operandos7 eterminadas pelo byte 1od 91

7 Codifia4o 1od 917 mod F modo de endere4amento

7 reg F ngtmero de registrador

7 rm F india registrador ou mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 369

eb site E0amples 33

ormato de instru4o IA-3ormato de instru4o IA-3

7 Campos7 Byte de prefi0o de intru4o tamanho de operando

7 opode

7 Byte 1od 91 modo de endere4amento e operandos

7 Byte sale inde0 para esalar iacutendie de etores

7 esloamento de endere4os

7 ado imediato onstante

7 ltomente o opode = sempre reuerido

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 469

eb site E0amples 44

ormato de instru46es Intel IA-3ormato de instru46es Intel IA-3

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 569

eb site E0amples 55

Instru46es de um gtnio byteInstru46es de um gtnio byte

7 ltomente o opode = usado7 enhum operando

7 E0emplo AAA

7 m operando7 E0emplo IC

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 669

eb site E0amples 66

1oe imediato para registrador 1oe imediato para registrador 7 p ode seguido por um alor imediato

7 E0emplo moe imediato para registrador de bits7 ormato de 8digo BDrw dw

7 BD F opode rw = um ngtmero de registrador dw = o operandoimediato

7 gtmero de registrador adiionado a BD para produGir um noo

opode

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 769

eb site E0amples 77

Instru46es no modo registrador Instru46es no modo registrador

7 byte 1od 91 ontem um ngtmero de registradorde 3-bits para ada operando registrador 7 Codifia4o de bits para ngtmeros de registradores

7 E0emplo 1H B A

opode F DB

byte 1od91 F D

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 869

eb site E0amples 88

$refi0o para tamanho de operando do IA-3$refi0o para tamanho de operando do IA-3

7 1odifia o atributo de segmento default -bit ou 3-bit7 Halor espeial reonheido pelo proessador h

7 A Intel desenoleu opodes para os proessadores IA-37 eessitando de ompatibilidade om DampD

7 Em sistemas IA-3 = usado um prefi0o de um byte uandoso usados operandos de bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 969

eb site E0amples 99

$refi0o de tamanho de operando IA-3$refi0o de tamanho de operando IA-3

7 E0emplo de 8digo para proessador de -bits

7 Codifia4o para proessador de 3-bits

oerrides defaultoperand siGe

$CE E 1H A F ampampampampd onde d F amp ou reg F fonte ou destino e F amp ou D ou bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1069

eb site E0amples 1010

Instru46es no modo de mem8riaInstru46es no modo de mem8ria

7 ma ariedade de tipos de operandos modos deendere4amento

7 lto possiacuteeis 5 ombina46es de operandos7 eterminadas pelo byte 1od 91

7 Codifia4o 1od 917 mod F modo de endere4amento

7 reg F ngtmero de registrador

7 rm F india registrador ou mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 469

eb site E0amples 44

ormato de instru46es Intel IA-3ormato de instru46es Intel IA-3

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 569

eb site E0amples 55

Instru46es de um gtnio byteInstru46es de um gtnio byte

7 ltomente o opode = usado7 enhum operando

7 E0emplo AAA

7 m operando7 E0emplo IC

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 669

eb site E0amples 66

1oe imediato para registrador 1oe imediato para registrador 7 p ode seguido por um alor imediato

7 E0emplo moe imediato para registrador de bits7 ormato de 8digo BDrw dw

7 BD F opode rw = um ngtmero de registrador dw = o operandoimediato

7 gtmero de registrador adiionado a BD para produGir um noo

opode

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 769

eb site E0amples 77

Instru46es no modo registrador Instru46es no modo registrador

7 byte 1od 91 ontem um ngtmero de registradorde 3-bits para ada operando registrador 7 Codifia4o de bits para ngtmeros de registradores

7 E0emplo 1H B A

opode F DB

byte 1od91 F D

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 869

eb site E0amples 88

$refi0o para tamanho de operando do IA-3$refi0o para tamanho de operando do IA-3

7 1odifia o atributo de segmento default -bit ou 3-bit7 Halor espeial reonheido pelo proessador h

7 A Intel desenoleu opodes para os proessadores IA-37 eessitando de ompatibilidade om DampD

7 Em sistemas IA-3 = usado um prefi0o de um byte uandoso usados operandos de bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 969

eb site E0amples 99

$refi0o de tamanho de operando IA-3$refi0o de tamanho de operando IA-3

7 E0emplo de 8digo para proessador de -bits

7 Codifia4o para proessador de 3-bits

oerrides defaultoperand siGe

$CE E 1H A F ampampampampd onde d F amp ou reg F fonte ou destino e F amp ou D ou bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1069

eb site E0amples 1010

Instru46es no modo de mem8riaInstru46es no modo de mem8ria

7 ma ariedade de tipos de operandos modos deendere4amento

7 lto possiacuteeis 5 ombina46es de operandos7 eterminadas pelo byte 1od 91

7 Codifia4o 1od 917 mod F modo de endere4amento

7 reg F ngtmero de registrador

7 rm F india registrador ou mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 569

eb site E0amples 55

Instru46es de um gtnio byteInstru46es de um gtnio byte

7 ltomente o opode = usado7 enhum operando

7 E0emplo AAA

7 m operando7 E0emplo IC

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 669

eb site E0amples 66

1oe imediato para registrador 1oe imediato para registrador 7 p ode seguido por um alor imediato

7 E0emplo moe imediato para registrador de bits7 ormato de 8digo BDrw dw

7 BD F opode rw = um ngtmero de registrador dw = o operandoimediato

7 gtmero de registrador adiionado a BD para produGir um noo

opode

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 769

eb site E0amples 77

Instru46es no modo registrador Instru46es no modo registrador

7 byte 1od 91 ontem um ngtmero de registradorde 3-bits para ada operando registrador 7 Codifia4o de bits para ngtmeros de registradores

7 E0emplo 1H B A

opode F DB

byte 1od91 F D

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 869

eb site E0amples 88

$refi0o para tamanho de operando do IA-3$refi0o para tamanho de operando do IA-3

7 1odifia o atributo de segmento default -bit ou 3-bit7 Halor espeial reonheido pelo proessador h

7 A Intel desenoleu opodes para os proessadores IA-37 eessitando de ompatibilidade om DampD

7 Em sistemas IA-3 = usado um prefi0o de um byte uandoso usados operandos de bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 969

eb site E0amples 99

$refi0o de tamanho de operando IA-3$refi0o de tamanho de operando IA-3

7 E0emplo de 8digo para proessador de -bits

7 Codifia4o para proessador de 3-bits

oerrides defaultoperand siGe

$CE E 1H A F ampampampampd onde d F amp ou reg F fonte ou destino e F amp ou D ou bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1069

eb site E0amples 1010

Instru46es no modo de mem8riaInstru46es no modo de mem8ria

7 ma ariedade de tipos de operandos modos deendere4amento

7 lto possiacuteeis 5 ombina46es de operandos7 eterminadas pelo byte 1od 91

7 Codifia4o 1od 917 mod F modo de endere4amento

7 reg F ngtmero de registrador

7 rm F india registrador ou mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 669

eb site E0amples 66

1oe imediato para registrador 1oe imediato para registrador 7 p ode seguido por um alor imediato

7 E0emplo moe imediato para registrador de bits7 ormato de 8digo BDrw dw

7 BD F opode rw = um ngtmero de registrador dw = o operandoimediato

7 gtmero de registrador adiionado a BD para produGir um noo

opode

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 769

eb site E0amples 77

Instru46es no modo registrador Instru46es no modo registrador

7 byte 1od 91 ontem um ngtmero de registradorde 3-bits para ada operando registrador 7 Codifia4o de bits para ngtmeros de registradores

7 E0emplo 1H B A

opode F DB

byte 1od91 F D

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 869

eb site E0amples 88

$refi0o para tamanho de operando do IA-3$refi0o para tamanho de operando do IA-3

7 1odifia o atributo de segmento default -bit ou 3-bit7 Halor espeial reonheido pelo proessador h

7 A Intel desenoleu opodes para os proessadores IA-37 eessitando de ompatibilidade om DampD

7 Em sistemas IA-3 = usado um prefi0o de um byte uandoso usados operandos de bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 969

eb site E0amples 99

$refi0o de tamanho de operando IA-3$refi0o de tamanho de operando IA-3

7 E0emplo de 8digo para proessador de -bits

7 Codifia4o para proessador de 3-bits

oerrides defaultoperand siGe

$CE E 1H A F ampampampampd onde d F amp ou reg F fonte ou destino e F amp ou D ou bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1069

eb site E0amples 1010

Instru46es no modo de mem8riaInstru46es no modo de mem8ria

7 ma ariedade de tipos de operandos modos deendere4amento

7 lto possiacuteeis 5 ombina46es de operandos7 eterminadas pelo byte 1od 91

7 Codifia4o 1od 917 mod F modo de endere4amento

7 reg F ngtmero de registrador

7 rm F india registrador ou mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 769

eb site E0amples 77

Instru46es no modo registrador Instru46es no modo registrador

7 byte 1od 91 ontem um ngtmero de registradorde 3-bits para ada operando registrador 7 Codifia4o de bits para ngtmeros de registradores

7 E0emplo 1H B A

opode F DB

byte 1od91 F D

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 869

eb site E0amples 88

$refi0o para tamanho de operando do IA-3$refi0o para tamanho de operando do IA-3

7 1odifia o atributo de segmento default -bit ou 3-bit7 Halor espeial reonheido pelo proessador h

7 A Intel desenoleu opodes para os proessadores IA-37 eessitando de ompatibilidade om DampD

7 Em sistemas IA-3 = usado um prefi0o de um byte uandoso usados operandos de bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 969

eb site E0amples 99

$refi0o de tamanho de operando IA-3$refi0o de tamanho de operando IA-3

7 E0emplo de 8digo para proessador de -bits

7 Codifia4o para proessador de 3-bits

oerrides defaultoperand siGe

$CE E 1H A F ampampampampd onde d F amp ou reg F fonte ou destino e F amp ou D ou bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1069

eb site E0amples 1010

Instru46es no modo de mem8riaInstru46es no modo de mem8ria

7 ma ariedade de tipos de operandos modos deendere4amento

7 lto possiacuteeis 5 ombina46es de operandos7 eterminadas pelo byte 1od 91

7 Codifia4o 1od 917 mod F modo de endere4amento

7 reg F ngtmero de registrador

7 rm F india registrador ou mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 869

eb site E0amples 88

$refi0o para tamanho de operando do IA-3$refi0o para tamanho de operando do IA-3

7 1odifia o atributo de segmento default -bit ou 3-bit7 Halor espeial reonheido pelo proessador h

7 A Intel desenoleu opodes para os proessadores IA-37 eessitando de ompatibilidade om DampD

7 Em sistemas IA-3 = usado um prefi0o de um byte uandoso usados operandos de bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 969

eb site E0amples 99

$refi0o de tamanho de operando IA-3$refi0o de tamanho de operando IA-3

7 E0emplo de 8digo para proessador de -bits

7 Codifia4o para proessador de 3-bits

oerrides defaultoperand siGe

$CE E 1H A F ampampampampd onde d F amp ou reg F fonte ou destino e F amp ou D ou bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1069

eb site E0amples 1010

Instru46es no modo de mem8riaInstru46es no modo de mem8ria

7 ma ariedade de tipos de operandos modos deendere4amento

7 lto possiacuteeis 5 ombina46es de operandos7 eterminadas pelo byte 1od 91

7 Codifia4o 1od 917 mod F modo de endere4amento

7 reg F ngtmero de registrador

7 rm F india registrador ou mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 969

eb site E0amples 99

$refi0o de tamanho de operando IA-3$refi0o de tamanho de operando IA-3

7 E0emplo de 8digo para proessador de -bits

7 Codifia4o para proessador de 3-bits

oerrides defaultoperand siGe

$CE E 1H A F ampampampampd onde d F amp ou reg F fonte ou destino e F amp ou D ou bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1069

eb site E0amples 1010

Instru46es no modo de mem8riaInstru46es no modo de mem8ria

7 ma ariedade de tipos de operandos modos deendere4amento

7 lto possiacuteeis 5 ombina46es de operandos7 eterminadas pelo byte 1od 91

7 Codifia4o 1od 917 mod F modo de endere4amento

7 reg F ngtmero de registrador

7 rm F india registrador ou mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1069

eb site E0amples 1010

Instru46es no modo de mem8riaInstru46es no modo de mem8ria

7 ma ariedade de tipos de operandos modos deendere4amento

7 lto possiacuteeis 5 ombina46es de operandos7 eterminadas pelo byte 1od 91

7 Codifia4o 1od 917 mod F modo de endere4amento

7 reg F ngtmero de registrador

7 rm F india registrador ou mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1169

eb site E0amples 1111

E0emplos de instru46es 1HE0emplos de instru46es 1H7 ormatos seleionados para instru46es 1H de D-bits e -bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1269

eb site E0amples 1212

E0emplos de instru46es 1HE0emplos de instru46es 1H

Assumir ue myWord estea loaliGado no desloamento offset ampamph)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 13

Jndie sobre Linguagem AssemblyJndie sobre Linguagem Assembly

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1469

eb site E0amples 14

Lembran4a

7 esendo no

niacuteel deabstra46esreelam-seoutrasinforma46es

sapint NO int L

Pint tempQ temp F NLOQ

NLO F NLEOQ

NLEO F tempQR

sap

muli S S5T

add S STS l S5 ampS

l S TS s S ampS s S5 TS

r S3

ampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampampamp

ampampampampampampampampampampampampampampampampampampampampampampampampampamp

Binary mahinelanguageprogramfor 1I$lt

C ompiler

Assembler

Assemblylanguageprogramfor 1I$lt

Uigh-leellanguageprogramin C

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1569

eb site E0amples

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados

7 Constantes simb8lias7 $rograma4o no modo de endere4amento real

Irine ip 9) Assembly Language for Intel-Based Computers ampamp() 15

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 16

Elementos b2sios da linguagem KAssemblyMElementos b2sios da linguagem KAssemblyM

7 Constantes de inteiros7 E0press6es de inteiros

7 Constantes de arateres e adeias

7 $alaras reseradas e identifiadores

7 iretias e instru46es7 98tulos ou KLabelsM

7 1nemVnios e operandos

7 Coment2rios

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 17

Constantes de InteirosConstantes de Inteiros

7 p4o de ser aompanhado pelos sinais ou W

7 iacutegitos bin2rio deimal he0adeimal ou otal

7 ltufi0os omuns7 h W he0adeimal

7 d W deimal7 b W bin2rio

7 r W real

E0emplos 3ampd Ah T ampbUe0adeimal ome4ando om letra ampA5h

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 18

E0press6es de InteirosE0press6es de Inteiros7 peradores e niacuteeis de preedXnia

7 E0emplos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 1969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 19

Constantes de arateres e adeiasConstantes de arateres e adeias

7 Cerar arateres usando ap8strofos ou aspas7 A Y0Y

7 Caratere AltCII F byte

7 Cerar adeias usando ap8strofos ou aspas7 YABCY

7 0yG

7 Cada arater oupa um byte numa adeia

7 Cadeia dentro da outra

7 ltay YZoodnightY Zraie

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 20

$alaras reseradas e identifiadores$alaras reseradas e identifiadores

7 $alaras reseradas no podem ser usadas omoidentifiadores7 1nemVnios de instru46es diretias atributos de tipo

operadores siacutembolos pr=-definidos

7 Identifiadores7 -T( arateres inluindo diacutegitos

7 Insensiacuteel [ ai0a maigtsula e mingtsula

7 primeiro aratere dee ser letra _ ou $

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 21

iretiasiretias

7 Comandos ue so reonheidos pelo montador 7 o faGem parte do onunto de instru46es do proessador

7 sados para delarar 2reas de 8digo 2reas de dadosseleionar modo de mem8ria delarar proedimentos et)

7 Insensiacuteel [ ai0a

7 iferentes montadores podem ter diferentes diretias

7 $or e0emplo Alt1 no = igual a 1Alt1

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 22

Instru46esInstru46es

7 1ontado em 8digo de m2uina pelo montadorassembler7 E0eutado em tempo de e0eu4o pelo C$

7 esta disiplina usa-se as instru46es do Intel IA-3

7 odas as instru46es ontXm7 Label opional

7 1nemVnio neess2rio

7 perandos depende da instru4o

7 Coment2rio opional

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 23

Labels r8tulosLabels r8tulos

7 uniona omo maradores de posi4o7 mara o endere4o de 8digos e dados

7 ltegue a mesma regra dos identifiadores

7 Label para dados7 dee ser gtnio7 e0emplo myArray no tem dois pontos

7 Label para 8digos7 posi4o de instru46es de ump e loop 7 e0emplo L1 seguido por dois pontos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 24

1nemVnios e perandos1nemVnios e perandos

7 1nemVnios de instru46es7 auda a memoriGa4o

7 e0emplos 1H A ltB 1L IC EC

7 perandos7 onstante

7 e0presso de onstantes

7 registrador

7 mem8ria label de dados

Constantes e e0press6es de onstantes so tamb=mhamadas de alores imediatos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 25

Coment2riosComent2rios7 Coment2rios so gtteis]

7 e0plia o prop8sito do programa7 uando foi esrito e o autor 7 informa4o de reiso7 t=nias e detalhes de odifia4o7 e0plia4o espeiacutefia da aplia4o

7 Coment2rios numa mesma linha7 Iniia-se om ponto e iacutergula Q

7 Coment2rios em mgtltiplas linhas7 ome4a om a diretia C11E e um arater

esolhido pelo programador 7 termina om o mesmo arater esolhido pelo

programador

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 26

E0emplo de formato de instru46esE0emplo de formato de instru46es

ltem operandosst Q set Carry flag

m operando

in ea0 Q register in myByteQ memory

ois operandosadd eb0e0 Q register register sub myByte5 Q memory onstantadd ea03 ^ 5 Q register onstant-e0pression

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 27

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

E l Adi lt bt d I t i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 28

E0emplo Adi4o e ltubtra4o de InteirosE0emplo Adi4o e ltubtra4o de InteirosAddltub)asmAddltub)asm

TITLE Add and Subtract (AddSubasm)

Este programa soma e subtrai inteiros de 32-bits

ILE Ir$ine32inc

code

main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++

sub ea2++++ EA 3++++

ca11 umpampegs disp1ay registers

eit

main E

E main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 2969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp() 29

E0emplo de saiacutedaE0emplo de saiacuteda

ltaiacuteda do programa mostrando registradores e flags

EA+++3++++ E444+++ E++++++ E44444444

ESI++++++++ EI++++++++ E++2444+ ES++244

EI++++2 E4L+++++2+5 4+ S4+ 64+ 4+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

30

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Algumas abordagens para uso de maigtsulas7 no usar maigtsulas7 usar s8 maigtsulas7 maigtsulas para palaras reseradas inluindo

mnemVnios de instru46es e nomes de registradores

7 maigtsulas somente para diretias e operadores

7 utras sugest6es7 nomes de identifiadores desritios

7 espa4os ao redor dos operadores aritm=tios7 linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

31

ltugesto de padr6es de odifia4oltugesto de padr6es de odifia4o de de

7 Indenta4o e espa4amento7 labels de 8digo e dados W sem indenta4o

7 instru46es e0eut2eis W indentar T-5 espa4os

7 oment2rios ome4ar na oluna Tamp-T5 alinhados

ertialmente7 -3 espa4os entre mnemVnio da instru4o e operandos

7 e0 mo a0b0

7 - linhas em brano entre proedimentos

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

32

Herso alternatia do Addltub)asmHerso alternatia do Addltub)asm

TITLE Add and Subtract (AddSubA1tasm)

este programa soma e subtrai inteiros de 32-bits

375

8EL 91atstdca11

STA +5

Eitrocess ampT dltEitode=Wampumpampegs ampT

code main amp

mo$ ea++++ EA ++++

add ea++++ EA 0++++sub ea2++++ EA 3++++ca11 umpampegsIgtE Eitrocess+

main EE main

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

33

Zabarito de programaZabarito de programa

TITLE rogram Temp1ate (Temp1ateasm)

rogram escription=

Autor=

reation ate=

ampe$isions=

ate= 8odi9ied by=

ILE Ir$ine32inc

data

(insert $ariab1es ere)

code

main amp

(insert eecutab1e instructions ere)

eit main E

(insert additiona1 procedures ere)

E main

Instrutors pleaseustomiGe as needed

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

34

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

35

1ontagem KliningM e e0eu4o de programas1ontagem KliningM e e0eu4o de programas

7 Assemble-Lin-E0eute Cyle

7 mae3)bat

7 Listing ile

7 1ap ile

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

36

Cilos de 1ontagem KLinagemM e E0eu4oCilos de 1ontagem KLinagemM e E0eu4o

7 seguinte diagrama desree os passos a partir da ria4o do

programa fonte at= a e0eu4o do programa)7 lte o 8digo fonte = modifiado passos a T deem se repetir)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

37

Aruio de Listagem List ile Aruio de Listagem List ile

7 1ostra omo o programa = montado7 Contem

7 8digo fonte

7 endere4os

7 8digo obeto linguagem de m2uina

7 nomes de segmentos

7 siacutembolos ari2eis proedimentos e onstantes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

38

Aruio de 1apeamento 1ap ile Aruio de 1apeamento 1ap ile

7 Informa46es sobre ada segmento de programa7 endere4o de iniacuteio

7 endere4o de fim

7 tamanho

7 tipo de segmento

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 3969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

39

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly

7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

40

efini4o de dadosefini4o de dados

7 ipos de dados intriacutenseos

7 ltenten4as para defini4o de dados7 efini4o de B+E e ltB+E7 efini4o de 9 e lt97 efini4o de 9 e lt9

7 efini4o de _97 efini4o de B+E7 efini4o ngtmero 9eal7 rdem Little Endian7 Adiionando ari2eis ao programa Addltub7 elara4o de dados no-iniialiGados

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

41

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 B+E ltB+E7 D-bit unsigned integerQ D-bit signed integer

7 9 lt97 -bit unsigned ` signed integer

7 9 lt97 3-bit unsigned ` signed integer

7 _97 T-bit integer

7 B+E7 Damp-bit integer

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

42

ipos de dados instriacutenseosipos de dados instriacutenseos de de

7 9EALT7 T-byte IEEE short real

7 9EALD

7 D-byte IEEE long real7 9EALamp

7 amp-byte IEEE e0tended real

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

43

ltenten4a de defini4o de dadosltenten4a de defini4o de dados

7 ma senten4a de defini4o de dados define a forma de

armaGenamento da ari2el na mem8ria)

7 $ode opionalmente atribuir um nome label ao dado7 ltinta0e

NnaeO diretive initialier Ninitialier O ) ) )

$a1ue TE +

7 odos os iniialiGadores initialiers so dados bin2rios na mem8ria

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

44

efini4o de dados B+E e ltB+Eefini4o de dados B+E e ltB+E

$a1ue TE A caracter constant

$a1ue2 TE + sma11est unsigned byte

$a1ue3 TE 200 1argest unsigned byte

$a1ue STE -27 sma11est signed byte

$a1ue0 STE 2 1argest signed byte

$a1ue5 TE B uninitia1iCed byte

Cada senten4a seguinte define o armaGenamento de um byte

7 lte for delarada uma ari2el ltB+E o 1irosoft debuggermostra automatiamente o seu alor deimal om sinal)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

45

efini4o deefini4o de yte rraysyte rrays etores de bytesetores de bytes

1ist TE +2+3++

1ist2 TE +2+3++

TE 0+5++7+

TE 772737

1ist3 TE B32++++++b

1ist TE +A2+DA22

sam mgtltiplos iniialiGadores

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

46

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 ma adeia = implementada omo um etor de arateres

7 por oneniXnia = usualmente erada om ap8strofos ou aspas7 geralmente termina om Gero

7 E0emplos

str TE FEnter your nameF+

str2 TE Error= a1ting program+

str3 TE AEI

greeting TE FWe1come to te Encryption emo program F

TE Fcreated by ip Ir$ineF+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

47

efini4o de adeias lttringsefini4o de adeias lttrings de 3 de 3

7 $ara ontinuar uma adeia na linha seguinte essa

linha dee terminar om iacutergula

menu TE FecGing AccountF+d+a+d+a

F reate a nelt accountF+d+a

F2 pen an eisting accountF+d+a

F3 redit te accountF+d+a

F ebit te accountF+d+a

F0 EitF+a+a

FoiceH F+

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

48

efini4o de adeias lttringsefini4o de adeias lttrings 3 de 3 3 de 3

7 lteXnia de arateres de fim de linha e linha seguinte

7 amph F arriage return7 ampAh F line feed

str TE FEnter your name= F++A

TE FEnter your address= F+

neltLine TE ++A+

dampia efinir todas as adeias usadas no programa namesma 2rea do segmento de dados)

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 4969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

49

sando o operador $sando o operador $

7 sar $ para aloar riar espa4o para um etor ou adeia)

7 ltinta0e ounter $ aruent

7 (ounter e aruent deem ser onstantes ou e0press6es deonstantes

ounter W india o ngtmero de dados

argument W india o alor do dado

$ar TE 2+ (+) 2+ bytes a11 eua1 to Cero

$ar2 TE 2+ (B) 2+ bytes uninitia1iCed

$ar3 TE (FSTAF) 2+ bytes= FSTASTASTASTAF

$ar TE +3 (+)2+ 0 bytes

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

50

efini4o de 9 e lt9efini4o de 9 e lt9

7 efini4o de armaGenamento de inteiros de -bits

7 ou dupla de arateres7 alor gtnio ou mgtltiplos alores

ltord Wamp 50030 1argest unsigned $a1ue ltord2 SWamp J3257 sma11est signed $a1ue

ltord3 Wamp B uninitia1iCed unsigned

ltord Wamp FAF doub1e caracters

myList Wamp 230 array o9 ltords

array Wamp 0 (B) uninitia1iCed array

fi i d 9 lt9

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

51

efini4o de 9 e lt9efini4o de 9 e lt9

$a1 Wamp 23057 unsigned

$a12 SWamp J27357 signed

$a13 Wamp 2+ (B) unsigned array

$a1 SWamp J3J2J+ signed array

efini4o de armaGenamento de inteiros no-sinaliGados ousinaliGados de 3-bits

fi i d d d _9 B+E 9 l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()

52

efini4o de dados _9 B+E e 9ealefini4o de dados _9 B+E e 9eal

uad KWamp 2305723057

$a1 TTE +++++++++23057A

rgta1 ampEAL -2

rgta12 ampEAL7 32E-25+

rgta13 ampEAL+ 5E+5

SortArray ampEAL 2+ (++)

efini4o de armaGenamento para uadords

tenbytes e ngtmeros reais

d Littl E di d Littl E di

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()53

rdem Little Endianrdem Little Endian

7 a aruitetura IA-3 todos os tipos de dados maioresue um byte armaGenam os seus bytes em ordemreersa o sea byte menos signifiatio no menorendere4o de mem8ria)

7 E0emplo$a1 Wamp 23057

Adi i d H i2 i Addlt bAdi i d H i2 i Addlt b

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()54

Adiionando Hari2eis ao Addltub Adiionando Hari2eis ao Addltub

TITLE Add and Subtract gtersion 2 (AddSub2asm)

este programa soma e subtrai inteiros no-sina1iCados de 32-bits e armaCena a soma numa $aria$e1

ILE Ir$ine32inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp Bcode

main amp

mo$ ea$a1 start ltit ++++

add ea$a12 add ++++

sub ea$a13 subtract 2++++

mo$ 9ina1gta1ea store te resu1t (3++++)ca11 umpampegs disp1ay te registers

eit

main E

E main

l d d d i i i li d l d d d i i i li d

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()55

elara4o de dados no-iniialiGadoselara4o de dados no-iniialiGados

7 sar a diretia )data para delarar um segmento de dados noiniialiGados

dataB

7 entro do segmento delarar ari2eis om iniialiGadores YY

sma11Array Wamp + (B)

antagem reduG o tamanho do aruio EE do programa)

$ 8 i $ 8 i

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()56

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7 efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

C i b8liC t t i b8li

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()57

Constantes simb8liasConstantes simb8liasrepresenta4o de onstantes usando siacutembolosrepresenta4o de onstantes usando siacutembolos

7 iretia de sinal de igual

7 C2lulo de tamanho de etores e adeias

7 iretia E_7 iretia EE_

i ti d i l d i l i ti d i l d i l

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()58

iretia de sinal de igual Firetia de sinal de igual F

7 nae F e)pression

7 e0pression = um inteiro de 3-bits e0presso ouonstante

7 pode ser redefinido

7 nae = hamado de onstante simb8lia

7 m bom estilo de programa4o = usar siacutembolos

T 0++

mo$ a1T

C2l l d t h d t d b tC2lulo do tamanho de um etor de bytes

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 5969

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()59

C2lulo do tamanho de um etor de bytesC2lulo do tamanho de um etor de bytes

7 endere4o da posi4o atual onde est2 sendoalulado = dado pelo ontador de posi4o S7 subtrair o endere4o de list

7 a diferen4a = o ngtmero de bytes

1ist TE +2+3++

ListSiCe (M - 1ist)

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ords

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6069

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()60

C2lulo do tamanho de um etor de ordsC2lulo do tamanho de um etor de ordstamanho F ngtmero de ordstamanho F ngtmero de ords

iide o ngtmero total de bytes por tamanho de um ord

1ist Wamp +++2+++3++++++

ListSiCe (M - 1ist) N 2

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6169

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()61

C2lulo do tamanho de um etor de oubleordsC2lulo do tamanho de um etor de oubleords

iide o ngtmero total de bytes por T tamanho de umdoubleord

1ist Wamp 23ListSiCe (M - 1ist) N

iretia E_iretia E_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6269

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()62

iretia E_iretia E_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to7 o pode ser redefinido

I EK O35H

pressey EK OFress any Gey to continueF+H

data

prompt TE pressey

iretia EE_iretia EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6369

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()63

iretia EE_iretia EE_

7 efine um siacutembolo omo um inteiro ou e0presso de te0to)

7 Chamado um maro de te0to7 $ode ser redefinido

continue8sg TETEK OFo you ltis to continue (N)BFH

roltSiCe 0

data

prompt TE continue8sg

count TETEK P(roltSiCe Q 2) e$a1uates te epression

setupAL TETEK Omo$ a1countH

code

setupAL generates= Fmo$ a1+F

$r80ima se4o$r80ima se4o

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6469

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()64

$r80ima se4o$r80ima se4o

7 Elementos b2sios da linguagem Assembly7 E0emplo adi4o e subtra4o de inteiros

7 1ontagem KLiningM e e0eu4o de programas

7efini4o de dados7 Constantes simb8lias

7 $rograma4o no modo de endere4amento real

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real f f

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6569

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()65

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real of of

7 Zera programas em 1lt-lt de bits7 Hantagens

7 habilita a hamada do 1lt-lt e fun46es BIlt

7 sem restri4o de aesso [ mem8ria

7 esantagens7 dee estar alerta a segmentos e offsets

7 o pode hamar fun46es in3 indos c5 emdiante

7 Limitado a Tamp para mem8ria de programa

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real d de

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6669

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()66

$rograma4o no modo de endere4amento real$rograma4o no modo de endere4amento real de de

7 9euisitos

7 ICLE Irine)in

7 InitialiGar lt para o segmento de dados mo$ aRdata mo$ dsa

ltoma e subtra4o erso de Bitsltoma e subtra4o erso de Bits

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6769

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()67

ltoma e subtra4o erso de -Bitsltoma e subtra4o erso de -Bits

TITLE Add and Subtract gtersion 2 (AddSub2rasm)

ILE Ir$ine5inc

data

$a1 Wamp ++++

$a12 Wamp ++++

$a13 Wamp 2++++

9ina1gta1 Wamp B

code

main amp mo$ aRdata initia1iCe S

mo$ dsa

mo$ ea$a1 get 9irst $a1ue

add ea$a12 add second $a1ue

sub ea$a13 subtract tird $a1ue

mo$ 9ina1gta1ea store te resu1t

ca11 umpampegs disp1ay registers

eit

main E

E main

9esumo9esumo

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6869

eb site E0amplesIrine ip 9) Assembly Language for Intel-Based Computers ampamp()68

9esumo9esumo

7 e0presso de inteiros onstantes de arateres

7 diretias W interpretadas pelo montador assembler7 instru4o W e0euta no runtie

7 segmentos de 8digo dados e pilha7 Aruios fonte listin obeto ap e0eut2el

7 iretias para defini4o de dados7 B+E ltB+E 9 lt9 9 lt9

_9 B+E 9EALT 9EALD e 9EALamp

7 operador $ ontador de posi4o S

7 Constante simb8lia7 E_ e EE_

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73

7232019 Aula 03-assembly

httpslidepdfcomreaderfullaula-03-assembly 6969

46 69 6E 69 7346 69 6E 69 73