Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500

    [assembler 8086] stampare numeri interi

    Ciao a tutti, da poco all'università ho iniziato un nuovo corso dove studiamo la programmazione in assembler 8086(come assemblatore uso MASM6.11); abbiamo inziato da poco a vedere qualche istruzione e le strutture generali quali registri(ax, bx, dx...ecc) e i tipo di variabili ( dw->word da 2byte e db da 1 byte). A casa provando a fare i primi programmini ho riscontrato un problema: cercavo di stampare dei numeri interi, posto qua un esempio di programma:
    codice:
    .model small
    .stack
    .data
    
    a dw 2
    b dw 3
    res dw ?
    
    .code
    .startup
    
    mov ax, a
    add ax, b
    mov res, ax
    ---mov dl, res----
    mov ah, 2
    int 21h
    
    .exit
    end
    ecco però c'è un problema nella riga scritta in grassetto...perchè gli interi devono essere memorizzati su 2byte, però la funzione int 21h di output, come ci hanno spiegato a lezione, stampa quello che è contenuto nel registro dl...che però è di 1 solo byte!!! quindi...come faccio per stampare res???
    se qualcuno riesce ad aiutarmi...grazie
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi visualizzare cifra per cifra ...

    Se in ax c'e' il valore 1234 devi fare in modo che nel registro DL ci vadano i valori delle singole cifre (con un ciclo). Bada che il valore va visualizzato partendo dall' 1 fino al 4 e che il valore di DL prevede il codice ASCII del carattere da visualizzare ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500
    si ma come faccio a spostare da AX a DL le singole cifre??
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi cercare di pensare ad un algoritmo apposito ...

    Potresti riservare in memoria un buffer di 5 caratteri e procedere per ripetute divisioni per 10 per ottenere le singole cifre. Alla fine potresti passare le singole cifre a DL (con un ciclo) per visualizzarle ... (ricorda sempre, usando la codifica ASCII ...).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.