Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
La procedura mettila alla fine (dopo l'ultima chiamata ad int 21h)
P.S. Non srivere in maiuscolo ...
scusami...scrivevo in maiuscolo non per urlare ma per evidenziare di piu il messaggio dalla parte di programma.... comunque è giusto cosi? e il confronto del flag segno lo faccio dentro alla procedura?
.model small
.stack
.data
; <<inserire qui le dichiarazioni delle variabili>>
vett db 1,2,3,4,5,6,-9,-5,-1,-2
.code
inizio:
mov ax, @data
mov ds, ax
mov di,0
analisi:
call programma
inc di
jmp analisi
mov dx,bp
mov al,00h
mov ah,4ch
int 21h
programma proc near
cmp al,vett[di]
push bp
mov bp,sp
mov bx,[bp+4] ;|indirizzo di partenza
mov cx,bp
mov ax,[bp+6] ;|indirizzo
add al,bl
mov ah,0
mov [bp+8],ax
pop bp
ret
endp
end inizio
()
Newbie
Messaggi: Iscritto:
Postato alle 16:59
Domenica, 23/05/2010
Testo quotato
Postato originariamente da enlallaca: scusami...scrivevo in maiuscolo non per urlare ma per evidenziare di piu il messaggio dalla parte di programma....
Per questo si usa il tasto Code
Testo quotato
comunque è giusto cosi? e il confronto del flag segno lo faccio dentro alla procedura?
No che non è giusto.
La riga
jmp analisi
non farà mai terminare il programma. Lo hai notato?
E cosa farebbe il codice dentro la subroutine? Non c'è il test e non è quello che faceva il codice di prima ... perchè tutta questa confusione?
Postato originariamente da enlallaca: scusami...scrivevo in maiuscolo non per urlare ma per evidenziare di piu il messaggio dalla parte di programma....
Per questo si usa il tasto Code
Testo quotato
comunque è giusto cosi? e il confronto del flag segno lo faccio dentro alla procedura?
No che non è giusto.
La riga
jmp analisi
non farà mai terminare il programma. Lo hai notato?
E cosa farebbe il codice dentro la subroutine? Non c'è il test e non è quello che faceva il codice di prima ... perchè tutta questa confusione?
perchè non capisco come funzione una procedura facendo passare i valori di un vettore... ho il libro sotto mano ma non c'è scritto nulla che mi faccia capire qualcosa
()
Newbie
Messaggi: Iscritto:
Postato alle 17:04
Domenica, 23/05/2010
Non devi far passare nulla dato che il vettore è "globale"
non capisco piu niente...ho il cervello fuso ormai...ma devo farcela perchè domani ho compito su una cosa molto simile...dove sbaglio adesso?
call programma
mov si,0
mov dl,cont
add dl,30h
mov ah,02h
int 21h
mov dx,bp
mov al,00h
mov ah,4ch
int 21h
programma proc near
start:
mov al,vett[si]
inc si
test al,10000000b
jz conta
avanti:
push bp
mov bp,sp
mov bx,[bp+4]
mov cx,bp
mov ax,[bp+6]
add al,bl
mov ah,0
mov [bp+8],ax
pop bp
jmp start
conta:
inc cont
jmp avanti
ret
endp
()
Newbie
Messaggi: Iscritto:
Postato alle 18:52
Domenica, 23/05/2010
Non puoi chiamare prima la proc e poi azzerare si che verrà usato nella proc.
si azzeralo nella proc.
E poi continui ad usare bp quando non hai nessun parametro in ingresso!
Parti da questo
Codice sorgente - presumibilmente Altri Linguaggi
.model small
.stack
.data
vett db 1,2,3,4,5,6,-9,-5,-1,2
.code
inizio:
mov ax, @data
mov ds, ax
call analisi
add dl,30h
mov ah,02h
int 21h
mov al,00h
mov ah,4ch
int 21h
analisi proc near
mov dl,0
mov si,0
nxt:
mov al,vett[si]
inc si
test al,10000000b
jnz noneg
inc dl
noneg:
cmp si,10
jne nxt
ret
endp
end inizio
Ultima modifica effettuata da il 23/05/2010 alle 19:18