Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - assembler 8086 - lavoro su 1 byte alla volta
Forum - Altri Linguaggi - assembler 8086 - lavoro su 1 byte alla volta - Pagina 2

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
enlallaca (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/03/2010

Segnala al moderatore
Postato alle 15:57
Domenica, 23/05/2010
Testo quotato

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

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6388
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:07
Domenica, 23/05/2010
Ok ... ma cosa dovrebbe fare questo codice e cosa fa, invece?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
enlallaca (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/03/2010

Segnala al moderatore
Postato alle 16:11
Domenica, 23/05/2010
Testo quotato

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

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6388
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:20
Domenica, 23/05/2010
Se è positivo, lo conti, ma non controlli la fine del ciclo. E aumenti si due volte.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
enlallaca (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/03/2010

Segnala al moderatore
Postato alle 16:23
Domenica, 23/05/2010
Testo quotato

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

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6388
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:27
Domenica, 23/05/2010
Non puoi mischiare il programma e la routine ...

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


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
enlallaca (Normal User)
Newbie


Messaggi: 19
Iscritto: 13/03/2010

Segnala al moderatore
Postato alle 16:34
Domenica, 23/05/2010
Testo quotato

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

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6388
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 16:41
Domenica, 23/05/2010
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 ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo