Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MIPS asm kod i bolje razumijevanje "sira slika"

[es] :: Asembler :: MIPS asm kod i bolje razumijevanje "sira slika"

[ Pregleda: 857 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vidonk
Slobodan Vidovic
Niksic

Član broj: 192156
Poruke: 354
*.1.mtel.me.



+9 Profil

icon MIPS asm kod i bolje razumijevanje "sira slika"20.03.2020. u 20:46 - pre 48 meseci
Pozdrav forumasi,
imam jedan MIPS assembly kod koji bih volio da bolje razumijem, da vidim "siru sliku", na zalost MARS i SPIM ne podrzavaju "hi" i "lo" registre pa ga ne mogu pokrenuti u emulatoru i izvrsiti lorak po korak, mozda mi neko moze pomoci i oko toga. Evo ga kod i u komentarima sam naveo onoliko koliko znam

Code:

    .file    1 "arry.c"
    .section .mdebug.abi32
    .previous
    .gnu_attribute 4, 3
    .abicalls
    .option    pic0

    .comm    niz,48,4
    .globl    broj
    .section    .bss,"aw",@nobits
    .align    2
    .type    broj, @object
    .size    broj, 4
broj:
    .space    4
    .text
    .align    2
    .globl    main
    .set    nomips16
    .ent    main
    .type    main, @function
main:
    .frame    $fp,8,$31        # vars= 0, regs= 1/0, args= 0, gp= 0
    .mask    0x40000000,-4
    .fmask    0x00000000,0
    .set    noreorder
    .set    nomacro
    addiu    $sp,$sp,-8    ;add 8 byts (2words) to current sp and store it in to sp    
    sw    $fp,4($sp)    ;save old fp
    move    $fp,$sp          ;move sp to fp
    lui    $2,%hi(niz)     ;Load upper immediate first "num" of A byts 
    addiu    $2,$2,%lo(niz)  ;Add immediate unsigned lower half of A
    lw    $3,32($2)     ;loadword lw $3, offset($s) 
    lui    $2,%hi(broj)     ;Load upper immediate to register hi to upper 32 bits stored in special register hi
    lw    $2,%lo(broj)($2) ;Load word register hi to Lower 32 bits stored in special register lo
    nop
    addu    $3,$3,$2      ;add $2+$3 and store it in to $3
    lui    $2,%hi(niz)     ;Load upper immediate first "num" of A byts 
    addiu    $2,$2,%lo(niz)  ;Add immediate unsigned lower half of A
    sw    $3,48($2)     ;store word
    move    $2,$0         ;set $2 to be 0
    move    $sp,$fp       ;move frame ppinter to stack pointer, "exit rutine resore stack"
    lw    $fp,4($sp)    ;loart word stack pointer + 4 to fp "exit rutine resore stack"
    addiu    $sp,$sp,8     ;add imidiate unisign stack pointer + 8 "exit rutine resore stack"
    j    $31           ;return
    nop

    .set    macro
    .set    reorder
    .end    main
    .size    main, .-main
    .ident    "GCC: (Realtek RSDK-4.6.4 Build 424) 4.6.4"


na pr: nije mi jasno zasto se na pocetku programa "zauzima" 8 bajta ?




[Ovu poruku je menjao vidonk dana 20.03.2020. u 22:50 GMT+1]
Signaure Hamer Dev .inc
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
p2-115.p59.bvcom.net.



+1064 Profil

icon Re: MIPS asm kod i bolje razumijevanje "sira slika"04.10.2020. u 08:59 - pre 42 meseci
Tako ide prolog, snimis frame pointer, i eventualno zauzmes stek za lokalne varijable, pa setujes frame pointer da pokazuje na trenutni stek.
 
Odgovor na temu

[es] :: Asembler :: MIPS asm kod i bolje razumijevanje "sira slika"

[ Pregleda: 857 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.