«« ( Date ) »» // «« ( Thread ) »» // mips-nastava - 2008

Re: 2 pitanja u vezi asemblera

by Sasa Stojanovic
utorak, 22. januar 2008 - 14:51.

1. To sto ste stavili PROC i ENDP ne znaci da se ret nece izvrsiti odmah posle drugog mov (isti problem koji se u C-u moze javiti u switch kada izostavite break). Probajte ovaj kod.

.model large

.stack 512

.data
Meni1 DB 'Poruka 1$'
Meni2 DB 'Poruka 2$'

.code

Inic PROC
ret
Inic ENDP

start:mov ax,@data
mov ds,ax


call Inic
mov dx,OFFSET Meni1
mov ah,9
int 21h
mov dx,OFFSET Meni2
mov ah,9
int 21h

mov ah,4Ch
int 21h
end start


2. Ne znam da li ste iskopirali cijeli kod, evo kompletiranog primjera koji radi ispravno:

.model large

.stack 512

.data
Meni1 DB 'Ovo ne treba da se vidi$'
Meni2 DB 'Ovo treba da se vidi$'

ut1t dw 12 dup (?)
ut1 dw 0

.code
start:mov ax,@data
mov ds,ax

mov si,1
mov ut1,1
mov ut1t[si],1
mov ax,1
cmp ax,ut1t[si]
jz skoci
mov dx,OFFSET Meni1
mov ah,9
int 21h

skoci:mov dx,OFFSET Meni2
mov ah,9
int 21h

mov ah,4Ch
int 21h

end start

Pozdrav,
Sasa


Ivan Vujic <vujicd@sbb.co.yu> wrote: 1.Zasto se desava da kada neku pozovem proceduru posle ispisa da mi ne ispise sve sto bi trebalo, a ako je stavim ispred onda ne ispise nista:

Primer:
.code
mov ax,@data
mov ds,ax

Inic PROC
ret
Inic ENDP

mov dx,OFFSET Meni1
mov ah,9
int 21h
mov dx,OFFSET Meni2
mov ah,9
int 21h
call Inic
mov ah,4Ch
int 21h
end

Ako ovo call Inic stavim ili ispred ispisa poruka ili na samom pocetku koda meni se ove poruke ne ispisuju uopste, dok kada se stavi gde sada stoji ispisuje recimo prvu poruku dobro, dok drugu ispise do pola.

Radim sa masm16 bitnim koji je poslat na ovu grupu pre par dana.A bio sam i 26-ci i sve su mi narezali za mips i vlsi i tamo nema 16bitnog asemblera, vec samo 32bitnog masm-a.

2.Zasto ne radi uopste sa nizovima kako treba.
Recimo imam sledeci deo koda:

.data
ut1t dw 12 dup (?)
ut1 dw 0

.code
mov si,1
mov ut1,1
mov ut1t[si],1
mov ax,1
cmp ax,ut1t[si]
jz skoci

skoci:...
E pa on nikada ne skace, tj. compare kao da ne radi, probao sam i oduzimanje pa da tako dobijem nulu, ali ni to ne pomaze.Pokusao sam da ut1t[si] stavljam u bx pa da vrsim cmp, ali ni to ne radi.
-----------------------------------------------------------------
unsubscribe:
minimalist@rti.etf.bg.ac.yu?subject=unsubscribe%20mips-nastava
-----------------------------------------------------------------



---------------------------------
Never miss a thing. Make Yahoo your homepage.