Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-06-2004, 15:46   #1
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
[Assembly-DOS] Pulire lo schermo e scrivere una frase

Ciao,

Ho un problema con un programma in Assembly-DOS che ho scritto di prova .

In pratica quello che deve fare sto programma cazzutissimo si può riassumere in 3 parti :

1) Pulisce lo schermo completamente

2) Sposta il cursore di scrittura a metà schermo

3) Scrive un altrettanto cazzutissima frase

Il codice sorgente per NASM è qua :

Codice:
; Source Name: PROVA.ASM
; Executable Name: PROVA.COM

[BITS 16]  ; Set 16 bit code generation
[ORG 0100H] ; Set the start of the code at address 0100H [COM FILE]

[SECTION .text]  ; Opening SECTION .text

START:  ; START Label
  call Cleaning
  mov dl, 25 ; Positioning cursor on 39 = X Coordinate
  mov dh, 11 ; Positioning cursor on 11 = Y Coordinate
  call Positioning ; Calling "Positioning" procedure
  mov dx, message ; Loading in DX the address of "message"
  call Write ; Calling the "Write" procedure
  call Closing ; Calling the "Closing" procedure

Write:
  mov ah, 9 ; Loading DOS service code into AH [9 = Print on the screen]
  int 21H ; Software Interrupt [Calling DOS Dispatcher]
  ret ; Returning from Procedure

Cleaning:
  mov cl, 0 ; Upper-left corner X Coordinate
  mov ch, 0 ; Upper-left corner Y Coordinate
  mov dl, 79 ; Bottom-right corner X Coordinate
  mov dh, 24 ; Bottom-right corner Y Coordinate
  mov al, 0 ; Scrolling 0 lines [Clean the screen]
  mov ah, 6 ; Put BIOS call code 6 in AH
  int 10H ; Calling VIDEO BIOS Service
  ret ; Returning from Procedure
Positioning:
  mov ah, 2 ; Loading VIDEO BIOS Service code into AH [2 = Cursor Positioning]
  mov bh, 0 ; Stay in display page 0
  int 10H ; Calling VIDEO BIOS Service
  ret ; Returning from Procedure
Closing:
  mov ax, 04C00H ; Loading DOS Service code in AX Register [04C00 = exit from execution]
  int 21H ; Calling DOS Service
  ret ; Returning from Procedure
[SECTION .data]

message db "Frase sostituita :)" , 13, 10, "$"
Scusate per i commenti in inglese, ma li ho messi in inglese perchè fanno figo

Comunque il problema è questo :

In pratica lo schermo si pulisce dopo aver eseguito la procedura "Cleaning" che pulisce lo schermo usando la chiamata al Video BIOS "6" , lo schermo diventa completamente nero .

Successivamente fa l'azione di spostare il cursore a centro schermo e di scrivere la frase , solo che.... la frase non si vede!!
Lo schermo rimane totalmente nero e non da segni di vita , neanche il prompt del DOS dopo che ha finito di eseguire il programma .

Posso scrivere quello che voglio , ma lo schermo rimane nero (però in sistema è attivo , infatti se ad esempio do il comando "DIR" non si vede nulla a schermo ma l'HD lavora ) e l'unico modo per recuperarlo è usare il comando "CLS" .

Perchè fa sta cosa???

Come faccio a pulire lo schermo senza che me lo blocchi??

Grazie a tutti

Ciao
__________________
GPU Compiler Engineer

Ultima modifica di AnonimoVeneziano : 25-06-2004 alle 15:50.
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 16:13   #2
mmx[ngg]
Senior Member
 
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
Codice:
Cleaning:
  mov cl, 0 ; Upper-left corner X Coordinate
  mov ch, 0 ; Upper-left corner Y Coordinate
  mov dl, 79 ; Bottom-right corner X Coordinate
  mov dh, 24 ; Bottom-right corner Y Coordinate
  mov bh, 7 ; Attribute
  mov al, 0 ; Scrolling 0 lines [Clean the screen]
  mov ah, 6 ; Put BIOS call code 6 in AH
  int 10H ; Calling VIDEO BIOS Service
  ret ; Returning from Procedure
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità
mmx[ngg] è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 16:31   #3
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da mmx[ngg]
Codice:
Cleaning:
  mov cl, 0 ; Upper-left corner X Coordinate
  mov ch, 0 ; Upper-left corner Y Coordinate
  mov dl, 79 ; Bottom-right corner X Coordinate
  mov dh, 24 ; Bottom-right corner Y Coordinate
  mov bh, 7 ; Attribute
  mov al, 0 ; Scrolling 0 lines [Clean the screen]
  mov ah, 6 ; Put BIOS call code 6 in AH
  int 10H ; Calling VIDEO BIOS Service
  ret ; Returning from Procedure

Attribute??

Non l'avevo trovato da nessuna parte , cosa fa?? (Mo provo)

Grazie

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 16:36   #4
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Funziona

Sei un mito , grazie
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 16:39   #5
mmx[ngg]
Senior Member
 
Iscritto dal: Aug 2001
Città: Milano
Messaggi: 402
Semplicemente imposta il colore del testo e dello sfondo...prima scrivevi nero su nero....ecco xke non vedevi niente.

Se non ricordo male i 4 bits + significativi sono il colore del testo, dal 5° al 7° bit lo sfondo e il bit finale dovrebbe essere il blink...ma non ne sono sicuro xke è una vita ke non vedo + ste cose...al max prova
__________________
Phenom 2 555 X2@X4@3,6Ghz 1.33v Asus M4A785TD-V EVO 4GB Team Group Elite 1333Mhz AC Freezer Xtreme Corsair 450VX Samsung SyncMaster T220 Hd Seagate 500x2(Raid 0) Barton 2500+@3200+ vcore 1.550 (liquid cooled@+9° T.A.) Asus A7N8X-E Dlx 1Gb Ram Dual DDR Hd Maxtor SATA 160x2(Raid 0) GeXCube 9600XT Eizo 19P Le belle cose hanno un inizio e una fine...tutto il resto è la normalità
mmx[ngg] è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 16:53   #6
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
LoL , detto così sembra facile

Sai mica se c'è una tabella con tutti sti attributi? Mi piacerebbe provare a fare lo schermo di un colore diverso

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 25-06-2004, 18:46   #7
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Allegati
File Type: zip attr.zip (152 Bytes, 5 visite)

Ultima modifica di repne scasb : 03-02-2005 alle 15:57.
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 15:24   #8
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
have a look
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 15:26   #9
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da repne scasb
Il seguente codice ASM ti generera' la tabella che cerchi:

Codice:
	View_All_Attribute	proc	near

	mov	ax,3h
	int	10h
	push	0B800h
	pop	es
	mov	di,2C0h
	xor	ax,ax
loop_attribute:
	stosw
	add	ax,101h
	test	al,0Fh	
	jne	loop_attribute
	add	di,80h
	test	al,0F0h
	jne	loop_attribute	
	mov	ah,10h
	int	16h
	mov	ah,4Ch
	int	21h

	View_All_Attribute	endp
Se non dovessi riuscire a compilare il codice ti allego l'eseguibile per visualizzare tale tabella.

Togo , grazie

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2004, 15:27   #10
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da Luc@s
have a look

Grazie anche a te

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 17:30   #11
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
giusto per sapere.........come hai poi risolto?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 18:43   #12
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Ho risolto impostando la serie di attributi giusti per lo schermo ^^

Prima mettevo "00" che era come "Nero su Nero" , adesso metto diversi colori a seconda di quelli che voglio , come indicato anche nella tabella nel link che mi hai postato

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 18:48   #13
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da AnonimoVeneziano
Ho risolto impostando la serie di attributi giusti per lo schermo ^^

Prima mettevo "00" che era come "Nero su Nero" , adesso metto diversi colori a seconda di quelli che voglio , come indicato anche nella tabella nel link che mi hai postato

Ciao
hai evoluto il code?
Ma sul libro che mi hai "passato" c'è sta roba??
E il link che ti ho dato era utile?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 18:59   #14
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Evoluto il code ... diciamo che l'ho modificato , c'è poco da evolvere

Si, sta roba c'è sul libro

Si era utile, grazie

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 19:05   #15
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da AnonimoVeneziano
Evoluto il code ... diciamo che l'ho modificato , c'è poco da evolvere
Ma in teoria un soft non è l'evoluzione di poche istruzioni?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 19:14   #16
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da Luc@s
Ma in teoria un soft non è l'evoluzione di poche istruzioni?

Ehm


Ma quando sono troppo poche.....


Si, comunque l'ho ottimizzato e adesso usa metà delle istruzioni per fare la stessa cosa

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 19:21   #17
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
I want see the program!
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 02-07-2004, 20:23   #18
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Ce l'ho sul 286 , quando ho tempo lo posto :P

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Googlebook pronto al debutto: Google apr...
Guida all'acquisto: quale lavapavimenti ...
Google Maps su Android Auto introduce fi...
AMD Ryzen 5 5500F: fino al 16% di presta...
L'ecosistema partner di Microsoft cresce...
Oracle registra un boom nella divisione ...
Amazon Prime Video sfida TikTok con le n...
L'uscita di Rayman Legends Retold &egrav...
Dazio UE sui pacchi extra UE, in Italia ...
La nuova lavatrice smart di Xiaomi ha tr...
Hai una PSP nel cassetto? Questo nuovo p...
Oracle presenta Java 27 con diverse novi...
Il microscopio dell'EPFL vede più...
Volvo avvia la produzione dei nuovi cami...
26 offerte Amazon da non perdere, da iPh...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:00.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v