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: 6326
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: 6326
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: 6326
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: 6326
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