23/05/10 14:48
enlallaca
Postato originariamente da nessuno:
Questa riga
mov al,vett
non serve.
La procedura mettila alla fine (dopo l'ultima chiamata ad int 21h)
P.S. Non srivere in maiuscolo ...
Questa riga
mov al,vett
non serve.
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
aaa
23/05/10 14:59
Postato originariamente da enlallaca:
scusami...scrivevo in maiuscolo non per urlare ma per evidenziare di piu il messaggio dalla parte di programma....
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
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?
23/05/10 15:02
enlallaca
Postato originariamente da nessuno:
Per questo si usa il tasto Code
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....
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
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
aaa
23/05/10 15:12
enlallaca
Postato originariamente da nessuno:
Non devi far passare nulla dato che il vettore è "globale"
Non devi far passare nulla dato che il vettore è "globale"
E per analizzare elemento per elemento? come faccio? metto vett[si] incrementando di volta in volta si tutto dentro alla procedura?
aaa
23/05/10 15:29
enlallaca
Postato originariamente da nessuno:
Sì
Sì
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
aaa