Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [assembly] procedure

  1. #1

    [assembly] procedure

    ho bisogno di qualche aiuto...

    devo fare delle procedure che:
    1. una procedura che legge un numero word (che poi sarebbe la dimensione di un vettore)
    2.una che legge un vettore di caratteri (max 100)
    3.una che cerca un carattere nel vettore del punto 2
    4. una che ordina il vettore del punto 2 in ordine alfabetico crescente
    5.una che conta nel vettore del punto 2 le occorrenze del primo elemento

    cioè, devo fare un programma che faccia tutto questo, però con le procedure ^^

    garzie mille a chi mi aiuterà

  2. #2
    Come possiamo aiutarti?
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3
    allora...
    sono riuscito a tirar giu qualcosa......

    .model small
    .stack
    .data
    NUM dw 0
    M1 dw 10
    M3 dw 1
    VET dw 0


    .code
    INIZIO:
    ;riempie DS
    mov ax,@data
    mov ds,ax
    ;lettura del numero
    PUSH M3
    PUSH M1
    PUSH NUM
    CALL LETNUM
    POP NUM
    POP M1
    POP M3
    ;lettura del vettore di caratteri

    PUSH VET
    PUSH NUM
    CALL LETVETCAR
    POP NUM
    POP VET


    ;fine programma
    mov ah,4ch
    int 21h
    ;procedura per la lettura di un numero word
    ;parametri pnum per riferimento
    ; pm1 per valore
    ; pm2 per valore

    LETNUM PROC
    ;acquisisce parametri
    PUSH BP
    MOV BP,SP
    PM1 EQU [BP+4]
    PM3 EQU [BP+6]
    PNUM EQU [BP+8]
    ;lettura del numero
    MOV CL,0
    CICLO:
    MOV AH,01H
    INT 21H
    CMP AL,0DH
    JE FINECICLO
    SUB AL,030H
    MOV AH,0H
    PUSH AX
    INC CL
    JMP CICLO
    FINECICLO:
    POP AX
    MOV DX,PM3
    MUL DX
    ADD PNUM,AX
    MOV DX,0
    MOV DX,PM1
    DEC CL
    CMP CL,0
    JNE FINECICLO
    POP BP
    RET
    LETNUM ENDP
    ;procedura per la lettura di un vettore di caratteri
    ;parametri pvet per riferimento
    LETVETCAR PROC
    PUSH BP
    MOV BP,SP
    PVET EQU [BP+4]
    ;lettura del vettore
    MOV SI,0
    MOV CX,0
    CICLO2:
    MOV AH,01H
    INT 21H
    MOV PVET[SI],AL
    INC SI
    INC CX
    CMP CX,NUM
    JNE CICLO2
    POP BP
    RET
    LETVETCAR ENDP

    end inizio


    questo programma "dovrebbe" farmi leggere il vettore VET di dimensione NUM....
    ovvero, all'avvio dell'exe, dovrebbe farmi fare questo :
    5 (dove 5 è il NUM, quindi la dimensione del vettore) INVIO
    12345 (vettore di 5 caratteri) acapo
    c:\tasm>_

    solo che, dopo aver inserito NUM, non solo non mi manda a capo, ma mi fa digitare un vettore all'infinito...

    qualcuno sa risolvermi il problema?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.