Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    4

    Assembly 8086: allocare dati in aree di memoria usando DB

    Salve a tutti..
    Sono nuovo di questo forum e spero di aver scelto il posto giusto per postare questo quesito di carattere didattico sull'assembly 8086.
    La questione è semplice
    Esiste un modo per allocare dati in specifiche aree di memoria direttamente in fase di compilazione (e quindi senza usare delle MOV)?
    Cioè se scrivo un programma .COM (unico segmento) con area codice che inizia all'OFFSET 0100H posso dire al compilatore di allocare un vettore di byte dalla locazione con OFSET 0200H?

    Ripeto la questione non è di carattere pratico (potendo spostare i dati a run time) ma squisitamente di carattere didattico (cioè sto imparando)

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cosa usi per ottenere il codice ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    4
    Attualmente uso EMU8086 ma ho provato anche un po TASM...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Con Emu8086 usi la direttiva

    ORG 200h

    seguita dall'allocazione dello spazio, ad esempio per un vettore di 100 char

    vettore DB 100 DUP(0)

    Con TASM è molto simile ...

    Devi leggere e studiare la documentazione degli strumenti che usi ... c'e' scritto tutto ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    4
    Credo di averlo fatto per un bel po prima di decidermi a postare..
    cmq per essere piu chiari tu pensi che con org il seguente programma dovrebbe funzionare??

    .MODEL SMALL

    org 100h
    start:
    ;inizio programma

    mov ax,@data
    mov ds,ax

    mov si,0400H
    mov di,0500H
    mov cx,05H
    again:
    mov al,[si]
    mov [di],al
    loop again

    ;termina l'esecuzione del programma
    mov ah,4ch
    int 21h

    org 0400H
    DB 01h,02h,03h,04h,05h
    end start

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    4
    ovviamente c'e' un errore nelle prime due istruzioni (ho modificato un vecchio file senza riadattarlo), ma il concetto espresso è quello nelle righe successive...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.