Assembler

poruka: 9
|
čitano: 6.695
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
Assembler

Pozz, može li mi itko objasniti ovaj kod, imam predmet na faksu arh. rac. pa radimo u assembleru pa mi neke stvari nisu jasne ako ima nekakva literatura na int. na nasem ili stranom jeziku moze preporuka :)

 

Zanima me jesam li ja to dobro shvatio, pročitajte po komentarima u kodu, nisam siguran jesu li mi ove kompliciranije stvari točne :/

EDIT: OVo je za arhitekturu x86

.MODEL small
.STACK
.CODE
Start:
  MOV cx, 10   ; stavi vrijednost 10 u registar cx
  for_p:       ; šta mi ovo točno znači znam da je petlja, je li se ona tako definira ili?
    CMP cx, 10 ; usporedi vrijednost koja se nalazi u registru i vrijednost 10
    JGE end_for_p ; je li ovo znači da se izvrsi skok ako je vrijednost u cx jednaka 10 pa da ide na kraj petlje?
    
    MOV dl, '3'   ; ovo znaci da se znak 3 upisuje u dl-data low
    MOV ah, 02h   ; izbaci na zaslon ono sto se nalazi u dl
    INT 21h
   
    INC cx        ; ?
    JMP for_p     ; ?
  end_for_p:      ; ?
  
  MOV ax, 4C00h
  INT 21h
END Start

Poruka je uređivana zadnji put ned 4.11.2012 11:36 (Broken).
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Assembler
Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
14 godina
neaktivan
offline
Assembler

.MODEL small

.STACK

.CODE

Start:

   MOV cx, 1

   for_p:

      CMP cx, 10

      JGE end_for_p

      MOV dl, '3'

      MOV ah, 02h

      INT 21h

      MOV dl,10

      MOV ah,02h

      INT 21h

      MOV dl,13

      MOV ah,02h

      INT 21h  

      INC cx

      JMP for_p

     end_for_p:

  MOV ax, 4C00h

  INT 21h

END Start

 
0 0 hvala 0
14 godina
neaktivan
offline
Assembler

Prosli kod mi nije bio radio pa sam prepravio tj, dodao sam da mi prebaci u drugi red kod ispisa i poravna ispis, zanima me je li u kojem broju bug-a bilo riječi o asembleru ili o arhitekturi računala ili bilo čemu vezano za ovo?

 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Assembler
Broken kaže...

zanima me je li u kojem broju bug-a bilo riječi o asembleru ili o arhitekturi računala ili bilo čemu vezano za ovo?

Čisto sumnjam, ovo ti je stvarno opskurna tema, čak i kad po netu tražiš. Imaš puno razlika: dos-linux-windows, 16 bit-32 bit, AT&T sintaksa-Intel sintaksa, pa onda specifičnosti različitih asemblera, sve to dovodi do situacije da je jako teško pronaći nekakve materijale s kojima možeš odmah početi eksperimentirati bez problema i prilagodbi.

 

Doista najtemeljitija dokumentacija koju za x86 assembly možeš naći su Intelovi manuali, ali to nije baš lako štivo.

 

Evo nešto sam ti iskopao, možda pomogne:

http://www.etfos.unios.hr/~jbognar/pozadine/temp/asembly%20tutorial/x86asm/asml1001.html

http://www.skynet.ie/~darkstar/assembler/

http://www.c-jump.com/CIS77/ASM/Assembly/lecture.html

http://cs.smith.edu/~thiebaut/ArtOfAssembly/artofasm.html

http://www.jegerlehner.ch/intel/IntelCodeTable.pdf

 

EDIT: skoro sam zaboravio, koliko vidim igrate se u 16 bitnom DOS-u, Ralf Brownova lista interrupta će ti jako dobro doći:

http://www.ctyme.com/rbrown.htm

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
Poruka je uređivana zadnji put pon 5.11.2012 21:30 (rustweaver).
13 godina
neaktivan
offline
Assembler

Kako da u petlji unutar petlje oduzimam si i di tj countere i usporedivan ih

 

 

tipa 

cmp (di-si),5

 

pokusa sam ovo al masm izbaci da sub nije definiran

 

cmp (sub di,si),5

 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Assembler

Strojne naredbe nemaju tako visok nivo apstrakcije. Morat ćeš to odraditi u najmanje dva koraka 1. oduzmi dva registra, 2. usporedi rezultat s brojem 5.

13 godina
neaktivan
offline
Re: Assembler
Da al di da oduzmem ta dva countera i comperam ih kad mi je to counter koji je unutar petlje
 
0 0 hvala 0
13 godina
neaktivan
offline
Re: Assembler

Tamo gdje si probao staviti

 

cmp (di-si),5

 

stavi

 

sub di, si
cmp di, 5

 

Ovo će uništiti prethodni sadržaj registra di. Ako to nije poželjno pushaj ga na stack ili za računanje razlike koristi neki drugi registar.

 

 

 

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice