Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    1,965

    [ASSEMBLY] Stampare stringhe e indentarle

    Sono con il TASM.

    Nel mio programma vorrei stampare una stringa ad ogni riga, e ad ogni stampa vorrei che si spostasse a destra di un tab.
    Ho scritto il codice seguente, ma l'allineamento è sbagliato

    codice:
    .MODEL tiny
    
    .STACK
    
    .DATA
    var1 db 5
    var2 db 10
    var3 db 1
    messaggio db "Hello world",13,10, "$"
    tab	 db " ", 9
    
    .CODE
    inizio:
        MOV ax, @data
        MOV ds, ax
            
        MOV bl, var1   
        MOV cl, var3
             
        JMP subito
         	 
        ciclo:
            
            howmanytabs:
    		LEA dx, tab
    		MOV ah, 09H 
    		INT 21H
    		SUB cl, 1
    		CMP cl,0
    		JG howmanytabs
            
            subito:
            	LEA dx, messaggio    
    		MOV ah, 09H           	      ; stampa di stringhe        	
    		INT 21H			 	 ; richiedo il servizio        	
            	ADD bl, 1			 ; incremento il contatore
            	CMP bl, var2			; confronto il contatore con var2
            	JNGE ciclo			 ; salta (cioè cicla) fino a che il contatore è minore di var2
          
        fine:  
    	MOV ah, 4ch
          	INT 21h
    
    END inizio
    Dov'ho sbagliato?

  2. #2
    Prova così :

    codice:
    messaggio db 'Hello world',13,10, '$'
    tab	 db ' ', 9, '$'
    Ho notato che usi il servizio 9 per stampare il tab (che nn ha il termiatore di stringa)

    Cmq il modello che hai usato nn credo vada bene (prova con lo small)

    Perchè non usi un bel loop ?
    Experience is what you get when you don’t get what you want

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.