Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 6.605 pregleda

Najnovija ↓

Asembler MOMCI POMAGAJTE 16.03.2009. u 13:21 · pre 214 meseci
izmenjeno 2 puta, poslednji put Kukilo 16.03.2009. u 15:49
  1. Kukilo16.03.2009. u 15:49zapis iz teksta poruke
  2. Kukilo16.03.2009. u 14:55zapis iz teksta poruke
#1
E momci moze mala pomoc oko mnozenja i deljenja u asembleru, nesto ne toliko komplikovano jer sam pocetnik.
Mi smo radili mnozenje preko sabiranja a deljenje preko oduzimanja ali mi bas nesto nije jasno. Hvala.
Potpis
Kux
Re: Asembler momci pomagajte 16.03.2009. u 18:16 · pre 214 meseci #2
Reci Zoki sta te muci? Bolje uzmi i citaj praktikum :P
Inace imas u temi ispod tvoje neke radove od prosle godine pa pogledaj to


Nemanja :)
Re: Asembler MOMCI POMAGAJTE 16.03.2009. u 23:32 · pre 214 meseci #3
Kazete da ste radili mnozenje i deljenje preko sabiranja i oduzimanja. To je bar najlakse za objasnjavanje.

Setite se kako ste nekada igrali zmurke. Brojali ste do 100 po 5. Znaci 5, 10, 15...
To je jedan (prilicno los) nacin mnozenja brojeva. Kazem los zato sto je spor, a ne sto daje netacne rezultate.

Da bi se tako realizovalo mnozenje A i B brojeva (A * B = C) potrebno je inicijalizovati C na nultu vrednost, a zatim sabitari A svih B puta. To je sve.
Na primer, ako je A==5 i B == 3 onda bi algoritam programa bio ovakav:
Code:

C == 0
C = C+5
C = C+5
C = C+5

Sabiranje tacno 3 puta moze se lako realizovati dekrementacijom broja B i testiranjem da li je dosao do 0.

Deljenje je isto to, samo sa obrnutim postupkom. Broj A oduzimao bi se B puta.
Re: Asembler momci pomagajte 17.03.2009. u 10:32 · pre 214 meseci #4
hehehe ovaj deo foruma uvek zazivi cim e2 dobije arhitekturu racunara :)

pogledajte stare teme , i prosle godine je bilo slicnih pitanja

pogledajte one kodove koje sam ostavio u drugom postu

mnozenje
Code:


.section .data
.section .text

.globl main

main:

movl $3, %eax
movl $5, %ebx
xorl %edx, %edx
cmpl %eax, %ebx
ja mnozi
xchgl %eax, %ebx
mnozi:
addl %ebx, %edx
decl %eax
cmpl $0, %eax
jnz mnozi

kraj: nop




ili u duploj preciznosti
Code:

.section .data

a: .long 0,4
b: .long 0,4
r: .quad 0

.section .text

.globl main

main:

mnozi:
    movl b+4, %ebx
    cmpl $0, %ebx
    jz smanji
    jmp *0x1
    decl %ebx
    movl %ebx, b+4
    movl a+4, %eax
    movl r+4, %ebx
    addl %eax, %ebx
    movl %ebx, r+4
    movl a, %eax
    movl r, %ebx
    adc %eax, %ebx
    jc greska
    movl %ebx, r
    jmp mnozi
    
smanji: 
    movl b, %ebx
    cmpl $0, %ebx
    jz kraj
    decl %ebx
    movl %ebx, b
    jmp mnozi
    

kraj:
    movl r+4, %eax
    movl r, %ebx
    nop
    
greska:
     jmp greska



kao sto vec rekoh , nemojte ovo da smatrate kao non plus ultra , mozda , i verovatno, ima neka greska
a i potrudite se da razumete kako ovo radi , nemojte napamet da ucite

ajd pozdrav
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme