Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    [ASM] - Output di stringhe

    codice:
    	mov	ah,9
    	mov	dx,hello
    	int	21h
    
    	mov	ax,4C00h
    	int	21h
    
    hello db 'Ciao!',24h
    Questo codice, stampa sullo schermo questo:
    ←♦K☺←♦V☺←♦←♦☺☺☺ ☻_______________↓♣µ_╩♠¶ ↑ ╩♠____ ♣ ═!╦
    ┤ ║♀ ═!© L═!Ci
    ao!

  2. #2

  3. #3
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    no, db è corretto. Ci vuole

    LEA DX,hello

    al posto di

    MOV DX,hello
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  4. #4
    Utente di HTML.it L'avatar di cso
    Registrato dal
    Aug 2004
    Messaggi
    2,050
    non ho mai sentito LEA in tutta la mia vita ma se lo dici tu

    cmq non guastava quello che ho detto sopra:

    VAR1 DB 0FFh ;DEFINE BYTE 1 BYTE
    VAR2 DW 0FFFFh ;DEFINE WORD 2 BYTE

    two is meglio che one!

  5. #5
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    Originariamente inviato da cso
    non ho mai sentito LEA in tutta la mia vita ma se lo dici tu
    E' la stessa cosa anziché scrivere OFFSET

    con la 09h della int 21h ricordo che in DX ci va l'indirizzo o no
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  6. #6
    Utente di HTML.it L'avatar di cso
    Registrato dal
    Aug 2004
    Messaggi
    2,050
    Non ricordo...bisogna provare!!!!

    FinalFantasy...benvenuto nel mondo dell'ASSEMBLY x86

    Ti posto una robetta che ti fa scrivere quello che vuoi tu dove vuoi tu...
    codice:
    	 DOSSEG
    	.MODEL TINY
    	.DATA
    	ORG 0100h
    	
    Main:
    
    	   CALL Delay
    
    Posiziona: MOV AH,02
    	   MOV BH,00
    	   MOV DH,10
    	   MOV DL,35
    	   
    Stampa:    MOV AH,0Eh
    	   MOV AL,'C'
    	   INT 10h
    
    Fine:      MOV AH,4Ch
               INT 21h
               
    ;========ROUTINE========
    
    Delay:     MOV CX,000FFh
    Ciclo1:    PUSH CX
               MOV CX,0FFFFh
    Ciclo2:    LOOP Ciclo2
               POP CX
               LOOP Ciclo1
    	   RET
    
    END Main
    Naturalmente questo codice scrive solo una misera C
    Ti si aprirà la mente con questo linguaggio...e non vedrai l'ora di aprire il TurboPascal!!!!!

  7. #7
    scusate esiste una funzione per stampare stringhe di un certo colore (come la cprintf del C)??

    io me ne sono fatta una usando la 9h dell'int 10h...

    codice:
    cprintf proc  dx = offset stringa, ch = backcolor, cl = color
    
    mov si, dx
    
    mov al, ch
    mov bl, 16
    mul bl
    add al, cl
    xor ah, ah
    mov bx, ax
    mov cx, 1        ;setta colore, dato che i primi 4 bit di bl sono il colore e gli altri 4 lo sfondo
    
    giro:
    
    mov cx, 1
    mov al, [si]
    mov ah, 9h
    int 10h             ;stampa il car
    
    push bx
    
    mov ah, 3h
    xor bh, bh
    int 10h
    
    inc dl
    mov ah, 2h
    xor bh, bh
    int 10h            ;fa avanzare il cursore
    
    pop bx
    
    inc si
    mov al, [si]
    cmp al, 24h        ;continua finchè non trova un cash ($)
    jnz giro
    
    ret
    
    endp cprintf
    www.vape04.too.it - informatica, elettronica e tante altre cose.
    @LFEO§OFT GREEnOS

  8. #8
    Originariamente inviato da cso
    Non ricordo...bisogna provare!!!!

    FinalFantasy...benvenuto nel mondo dell'ASSEMBLY x86

    Ti posto una robetta che ti fa scrivere quello che vuoi tu dove vuoi tu...
    codice:
    	 DOSSEG
    	.MODEL TINY
    	.DATA
    	ORG 0100h
    	
    Main:
    
    	   CALL Delay
    
    Posiziona: MOV AH,02
    	   MOV BH,00
    	   MOV DH,10
    	   MOV DL,35
    	   
    Stampa:    MOV AH,0Eh
    	   MOV AL,'C'
    	   INT 10h
    
    Fine:      MOV AH,4Ch
               INT 21h
               
    ;========ROUTINE========
    
    Delay:     MOV CX,000FFh
    Ciclo1:    PUSH CX
               MOV CX,0FFFFh
    Ciclo2:    LOOP Ciclo2
               POP CX
               LOOP Ciclo1
    	   RET
    
    END Main
    Naturalmente questo codice scrive solo una misera C
    Ti si aprirà la mente con questo linguaggio...e non vedrai l'ora di aprire il TurboPascal!!!!!
    alcune domande:
    1. Perchè hai messo una pausa prima di scrivere?
    2. perchè usi l'int 10h quando si può usare la 2h dell'int 21h?
    3. perchè hai posizionato il cursore in 10,35??
    ...
    www.vape04.too.it - informatica, elettronica e tante altre cose.
    @LFEO§OFT GREEnOS

  9. #9
    Utente di HTML.it L'avatar di Mods
    Registrato dal
    Jun 2004
    Messaggi
    302
    Originariamente inviato da i'mshady
    scusate esiste una funzione per stampare stringhe di un certo colore (come la cprintf del C)??

    io me ne sono fatta una usando la 9h dell'int 10h...
    ti sei risposto da solo
    Ci sono 10 tipi di persone al mondo: quelli che conoscono il codice binario, e quelli che non lo conoscono!

  10. #10
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Grazie per le vostre attenzioni...volevo sapere alcune cose: che compilatore usate? E dove lo posso prendere? Io uso fasm e alcune votle un emulatore 8086, ma sembrano 2 scemenze, anche se il promo è più serio. L'8086 aveva 256 interruzioni, dove trovo la lista completa?

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.