02-Introducao a Assembly

Share Embed Donate


Short Description

Arquitetura e organização de Comp...

Description

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* A %nt"+# "%%#$&l' do ()(* A ln!u"!#$ $ont"dor" não , %#n%-.#l à l#tr" $"/%0ul" ou $n/%0ul" • P"r" 1"0lt"r " 0o$2r##n%ão do t#+to do 2ro!r"$"3 %u!#r#4%#5  – u%o d# l#tr" $"/%0ul" 2"r" 06d!o7  – u%o d# l#tr" $n/%0ul" 2"r" 2 "r" 0o$#nt8ro%9 •

D#0l"r"ç:#% ;statements"r "l!u$" t"r#1" #%2#0-10"5  – "lo0"r #%2"ço d# $#$6r" 2"r" ."r8.#%7 ."r8.#%7  – 0r"r u$" %u&4rotn" ; procedure  procedure ou 2ro0#d$#nto#r n"d" INC IN C A A 7u$ 7u$ o2#r o2#r"n "ndo do55 %o$" %o$"  "o 0on 0ont# t#/d /do o d# A ADD ADD A3 A3d d 7do% o2#r"ndo%5 o2#r"ndo%5 %o$"  "o 0ont#/do 0ont#/do d" 2"l".r" 2"l".r" d# $#$6r" $#$6r" A •

No 0"%o d# n%truç:#% d# do% o2#r"ndo%5 o 2r$#ro3 o2#r"ndo d#%tno5 r#!%tr"dor ou 2o%ção d# $#$6r" ond# o r#%ult"do %#r8 "r$">#n"do3 o 0ont#/do n0"l %#r8 $od10"do7  – o %#!undo3 o2#r"ndo 1ont#5 não $od10"do 2#l" n%trução7  – o% o2#r"ndo% %ão %#2"r"do% 2or u$" .-r!ul"9  –



No 0"%o d# dr#t."%3 o 0"$2o d# o2#r"ndo% 0ont#$ $"% n1or$"ç:#% "0#r0" d" dr#t."9

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* 4 Snt"+# ? 0ontnu"ção •

C"$2o d# 0o$#nt8ro5  – U$ 2onto4#4.-r!ul" ; 7 < $"r0" o n-0o d#%t# 0"$2o7  – O Mont"dor !nor" tudo "26% o #%t# $"r0"dor7  – Co$#nt8ro% %ão o20on"%3 $"% $2r#%0nd-.#%9



Uma boa prática de programação é comentar tudo e incluir a informação acerca da idéia por trás da codificação (o algorítmo).

E+#$2lo%5 MO C3) 7$o.$#nt" ) 2"r" C ;6&.oV< MO C3) 7C 0ont" no9 d# 0"r"0t#r#%3 n0"l$#nt# ."l# ) 7 ;ln"% #$ &r"n0o5 %#2"r"ção< 7 7 n0"l>"ção do% r#!%tr"dor#% ;ln" nt#r" d# 0o$#nt8ro<

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* 4 Snt"+# ? 0ontnu"ção •

@or$"to d# d"do%3 ."r8.#% # 0on%t"nt#%  – N/$#ro%5

E+#$2lo%5 &n8ro5 ))& ou ))B d#0$"l5 *QJ ou *QJd ou *QJD3 )) , 0on%d#r"do d#0$"l ;"u%Wn0" do B"d"



D#1nção d# ."r8.#% d# t2o _ord5

No$# D^ E+#$2lo%5 ^ORD D^ CONTA D^ C D^ ^ORD D^

."lorn0"l ) 7#=u."l# " )))) )F) 7OV3 2or =u#K K 7não n0"l>"d" JQ 7&'t# &"+o JQ3 #nd#r#ço ^ORD 7&'t# "lto  #nd#r#ço ^ORDa

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* 4 Snt"+# ? 0ontnu"ção •

 Array 5 %#=uWn0" d# &'t#% ou _ord% 0on%#0ut.o% n" $#$6r"

Ar$">#n"r d"do% r#l"0on"do%7  – Ar$">#n"r 0"r"0t#r#% ASCII or!"n>"do% ;#+5 t#+to#n"do no r#!%tr"dor d#%tno #$ 0o$2l#$#nto d# 9

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* 4 Snt"+# ? 0ontnu"ção • •

INC d#%tno DEC d#%tno  –

U%"d"% 2"r" "d0on"r  ;n0r#$#nt"r< ou %u&tr"r  ;d#0r#$#nt"r< "ofdo 0ont#/do d#5 • •

E+#$2lo%5 INC C INC ^ORD DEC BbTE DEC CL

u$ r#!%tr"dor7 u$" 2o%ção d# $#$6r"9

7n0r#$#nt" o 0ont#/do d# C 7n0r#$#nt" 0ont#/do 2o%ção $#$6r" ^ORD 7d#0r#$#nt" 0ont#/do 2o%ção d# $#$6r" BbTE 7d#0r#$#nt" o 0ont#/do d# CL ;&'t# &"+o d# C<

Gr"10"$#nt#5 %u2on" " n%trução INC BbTE Ant#% BbTE )))*

D#2o% BbTE )))g

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* 4 Snt"+# ? 0ontnu"ção •

NEG d#%tno  – U%"d" 2"r" %u&%ttur o 0ont#/do destino 2#lo %#u 0o$2l#$#nto d# 3 o2#r"ndo %o&r#5 u$ r#!%tr"dor7 • u$" 2o%ção d# $#$6r"9 •

E+#$2lo%5 NEG B NEG ^ORD

7!#r" o 0o$2l#$#nto d#  do 0ont#/do d# B 7d#$3 no 0ont#/do d" 2o%ção d# $#$6r" ^ORD

Gr"10"$#nt#5 %u2on" " n%trução NEG B Ant#% BbTE )))

D#2o% BbTE @@@E

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* 4 Snt"+# ? 0ontnu"ção •

Tr"dução d# #+2r#%%:#% $"t#$8t0"% #$ Ln!u"!#$ d# Alto N-.#l 2"r" Ln!u"!#$ Mont"dor"

E+#$2lo5 B h A

;#=u."l#nt# " B r#0#&# A<

MO A3A 7tr"n%1#r# o 0ont#/do d" 2o%ção d# $#$6r" A 2"r" A # MO B3A 7tr"n%1#r# A 2"r" " 2o%ção d# $#$6r" B E+#$2lo 5 A h F 4 A NEG A ADD A3F

7!#r" o 0o$2l#$#nto d#  d" 2o%ção d# $#$6r" A # 7r#"l>" ;4A< a F3 =u# #=u."l# " F 4 A

E+#$2lo J5 A h B 4 A MO A3B SUB A3A SUB A3A MO A3A

7A 0ont#$ " ."r8.#l B 7A 0ont#$ B 4 A 7A 0ont#$ B 4 A 7$o.$#nt" o r#%ult"do 2"r" A

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A #%trutur" d# u$ 2ro!r"$" #$ Ln!u"!#$ Mont"dor" i Mod#lo% d# $#$6r" O t"$"no =u# o% %#!$#nto% d# 06d!o # d# d"do% d#.#$ t#r , #%2#010"do 2#lo $od#lo d# $#$6r" 2or $#o d" dr#t." 9MODEL9 Snt"+#5 9MODEL $od#lod#$#$6r" Mod#lo SMALL MEDIUM COMPACT LARGE XUGE

D#%0rção C6d!o #$  %#!$#nto7 D"do% #$  %#!$#nto C6d!o #$ $"% d#  %#!$#nto7 D"do% #$  %#!$#nto C6d!o #$  %#!$#nto7 D"do% #$ $"% d#  %#!$#nto C6d!o #$ $"% d#  %#!$#nto7 D"do% #$ $"% d#  %#!$#nto7 N#nu$ "rr"' $"or =u# *Q &'t#% C6d!o #$ $"% d#  %#!$#nto7 D"do% #$ $"% d#  %#!$#nto7 Arr"'% $"or#% =u# *Q &'t#%

O&%#r."ção5 A dr#t." 9MODEL d#.# .r "nt#% d# =u"l=u#r d#1nção d# %#!$#nto9

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A #%trutur" d# u$ 2ro!r"$" #$ Ln!u"!#$ Mont"dor" •

S#!$#nto d# d"do%  – Cont#$ " d#1nção # d#0l"r"ção d"% ."r8.#%9  – Pod#4%# t"$&,$ 1">#r " "tr&ução d# %-$&olo% 2"r" 0on%t"nt#%9

Snt"+#5 9DATA E+#$2lo5 9DATA ^ORD D^ BbTE DB MENSAGEMDB L@ E`U

A( F I%to # u$" $#n%"!#$] )A

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A #%trutur" d# u$ 2ro!r"$" #$ Ln!u"!#$ Mont"dor" •

S#!$#nto d# 2l" ;stac" segment <  – R#%#r." u$ &lo0o d# 2o%ç:#% d# $#$6r" 0on%#0ut."% 2"r" "r$">#n"r " 2l"9  – D#.# t#r #%2"ço %u10#nt# 2"r" %u2ort"r " 2l" no %#u $8+$o t"$"no9

Snt"+#5

9STAC t"$"no

E+#$2lo5 9STAC )) 7r#%#r." )) &'t#% 2"r" " 8r#" d# 2l"3 u$ 7t"$"no r">o8.#l 2"r" " $"or" d"% 7"2l0"ç:#%

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM A #%trutur" d# u$ 2ro!r"$" #$ Ln!u"!#$ Mont"dor" •

S#!$#nto d# 06d!o  – Cont#$ 2ro2r"$#nt# "% n%truç:#% do 2ro!r"$"9  – D#ntro do %#!$#nto d# 06d!o3 "% n%truç:#% %ão or!"n>"d"% #$  procedures ou 2ro0#d$#nto%.

Snt"+#5 9CODE E+#$2lo5 9CODE no$# PROC 7 70or2o d" procedure 4H n%truç:#% 7 no$# ENDP 7 7outr"% procedures %#!u#$ "&"+o3 %# #+%tr#$ ond#5 no$# 4H d#nt10"ção d" procedure PROC # ENDP 4H 2%#udo4n%truç:#% u%"d"% 2"r" d#l$t"r " procedure 2"r" u$ 2ro!r"$" %$2l#%3 não 8 n#0#%%d"d# d# %# d#1nr "  procedure9

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM E+#$2lo d# u$" #%trutur" d# 2ro!r"$" "%%#$&l' 0o$2l#t" TITLE no$#do2ro!r"$" 9MODEL SMALL 9STAC)) 9DATA 7 7d#1nção do% d"do%5 ."r8.#% # 0on%t"nt#% 7 9CODE EEMPLO PROC 7 7%#=jWn0" d# n%truç:#% 7 EEMPLO ENDP 7 7%#!u# outr"% 2ro0#dur#% 7 END EEMPLO O&%5  – n" 2r$#r" ln" t#$4%# " dr#t." TITLE %#!ud" do no$# do 2ro!r"$"7  – n" /lt$" ln" t#$4%# " dr#t." END3 %#!ud" do no$# d"  procedure 2rn02"l7  – %# não ou.#r d#1nção d# procedure3 u%"4%# "2#n"% END9

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* 4 Snt"+# ? 0ontnu"ção •

In%truç:#% d# #ntr"d" # %"-d"  – IN # OUT 4H n%truç:#% Assembly  2"r" "0#%%"r 2ort"% d# EfS 2"r" 2#r1,r0o%



Não %ão utl>"d"% n" $"or" d"% "2l0"ç:#%5  – o% #nd#r#ço% d"% 2ort"% d# EfS ."r"$ 0on1or$# o $od#lo do PC  – , $"% 180l utl>"r o BIOS ou o DOS 2"r" 1unç:#% d# EfS



P"r" "0#%%"r "% rotn"% d# EfS do BIOS ou DOS utl>"4%# " n%trução5 INT n/$#rod#nt#rru2ção

O&%#r."ção5 O 2ro!r"$" #$ 0ur%o , nt#rro$2do3 2"%%"ndo o 0ontrol# 2"r" o DOS3 =u# r#"l>" " o2#r"ção d# EfS # r#torn" o 0ontrol# 2"r" o 2ro!r"$"9 E+#$2lo5 INT  7"0#%%" u$ !r"nd# n/$#ro d# 1unç:#% d# EfS do DOS

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Al!u$"% 1unç:#% DOS d# EfS •

@unção 5 Entr"d" d# u$ 0"r"0t#r %$2l#% 2#lo t#0l"do A0#%%o5 AX h  R#%ult"do5 AL h 06d!o ASCII do 0"r"0t#r d!t"do no t#0l"do



@unção 5 E+&ção d# 0"r"0t#r %$2l#% no $ontor d# .-d#o A0#%%o5 AX h  DL h 06d!o ASCII do 0"r"0t#r " #+&r  R#%ult"do5 #+&ção n" t#l" do $ontor 

E+#$2lo%5 "< Tr#0o 2"drão d# 2ro!r"$" 2"r" 2ro.d#n0"r " #ntr"d" d# u$ 0"r"0t#r ASCII 2#lo t#0l"do5 MO AX3 72r#2"r" 2"r" #ntr"r 0"r"0t#r 2#lo t#0l"do o 2ro0#%%"dor 7#%2#r" "t, =u# o u%u8ro d!t# o 0"r"0t#r d#%#e"do INT  7"26% " d!t"ção3 0"r"0t#r ASCII #$ AL %# u$ 0"r"0t#r 7não4ASCII 1or d!t"do3 AL h ) O&%5 o 0"r"0t#r t#0l"do t"$&,$ "2"r#0# no $ontor3 2or 0"u%" do DOS9

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Al!u$"% 1unç:#% DOS d# EfS E+#$2lo%5 &< Tr#0o 2"drão d# 2ro!r"$" 2"r" 2ro.d#n0"r " %"-d" d# u$ 0"r"0t#r ASCII 2"r" o $ontor d# .-d#o5 MO AX3 72r#2"r" 2"r" #+&r 0"r"0t#r no $ontor  MO DL3]K] 7o 0"r"0t#r , K] INT  7#+&# ;$ontor "2r#%#nt" K]< 7"26% " #+&ção3 o 0ur%or d" t#l" "."nç" 2"r" " 72r6+$" 2o%ção d" ln" ;%# e8 1or "tn!do o 1$ 7d" ln"3 ." 2"r" o n-0o d" 2r6+$" ln"< O&%5 t"$&,$ %# 2od# #+&r 0"r"0t#r#% ASCII d# 0ontrol#5 C6d!o ASCII S-$&olo @unção #ell  ;%o$ d# &2< )g BEL #ac" $pace ;#%2"ço 2"r" tr8%< )( BS %ab ;t"&ul"ção< )Y XT )A L@ Line eed  ;no." ln"< !arriage &eturn ;n-0o ln"< )D CR

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Cr"ndo # rod"ndo u$ 2ro!r"$" •

E%2#010"ção do 2ro!r"$" ECO DO TECLADO NA TELA5  – l#r u$ 0"r"0t#r do t#0l"do  – #+&r o 0"r"0t#r ldo n" 2r6+$" ln" d" t#l" do $ontor   – r#torn"r "o SO



E%0r#.#ndo "% 2"rt#%

"< O 2ro!r"$" #%t$ul" o u%u8ro " nt#r"!r "2r#%#nt"ndo u$ K]5 MO AX3 71un0"o DOS 2"r" #+&r 0"r"0t#r  MO DL3K 70"r"0t#r K INT X 7#+&r  &< L#ndo o 0"r"0t#r t#0l"do 2#lo u%u8ro # %"l."ndo4o #$ nu$ r#!%tr"dor5 MO AX3 71un0"o DOS 2"r" l#tur" d# 0"r"0t#r  INT X 70"r"0t#r # ldo #$ AL MO BL3AL 7%"l."ndo4o #$ BL

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Cr"ndo # rod"ndo u$ 2ro!r"$" 4 0ontnu"ção •

E%0r#.#ndo "% 2"rt#%

0< Mo.#ndo o 0ur%or d" t#l" 2"r" o n-0o d" 2r6+$" ln"5 MO AX3 71un0"o DOS 2"r" #+&r 0"r"0t#r  MO DL3)DX 70"r"0t#r ASCII CRH 4 r#turn INT X 7#+#0ut"ndo MO DL3)AX 70"r"0t#r ASCII L@H 4 ln# 1##d INT X 7#+#0ut"ndo d< R#0u2#r"ndo o 0"r"0t#r ldo # #+&ndo4o5 MO DL3BL 7r#0u2#r"ndo o 0"r"0t#r %"l.o INT X 7#+&r 

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM O 2ro!r"$" ECO 0o$2l#to5 TITL P!"4#1: PR$!R%"% & '$ &$ T'L%&$ (% TL% ."$&L )"%LL .)T%'* 100+ .'$& "%I(

PR$'

, ,a-reentacao do -ro/-t  "$ %+2 ,fncao -ara eiir caracter  "$ &L ,caracter  ,eiir  I(T 21+ ,entrada do caracter -eo tecado "$ %+1 ,fncao -ara eitra de caracter  I(T 21+ ,caracter e ido e/ %L "$ L%L ,aandoo e/ L ,

,/oendo de in;a "$ %+2 "$ &L0&+ I(T 21+ "$ &L0%+ I(T 21+

,fncao -ara eiir caracter  ,caracter "d"

%n"l>"d" g@ g@

) & a ) & )  )& 4H

g a g FQ ;O<

r#2r#%9

a g a g FQ ;1or"<

Lo!o "26% " #+#0ução d" n%trução5 C@ h ) 3 nd0"do #$ n#!rto7 O@ h  3 2o% no MSB o .#$4u$ , d1#r#nt# do ."4u$9 Port"nto5 r#2r#%#nt"ção não4%n"l>"d" r#2r#%#nt"ção %n"l>"d"4H

4H @l"! C@ nd0" o*erflo+ 7 @l"! O@ nd0" o*erflo+ 9

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* 4 Snt"+# ? 0ontnu"ção J Co$o "% n%truç:#% "1#t"$ o% @l"!% Al!u$"% n%truç:#%3 $#d"t"$#nt# "26% " %u" #+#0ução5  –  –  –

"1#t"$ todo% o% @l"!%7 "1#t"$ "2#n"% "l!un%7 não "1#t"$ n#nu$9

In%trução "$2 '+! L%

@l"!% "1#t"do%

nen;4/ nen;4/ nen;4/

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* 4 Snt"+# ? 0ontnu"ção E+#$2lo%5 ADD A3B @@@@ @@@@ @@@E Co$o r#%ult"do5

7ond# "$&o% A # B ."l#$ @@@@     & a     &     ) & C@ h  A@ h  P@ h ) S@ h 

Z@ h ) O@ h )

INC AL @@ ) )) Co$o r#%ult"do5

7ond# AL 0ont#$ @@   & a &  )))) )))) & C@ h não "1#t"do A@ h  P@ h  S@ h )

Z@ h  O@ h )

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Introdução à ln!u"!#$ "%%#$&l' do ()(* 4 Snt"+# ? 0ontnu"ção

Q O 2ro!r"$" DEBUG O 2ro!r"$" DEBUG do DOS 2ro.W u$ $#o d# d#2ur"ção d# 2ro!r"$"% #$ Ln!u"!#$ Mont"dor" # 2#r$t# "0o$2"n"r " $od10"ção do 0ont#/do d# r#!%tr"dor#% ;n0lu%.# o d# @l"!%
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF