Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [ASSEMBLY] Cursore

  1. #1

    [Assembly] Cursore

    Sono ritornato alle basi, leggendo la guida di giobe2000 (mmm... dopo centinaia di pagine teoriche mi aspettavo qualche cosa sulle macro o sulle istruzioni base, ma nn le ho trovate Ecco cosa ho scritto:
    codice:
    .model small
    .code
    
    org 100h
    
    inizio:
    
    MOV DH, 00h
    MOV DL, 00h
    MOV AH, 02H
    INT 10H
    
    
    MOV AH, 03h
    MOV BH, 00h
    INT 10h
    
    MOV AH, 02h
    INT 21h
    MOV AH, 02h
    MOV DL, DH
    INT 21h
    
    int 20h
    END inizio
    Che praticamente non fa niente di quello che dovrebbe fare:

    1) spostare il cursore in alto a sinistra
    2) Scrivere a video la posizione attuale del mouse

    Mi aiutate?
    PaTeR
    From Ban to Life

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Il cursore lo sposta regolarmente ... (ovviamente tu lo provi in finestra dos con il debug ...).

    I valori non li scrive perche' le righe

    MOV AH, 03h
    MOV BH, 00h
    INT 10h

    ottengono riga e colonna nei registri DH,DL in "binario" mentre il codice che serve per visualizzarli

    MOV AH, 02h
    INT 21h

    si aspetta che il carattere sia espresso in ASCII in DL.

    Quindi, dovresti convertire il nibble alto di DH restituito dalla INT 10 in ASCII e passarlo alla INT 21, fare lo stesso per il nibble basso di DL e fare la stessa operazione per i due nibble che costituivano DL ...

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Che guida stai usando per l'assembly? Dove la posso trovare?

  4. #4
    Originariamente inviato da XWolverineX
    Che guida stai usando per l'assembly? Dove la posso trovare?
    www.giobe2000.it

    Se trovi qualcosa di + pratico sulle macro, su procedure o altro fammelo saxe... cmq questa guida è mooolto buona, esamina tutti gli aspetti dell'assembly, anche se non ho trovato le cose sopra descritte
    PaTeR
    From Ban to Life

  5. #5
    Originariamente inviato da oregon
    Il cursore lo sposta regolarmente ... (ovviamente tu lo provi in finestra dos con il debug ...).

    I valori non li scrive perche' le righe

    MOV AH, 03h
    MOV BH, 00h
    INT 10h

    ottengono riga e colonna nei registri DH,DL in "binario" mentre il codice che serve per visualizzarli

    MOV AH, 02h
    INT 21h

    si aspetta che il carattere sia espresso in ASCII in DL.

    Quindi, dovresti convertire il nibble alto di DH restituito dalla INT 10 in ASCII e passarlo alla INT 21, fare lo stesso per il nibble basso di DL e fare la stessa operazione per i due nibble che costituivano DL ...
    Quindi in windows non lo posso muovere il cursore?

    E poi come dovrei fare x convertire i nibble? Allora... un nibble è 4 bit, e visto che DH e DL sono a 8 bit come posso fare? E poi non so neanche come convertire

    Grazie
    PaTeR
    From Ban to Life

  6. #6
    Per convertire in ascii ho provato questo ( trovato su internet ) ma ovviamente non funzia...
    codice:
    .MODEL small
    .STACK 100h
    
    	; stampo
    	stampa MACRO binary
    		MOV AL, binary
    	
    		MOV AH, AL
    		AND AL, 00Fh
    		ADD AL, 009h
    		DAA
    		ADC AL, 040h
    		DAA
    		XCHG AH, AL
    		SHR AL, 1
    		SHR AL, 1
    		SHR AL, 1
    		SHR AL, 1
    		ADD AL, 090h
    		DAA
    		ADC AL, 040h
    		DAA
    		XCHG AH, AL
    		
    		MOV AH, 09h
    		INT 21h
    	ENDM
    .CODE
    
    	main proc
    
    		; Setto la posizione del cursore
    		;MOV DH, 00h
    		;MOV DL, 00h
    		;MOV AH, 02H
    		;INT 10H
    	
    		; Ricavo le info sulla posizione del cursore
    		MOV AH, 03h
    		MOV BH, 00h
    		INT 10h
    		
    		; Le stampo a video
    		stampa DL
    		stampa DH
    		
    		; Ritorno a DOS
    		MOV AH, 4Ch
    		INT 21h
    		
    	main  endp
    	end   main
    naturalmente c'entra quella cosa sui nibble... che ancora non ho capito
    PaTeR
    From Ban to Life

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.