Sei sulla pagina 1di 8

Ing.

Gabriele MONTI 2003 - 2005

MASM32

www.ingmonti.it

1 MASM32
Microsoft ro!"ce# aggiorna e ren!e !is onibile gratis il solo com ilatore MASM $ rogramma%ml%&# a '( o 32 bit# e! il lin)er $ rogramma%lin)%&# ma non s" orta in alc"n mo!o *"esti !"e ro!otti. MASM32 + il ris"ltato !i "no sfor,o !i "n team !i s-il" o s" Internet# c.e .a com letato il la-oro s"ll/Assembler MASM !i Microsoft. Il team !i MASM32 .a scritto "na gran *"antit0 !i librerie e !i file !i incl"sione# er oter rogrammare efficacemente in Assembl1 sotto 2in!ows e! .a c.iamato l/insieme %MASM32%. Gli str"menti MASM32 reali,,ano t"tte le A3I !el S.O. 2in!ows' e! anc.e altro. MASM32 + !is onibile grat"itamente e com ren!e anc.e il com ilatore e! il lin)er !i Microsoft. MASM32 com ren!e anc.e "na n"trita !oc"menta,ione e! "na serie !i t"torial. A !ifferen,a !i 4OS# o-e le c.iamate al S.O. erano fatte con interr" t software $es. INT 2'.&# in 2in!ows ci5 a--iene con normali c.iamate a roce!"re. 6"este roce!"re sono conten"te in librerie a collegamento !inamico $477 8 41namic 7in) 7ibrar1&# caricate in memoria all/accensione !el sistema o a ric.iesta# *"an!o ser-e. 7/insieme !i *"este roce!"re -iene !etto A3I $A lication 3rogram Interface&. In MASM32 i nomi !elle roce!"re !elle A3I !i 2in!ows sono conten"ti in file .IN9# !a %incl"!ere% all/ini,io !el file .ASM. In *"esto mo!o basta "sare 9A77 con il nome !elle roce!"re !ella A3I er oterle "tili,,are. Il nome !elle roce!"re# il n"mero e le caratteristic.e !ei loro arametri si ossono tro-are nella !oc"menta,ione !i 2in!ows o !i MASM32.

Struttura di un programma MASM32


:n rogramma MASM32 er 2in!ows si resenta in *"esto mo!o; .386 .MODEL FLAT, STDCALL ; ***** File di inclusione ***** INCLUDE < !"# e no$e del %ile d! include&e' .. INCLUDELI( < !"# e no$e dell! li)&e&i! d! lin*!&e ! +ues"o %ile l-ese,ui)ile' .. ; ***** .i%e&i$en"i es"e&ni E/T.N <si$)olo' .. ; ***** E0UATE <si$)olo' E0U <s"&in,!' ; ***** d!"i ini1i!li11!"i .DATA <d!"i ini1i!li11!"i' .. ***** e& ,ene&!&e

***** *****

; ***** d!"i NON ini1i!li11!"i ***** .DATA2 <d!"i NON ini1i!li11!"i' .. ; ***** cos"!n"i ***** .CONST <Cos"!n"i' .. ; ***** codice ***** .CODE <e"ic#e""! d-ini1io'3 <Codice' .. END <e"ic#e""! d-ini1io' Alc"ne !elle arti !el rogramma *"i ill"strate ossono mancare. .386 in!ica c.e i co!ici o erati-i "tili,,ati nel rogramma a artengono al set !/istr",ioni !ella 93: <03<(. .MODEL FLAT in!ica c.e la memoria + organi,,ata in mo!o %flat% $mo!ello % iatto%&. 6"esta + l/:NI9A organi,,a,ione !ella memoria resente nei 2in!ows !a 2in =< in oi e!# in generale# in ogni S.O. scritto er 93: !ella famiglia
' 7e A3I !ei 2in!ows recenti sono !ette %2in32 A3I%

A> MASM32.s?w

@er. 0.5.0 2005-''-0<

. ' !i <

Ing. Gabriele MONTI

www.ingmonti.it

A<( !al 3<( in oi $ .es. anc.e 7in"?&. Nei S.O. er <0<( $MS-4OS& esiste-ano altre mo!alit0 !i organi,,a,ione !ella memoria# ma NON il mo!ello iatto. 9on il mo!ello iatto si "5 consi!erare !i a-ere a !is osi,ione "no s a,io !i memoria %-irt"ale% !i > Gb1te er OGNI rogramma c.e si crea. Il S.O. si incarica !i far corris on!ere la memoria -irt"ale !i >GB1te c.e il nostro rogramma % ensa% !i a-ere con la memoria fisica effetti-amente resente s"l sistema nel *"ale il nostro rogramma gira. STDCALL in!ica c.e la mo!alit0 !i assaggio !ei arametri alle roce!"re + *"ella stan!ar! !i 2in!ows $stan!ar! call&. 9on *"esta mo!alit0 i arametri -engono messi nello stac) !a !estra a sinistra $come in t"tti i rogrammi 9&# mentre la res onsabilit0 !el bilanciamento !ello stac) + !el rogramma 9CIAMATO $come face-a il 3ascal in 4OS&. 6"esta + "na con-en,ione %a met0% fra la con-en,ione 9 % "ra% e *"ella 3ascal# a!ottata er sfr"ttare a ieno il set !/istr",ioni A<( $istr",ioni DET %n%&. E/ -ali!a solo er 93: A<( e non + tras ortabile a! arc.itett"re c.e non abbiano istr",ioni come la DET %n%# er *"esto non -iene "sata !al 9 % "ro%. INCLUDE ermette !i s ecificare "n file c.e -iene a erto# letto !al com ilatore e com ilato come se fosse effetti-amente scritto nel "nto !o-e# nel nostro sorgente# com are la !iretti-a IN97:4E. Nat"ralmente in "n rogramma ci "5 essere iF !i "na !iretti-a IN97:4E# scritta nel "nto !o-e si -"ole c.e -enga %es anso% il conten"to !el file in!icato. INCLUDELI( in-ece s ecifica "n file c.e contiene "na libreria gi0 com ilata c.e !e-e essere collegata al nostro file# in fase !i lin)age# er oter ottenere il file eseg"ibile. Anc.e le !iretti-e IN97:4E7IB ossono essere iF !/"na nello stesso file. E/T.N !iretti-a c.e !ice al com ilatore c.e il GsimboloH in!icato non + !efinito in *"esto file. Il com ilatore non otr0 tro-are "n in!iri,,o er *"el simbolo# er c"i lo inserir0 nel file .OBI er la s"a %risol",ione% al momento !el lin)ing. Il com ito !el lin)er + infatti il collegamento al nostro rogramma !i altri mo!"li o librerieJ l/in!iri,,o c.e corris on!e al nostro GsimboloH sar0 tro-ato in "no !i *"esti altri mo!"li o librerie. E0U la !iretti-a !i %e*"ate% fa %es an!ere% nel testo !el nostro rogramma la GstringaH al osto !i ogni occorren,a !el GsimboloH $-e!i&. .DATA Il co!ice scritto !o o "na !iretti-a .4ATA contiene "na %se,ione% !i !ati. 3er como!it0 nella gestione !ella memoria# 2in!ows !isting"e fra tre ti i !i %se,ioni% !i memoria# c.e -engono trattate !i-ersamente al momento !ella loro alloca,ione e! "tili,,a,ione. Nella se,ione .4ATA -anno !efiniti i !ati er i *"ali siamo interessati a! a-ere "n -alore ini,iale. I n"meri c.e si !efiniscono in *"esta se,ione -erranno caricati in memoria al momento !el caricamento !el rogramma com ilato. .DATA2 ini,ia la se,ione !i !ati non ini,iali,,ati. 7/assembler alloca soltanto la memoria er i !ati com resi in *"esta se,ione ma fa in mo!o c.e non -i -enga caricato n"lla al momento !el lancio !el rogramma. 3erci5 *"an!o il rogramma arte in *"esta se,ione !i !ati ci saranno n"meri non !efiniti a rioriJ !i solito *"elli lasciati !al rogramma c.e rece!entemente + stato caricato in *"este loca,ioni !i memoria. .CONST se,ione !elle costanti. I !ati !efiniti in *"esta se,ione non otranno mai essere cambiati !"rante il f"n,ionamento !el rogramma .CODE in!ica l/ini,io !ella se,ione !el rogramma c.e contiene i co!ici mnemonici !elle istr",ioni Assembl1# cio+ !ella -era e ro ria arte %!i co!ice%. <e"ic#e""! d-ini1io' in!ica al com ilatore la rima istr",ione !el rogramma. 6"an!o il rogramma artir0 il rogram co"nter -err0 fatto "ntare alla loca,ione c.e corris on!e a *"esta etic.etta. END <e"ic#e""! d-ini1io' EN4 in!ica la fine !i t"tto il rogramma. Il com ilatore trasc"rer0 t"tto ci5 c.e sta !o o EN4. Getic.etta !/ini,ioH in!ica l/etic.etta c.e il com ilatore !e-e consi!erare come il "nto !o-e il rogramma comincia.

Compilazione di un programma MASM32


1.0.1 Assembler

7/Assembler si c.iama %ml.e?e% e! + conten"to in G3ATCmasmHKBIN2. 7/Assembler si c.iama !a finestra 4OS come nel seg"ente esem io; C34MASM354(IN4$l 6c 6co%% 67i 6C 6IC34MASM354INCLUDE &i$o35.!s$

O ,ioni iF im ortanti !i ml; 6co%% in!ica !i "sare il formato coff er il file eseg"ibile $!a "sarsi sem re in 2in!ows&. 6c *"esta o ,ione non fa eseg"ire il lin)ing. Infatti il rogramma ml "5 %lin)are% a"tomaticamente# ma !i solito 0 meglio lanciare il lin)er !irettamente# er controllare con iF recisione le o ,ioni !a "tili,,are. 67i inserisce nel file oggetto le informa,ioni simbolic.e# er l/"so con i !eb"gger simbolici $es. @is"al St"!io& 6I ermette !i in!icare la !irector1 nella *"ale l/assembler cerca a"tomaticamente i file !i incl"!e 6C com ila,ione %case sensiti-e%. 9on *"esta o ,ione si or!ina al com ilatore !i consi!erare !i-ersi i simboli c.e abbiano le stesse lettere# ma con !i-erse combina,ioni !i mai"scole - min"scole. Infatti il com ortamento re!efinito !ell/Assembler non !isting"e fra @ariabile# -ArIaBi7e e @ADIABI7E# mentre se si la-ora con il 9 "5 essere necessario 2 Nota; si s" . 2 !i <
one c.e il file !/installa,ione !i MASM32 sia stato scom attato nel !irector1 G3ATCmasmH. Normalmente il rogramma !i installa,ione !i MASM32 "sa come !irector1 %!i arten,a% 9;KMASM32.

2005-''-0<

A> MASM32.s?w

Ing. Gabriele MONTI 2003 - 2005

MASM32

www.ingmonti.it

consi!erare i tre nomi a ena !efiniti come cose !i-erse. 4o-en!o "tili,,are er il !eb"gging "no str"mento re-isto er il 9 $-e!i oltre& + meglio "tili,,are *"est/o ,ione. 6C8 mantiene il case solo nei simboli esterni $"tile er collegarsi a rogrammi scritti in 9# mantenen!o %case insensiti-e% la sola arte !i rogramma in % "ro Assembl1%&.

1.0.2

Linker

3er collegare gli OBI e generare il rogamma eseg"ibile "seremo il rogramma %lin)%. 7o ill"striamo con "n esem io; C34MASM354(IN4lin* &i$o35.o)9 C34MASM354LI(4*e&nel35.li) 6ENT.:3Ini1io 6SU(S:; STEM3CONSOLE 6DE(U< 6LI(=AT>3C34MASM354LI(4 6"esto coman!o ro!"ce# se t"tto -a bene# il file rimo32.e?e. Si noti c.e *"esto coman!o %mette insieme% nell/"nico eseg"ibile rimo32.e?e i !"e file %oggetto% rimo32.obL e )ernel32.lib# effett"an!o effetti-amente "n %collegamento% fra i !"e file. 7e o ,ioni "sate in *"esto esem io sono s iegate !i seg"ito. 6ENT.:3<E"ic#e""!' fa ini,iare l/esec",ione !el rogramma !alla linea la c"i etic.etta + GEtic.ettaH. Nell/esem io rece!ente l/et"c.etta + %Ini,io% $infatti -iene "sata l/o ,ione MENTDN;Ini,io& . 6SU(S:STEM3 in!ica se il rogramma !e-e f"n,ionare con interfaccia "tente a carattere $9:I o console& o in ambiente grafico a finestre $G:I# 2in!ows&. In caso !i ambiente 9:I si !e-e "sare S:BSNSTEM;9ONSO7EJ altrimenti# nel caso !i ambiente G:I# S:BSNSTEM;2IN4O2S. 6DE(U< fa inserire le informa,ioni !i !eb"g nel rogramma eseg"ibile 6LI(=AT>3 ermette !i in!icare la !irector1 nella *"ale cercare le librerie e erci5 !i sem lificare la loro !ic.iara,ione nella linea !i coman!o e nel co!ice Assembl1. :n/altra o ,ione c.e si otrebbe "sare +; 6DLL in!ica al lin)er !i generare "na 477 $.477& in-ece c.e "n normale file eseg"bile $.EAE& Nat"ralmente# er oter scri-ere "na 477 c.e f"n,ioni# + necessario c.e il rogramma Assembl1 ris etti "na serie !i -incoli i"ttosto com licati# c.e gli ermettono !i essere %-isto% !al Sistema O erati-o come "na 477.

Primo esempio "completo"


Il rimo rogramma c.e com ileremo non fa n"lla !i im ortante# ma ci ermette !i -e!ere con il !eb"gger come -iene allocata la memoria in 2in!ows. 4ato il seg"ente rogramma# conten"to nel file rimo32.ASM; ; *************************************** ; =&o,&!$$! ?$ini$o? MASM35 ; *************************************** .386 .MODEL FLAT, STDCALL ; ***** File di inclusione ***** INCLUDE C34MASM354INCLUDE4*e&nel35.inc .DATA A DD 8@6AB35C# S D( ?0ues"! D un! s"&in,! sc&i""! -!ll! C-?, E .DATA2 ( DD CEE DU= F2G .CONST .CODE Ini1io3 ADD HAI, 5 ADD HAI, 5 ADD HSI, 5 ; !ss! ! E8i"=&ocess il codice dell-usci"! sen1! e&&o&e3 =US> DJO.D =T. E ; c#i!$!"! !l S.O. c#e dic#i!&! l! %ine del &o,&!$$! CALL E8i"=&ocess END Ini1io 7o com iliamo con; A> MASM32.s?w @er. 0.5.0 2005-''-0< . 3 !i <

Ing. Gabriele MONTI C34$!s$354(IN4$l 6c 6co%% 67i &i$o35.ASM

www.ingmonti.it

Si noti c.e non s ecific.iamo la at. !el file !i incl"!e# !ato c.e nel file sorgente la riga; INCLUDE C34MASM354INCLUDE4*e&nel35.inc com ren!e-a gi0 t"tta la at.. In alternati-a a-remmo ot"to scri-ere# nel file sorgente# solo; INCLUDE *e&nel35.inc ma oi com ilare con; C34$!s$354(IN4$l 6c 6co%% 67i 6IC34MASM354INCLUDE &i$o35.ASM

S ecifican!o la !irector1 !ei file !i incl"!e solo al momento !ella com ila,ione. 3er generare l/eseg"ibile !obbiamo oi "sare il lin)er; C34$!s$354(IN4lin* &i$o35.O(K C34MASM354LI(4*e&nel35.li) 6SU(S:STEM3CONSOLE 6 de)u, Si noti c.e nel sorgente non + citata la libreria )ernel32.lib# c.e -iene !ic.iarata# !o o il nome !ell/OBI % rinci ale%# nell/elenco !ei file !a "tili,,are er ro!"rre l/eseg"ibile. 3eraltro si sarebbe otten"to lo stesso effetto !ic.iaran!o INCLUDELI( C34MASM354LI(4*e&nel35.li) nel rogramma sorgente e non citan!o C34MASM354LI(4*e&nel35.li) al momento !el lin)age; C34$!s$354(IN4lin* &i$o35.O(K 6SU(S:STEM3CONSOLE 6de)u, 4ato c.e il rogramma a ena com ilato non fa ness"na -is"ali,,a,ione# er -e!ere cosa s"cce!e !obbiamo "sare "n !eb"gger.

Debugging nell'ambiente del Visual C++ 6


:na -olta generato l/eseg"ibile# non !imentican!o le o ,ioni MOi !ell/Assembler e M!eb"g !el lin)er# si "5 caricare l/eseg"ibile in @is"al 9PP# con la normale se*"en,a !i men"; Qile R O en e na-igan!o nei !irector1 fino a *"ello !o-e c/+ il nostro file eseg"ibileJ oi er oter caricare l/eseg"ibile# con estensione .e?e# + necessario cambiare il %Ti o Qile% !i !efa"lt# er esem io scri-en!o S.e?e nella casella %Nome file% e remen!o %In-io%. :n mo!o alternati-o e iF ra i!o er caricare l/eseg"ibile in @is"al St"!io + ren!erlo# !alla finestra !i 2in!ows E? lorer c.e mostra la cartella !o-e + stato generato# e %b"ttarlo% $!rag T !ro & !entro l/a lica,ione @is"al St"!io# rece!entemente lanciata sen,a a rire ness"n rogramma. :na -olta caricato il file si otr0 far eseg"ire la s"a rima istr",ione remen!o Q'0 o! Q''. Se @is"al 9PP tro-a il file sorgente .ASM nello stesso !irector1 !ell/eseg"ibile# e se l/eseg"ibile + correttamente com ilato# -err0 -is"ali,,ato anc.e il sorgente e# all/"scita !all/ambiente @9PP -err0 c.iesto se si -"ole sal-are il %wor)s ace% generato. Se si ris on!e !i sU# si otr0 in seg"ito caricare eseg"ibile e sorgente %insieme% a ren!o il wor)s ace. In @is"al 9PP otremo fare il !eb"gging come lo faremmo er "n rogramma a! alto li-ello# a-en!o a !is osi,ione anc.e i brea) oint $Q= er metterli e toglierli&. 7/esec",ione !el rogramma si interrom e a"tomaticamente *"an!o gi"nge a! "n brea) oint# ermetten!o al rogrammatore !i esaminare il conten"to !ei registri e !ella memeoria nei "nti critici er l/esec"aione !el rogramma. 7/ambiente + fatto er -erificare rogrammi scritti in 9# er c"i "tili,,an!o l/Assembl1 bisogner0 *"alc.e -olta a!attarsi.

. > !i <

2005-''-0<

A> MASM32.s?w

Ing. Gabriele MONTI 2003 - 2005

MASM32

www.ingmonti.it

Figura 1 4"e finestre im ortanti !ell/ambiente !i s-il" o sono mostrate in Qig"ra '# !o-e si -e!e il rogramma c.e + stato arrestato s" "n brea) oint !o o l/istr",ione ADD HSI, 5 $la freccia gialla in!ica il "nto o-e + gi"nta l/esec",ione# il allino rosso# sotto alla freccia gialla# il fatto c.e s" *"ella linea c/+ im ostato "n brea) oint&. 7a finestra iF in alto + *"ella !el sorgente# c.e in!ica anc.e il "nto !i esec",ione !el rogramma# sotto c/+ la finestra %watc.% c.e mostra i -alori correnti !elle %-ariabili% e !i *"alsiasi altra es ressione c.e si -oglia tenere sotto controllo. Nella finestra watc. sono -isibili; l/in!iri,,o !ella %-ariabile% A $in!icato !a TA# nat"ralmente nella nota,ione c.e in 9 significa %l/in!iri,,o !i A% $% "ntatore% a! A&&J l/in!iri,,o + 00>0>000. e! + in!icato come 0?00>0>000# !ato c.e in 9 0?Gn"meroH significa Gn"meroH ra resentato in %esa!ecimale%& il -alore corrente !ella %-ariabile% A# in !ecimaleJ in rosso erc.+ recentemente + cambiato $sono state eseg"ite le !"e ADD HAI,5&J il -alore al "nto in c"i il rogramma + interrotto + 22V'5(0><5 l/in!iri,,o !ella %-ariabile% B $c.e -ale 00>0>'3>.J B + "n arra1 ieno !i n"meri sconosci"ti& il -alore !el rimo !egli elementi !ell/arra1 B $0& l/in!iri,,o !ella stringa S $+ 00>0>00>.J il rogramma mostra anc.e il -alore corrente !i t"tta la stringa# nel *"ale si -e!e c.e la %6% ini,iale !ella stringa + !i-en"ta %S% er -ia !ella ADD HSI,5& il -alore corrente !i "n/es ressione %*"alsiasi% $A H 22V'5(0><'# c.e !0 '# !ato c.e l/es ressione + -eraJ a-rebbe !ato 0 se fosse stata falsa&.

A> MASM32.s?w

@er. 0.5.0 2005-''-0<

. 5 !i <

Ing. Gabriele MONTI

www.ingmonti.it

Figura 2 In Qig"ra 2 si -e!e in alto la finestra %!isassembler%# nella *"ale + mostrato# interlacciato# il co!ice in ling"aggio macc.ina insieme a *"ello sorgente $*"an!o il sorgente esisteW&. In nero si -e!e il co!ice sorgente# in grigio i co!ici o erati-i e! il !isassemblato corris on!enti. In basso nell/immagine si -e!e la finestra %memor1%# c.e mostra il conten"to !ella memoria. Nella arte sinistra !ella finestra i !ati sono -is"ali,,ati A BNTE# come n"meri esa!ecimali# in or!ine !i in!iri,,o. Anc.e gli in!iri,,i sono mostrati in esa!ecimale. Nella arte a !estra G7I STESSI b1te sono -is"ali,,ati come i caratteri c.e corris on!ono ai ris etti-i co!ici AS9II. In *"esto caso sono mostrate le loca,ioni !i memoria c.e artono !a 00>0>000. $l/ini,io !ella Se,ione !ati ini,iali,,ati# cio+ la -ariabile A&. Si "5 in!i-i!"are il n"mero <V(5>325. $%-ariabile% A&# memori,,ato in mo!o %little en!ian% $25 >3 (5 <V&# oi seg"e s"bito il -alore corrente !ella stringa S $in!iri,,o 00>0>00>.# -alore corrente; 53# V5# (5# V3# V># ('# 20# E< .. eccetera ..# cio+ %S"esta + "na stringa scritta /alla 9/%&. Si "5 notare c.e la -ariabile B# c.e a artiene alla Se,ione !ati non ini,iali,,ati# NON + -icina ai !ati !ella se,ione !ati ini,iali,,ati. Infatti# come si -e!e nella fig"ra ' $-icino a TS&# il s"o in!iri,,o + 00>0>'3>.# e non + allocato s"bito !o o la fine !ella se,ione !ati ini,iali,,ati $in!iri,,o 00>0>02=&. Nella fig"ra s"ccessi-a $Qig"ra 3& si -e!e il conten"to !ella se,ione !ati non ini,iali,,ati# c.e ini,ia !alla -ariabile B e c.e + t"tta a ,ero solo er caso. Infatti# !ato c.e in fase !i caricamento in *"esta area non -iene scritto n"lla# ci otrebbero essere !ei -alori *"alsiasi# rimasti lU !a "n rogramma rece!ente.

. ( !i <

2005-''-0<

A> MASM32.s?w

Ing. Gabriele MONTI 2003 - 2005

MASM32

www.ingmonti.it

Figura 3 Ecco infine# in fig"ra ># "n/immagine c.e mostra# in basso a sinistra# la finestra %call stac)%. Il rogramma sta eseg"en!o "na roce!"ra c.e sta in "na 477 !el Sistema O erati-o $NT477&. 6"esta roce!"ra + stata c.iamata !a "n/altra arte !el S.O. $XEDNE732& e# come si -e!e nella finestra %call stac)% + stato a s"a -olta c.iamato !al rogramma rinci ale 3DIMO32. Nella arte alta si -e!e "na finestra !isassembl1 sen,a sorgente $la roce!"ra c.e sta giran!o fa arte !el Sistema O erati-o 2in!ows e sono !a--ero in oc.i *"elli c.e ossono a-ere "na finestra con il sorgente !i )ernel32.!llW&. In basso a !estra c/+ la finestra %registers%# c.e contiene il -alore corrente !i t"tti i registri !ella 93:. A !ifferen,a !i altri !eb"gger# in @is"al 9PP (.0 i -alori conten"ti nei registri NON si ossono mo!ificare a mano.

Figura 4 Esiste anc.e la finestra %o"t "t% $*"i non -is"ali,,ata&# cio+ "na finestra %4OS%# c.e mostra l/"scita s" console !el rogramma $in *"esto caso non mostra niente# !ato c.e il rogramma rimo32 non .a "scite s" consoleW&.

A> MASM32.s?w

@er. 0.5.0 2005-''-0<

. V !i <

Ing. Gabriele MONTI

www.ingmonti.it

1.0.3
Tasti Q5 S.ift - Q5 Q'0 Q'' 9trl - S Q= 9trl - Q Alt Z < Alt Z 3 Alt Z V Alt Z ( Alt Z 5

Scorciatoie di tastiera (shortcut) di Visual C++ "come debu er" Assembl!


Funzione Eseg"e il rogramma %a t"tta -elocit0%# si ferma solo s" "n brea) oint o! alla termina,ione !el rogramma Termina lYesec",ione !el rogramma. %Ste o-er%; esec",ione asso- asso sen,a entrare nelle roce!"re %Ste into%; esec",ione asso- asso entran!o nelle roce!"re Sal-a il file $Sa-e& InserisceMelimina "n brea) oint s"lla riga att"ale. 9erca "na stringa $Qin!& Qinestra %!isassembl1%; + la finestra rinci ale# *"ella !el co!ice !i macc.ina# c.e "5 contenere anc.e le informa,ioni simbolic.e tratte !al file sorgente Qinestra %watc.%; -is"ali,,a i -alori aggiornati !elle %-ariabili% in memoria Qinestra %call stac)%;-is"ali,,a *"ali sono le roce!"re anni!ate "na !entro l/altra Qinestra %memor1%; -is"ali,,a in esa!ecimale e! in AS9II il conten"to !ella memoria Qinestra %registrers%; -is"ali,,a il -alore corrente !i ogni registro !ella 93:

ngressi e uscite in modalit! a carattere


1.0." 1.0.% #scita sul $ideo &n resso da console

Modalit! "#
1.0.' 1.0.) 1.0., (inestre *ut+ut di strin he &n resso da te-tbo-

MASM32 e C

. < !i <

2005-''-0<

A> MASM32.s?w