Oppure

Loading
23/05/10 13:41
Mostra il codice ...
23/05/10 13:57
enlallaca
Postato originariamente da nessuno:

Mostra il codice ...

.model small
.stack
.data

    vett db 1,3,-2
    c db 0

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

    
    mov al,vett
    
    mov si,0
    
prova:    
    mov al,vett[si]
    inc si
    test al, 10000000b
    jz conta
    inc si
    cmp si,3
    je avanti
    jmp prova
    
conta:
    inc c
    inc si
    jmp prova
    
avanti:    
    mov dl,c
    add dl,30h
    mov ah,02h
    int 21h

    
    mov al,00h                
    mov ah,4ch
    int 21h
    
end inizio
aaa
23/05/10 14:07
Ok ... ma cosa dovrebbe fare questo codice e cosa fa, invece?
23/05/10 14:11
enlallaca
Postato originariamente da nessuno:

Ok ... ma cosa dovrebbe fare questo codice e cosa fa, invece?


dovrebbe contare quanti numeri positivi ci sono invece nn fa nulla, entra in ciclo infinito
aaa
23/05/10 14:20
Se è positivo, lo conti, ma non controlli la fine del ciclo. E aumenti si due volte.
23/05/10 14:23
enlallaca
Postato originariamente da nessuno:

Se è positivo, lo conti, ma non controlli la fine del ciclo. E aumenti si due volte.

GUARDA QUESTA PARTE DI PROGRAMMA....SEMPRE LO STESSO PROGRAMMA PERO LO DEVO FARE TRAMITE UNA PROCEDURA... PERCHè GIA QUESTA PARTE NN FUNZIONA? E DOVE DEVO METTERE IL CONTROLLO SE è NEGATIVO?
.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
    mov al,vett

analisi:
    call programma
    inc di
    
    
    programma proc near
        cmp al,vett[di]
        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
    
    ret
    endp
    jmp analisi
    
    mov dx,bp
    
    
;    mov dl,bp
    add dl,30h
    mov ah,02h
    int 21h
    
    mov al,00h                
    mov ah,4ch
    int 21h
    
end inizio
aaa
23/05/10 14:27
Non puoi mischiare il programma e la routine ...

Ma perchè cambiamo discorso ... prima risolvi il problema senza la procedura.
23/05/10 14:34
enlallaca
Postato originariamente da nessuno:

Non puoi mischiare il programma e la routine ...

Ma perchè cambiamo discorso ... prima risolvi il problema senza la procedura.

HO RISOLTO QUELLO SENZA PROCEDURE
.model small
.stack
.data
    vett db 1,3,-2
    c db 0

.code

inizio:
    mov ax, @data ; imposto il segmento dati
    mov ds, ax

    mov al,vett
    
    mov si,0
    
prova:    
    mov al,vett[si]
    inc si
    test al, 10000000b
    jz conta
sottoprova:    
    cmp si,3
    je avanti
    jmp prova
    
conta:
    inc c
    jmp sottoprova
    
avanti:    
    mov dl,c
    add dl,30h
    mov ah,02h
    int 21h

    
    mov al,00h                
    mov ah,4ch
    int 21h
    
end inizio
aaa