Debianizzati.Org | Forum | Blog | Guide | IRC
 
 
Forum Italiano Debian - Debianizzati.Org
Ottobre 08, 2008, 10:55:13 *
Benvenuto, Visitatore. Per favore, effettua il login o registrati.
Hai perso la tua email di attivazione?

Login con username, password e lunghezza della sessione
News:
 
   Home   Help Ricerca Calendario Login Registrati  
Pagine: [1]   Vai Giù
  Stampa  
Autore Topic: assembler e linux  (Letto 1322 volte)
0 Utenti e 1 Visitatore stanno guardando questo topic.
scorpion89
Full Member
***

Karma: +4/-0
Offline Offline

Posts: 101


Guarda Profilo Email
« il: Aprile 05, 2006, 09:38:44 »

Salve a tutti e volevo chiedervi,
ho provato a fare dei semplici programmini assembler(compilati con nasm) e tutto ok!
Però riesco a usare soltanto l\'interrupt 80h, quello del kernel  e lo 03h e nient\'altro!!
Sapete come posso fare?? O altri interrup??
Vi posto il codice, ci fossero degli errori.
Codice:

section .text

GLOBAL _start

_start:

;scrittura del messaggio
MOV ECX,msg ;indica che la stringa da scrivere è mess
MOV EDX,lun ;indichiamo la lunghezza della stringa quindi l\'offeset
MOV EBX,1 ;indica che va scritto sullo schermo
MOV EAX,4 ;system_call per scrivere a video
INT  80h ;chiamata al kernel

;lettura del messaggio
XOR EBX,EBX ;indica che va scritto sullo schermo
MOV EAX,3 ;system_call per scrivere a video
INT  80h ;chiamata al kernel

;terminare il programma
MOV EAX,1 ;system_call per uscire
MOV EBX,0 ;indica il livello di errore
INT 80h ;chiamata al kernel


section .data


msg db   \"Hello World\",10
lun equ $-msg

E funziona ma dove salva la stringa o il carattere ke aquisisco con la seconda parte, se lo aquisisco!

Ciao e grazie

Post modificato da: MaXeR, alle: 05/04/2006 18:14
Loggato
MaXeR
Administrator
Hero Member
*****

Karma: +42/-0
Offline Offline

Posts: 3401


161200863 maxer@knio.it
Guarda Profilo WWW Email
« Risposta #1 il: Aprile 05, 2006, 10:21:24 »

forse sono parecchio incriccato con l\'asm...
ma non trascuri alcuni campi?
come edx ed ecx?

http://profs.sci.univr.it/~quaglia/AE/ASM/system_call_linux.html
Loggato


scorpion89
Full Member
***

Karma: +4/-0
Offline Offline

Posts: 101


Guarda Profilo Email
« Risposta #2 il: Aprile 06, 2006, 02:09:01 »

Era proprio quello che mi mancava!!
Però un altro problema! Come faccio ad usare interrupt hardware visto che non ci sono riuscito?? Se aveste dei programmi di esempio.

Post modificato da: scorpion89, alle: 05/04/2006 22:09
Loggato
MaXeR
Administrator
Hero Member
*****

Karma: +42/-0
Offline Offline

Posts: 3401


161200863 maxer@knio.it
Guarda Profilo WWW Email
« Risposta #3 il: Aprile 06, 2006, 04:30:40 »

questo esula dalla mia conoscenza di ASM...
sono fermo alle basi (quelle date dall\'esame di Architetture Hardware ;-) )!

Prova a guardare http://profs.sci.univr.it/~quaglia/AE/ASM/ , ci sono dei link interessanti per approfondire... magari trovi la risposta...

di più nin sò Sad
Loggato


Tmy17
Jr. Member
**

Karma: +4/-0
Offline Offline

Posts: 64


Guarda Profilo Email
« Risposta #4 il: Aprile 06, 2006, 06:30:13 »

Premesso che pure io di ASM conosco davvero poco, credo che non puoi usare altri interrupt a meno di non passare in kernel space, perchè i programmi sotto linux vengono sempre eseguiti in modalità protetta. Per chiamare altri interrupt devi andare a ring 0 (la stessa modalità con cui funziona il kernel), ma mi pare che l\'unico modo è scriverti un modulo per il kernel.

Ciao!
Loggato
scorpion89
Full Member
***

Karma: +4/-0
Offline Offline

Posts: 101


Guarda Profilo Email
« Risposta #5 il: Aprile 07, 2006, 08:01:17 »

Sono riuscito a fare aquisizione e stampa di caratteri e numeri.
E se per caso vi interessa l\'argomento, quando ho fatto la relazione per la mia prof, la posto o altro, cmq ve la faccio avere.

Però volevo chiedere una cosa. Di solito CX(ECX) viene usato per  i cicli ma se lo uso per stampare indirizzare i caratteri??
Si usa un altro registro o devo fare degli ammattimenti per farci stare tutte e 2 le informazioni?

Ciao e grazie
Loggato
MaXeR
Administrator
Hero Member
*****

Karma: +42/-0
Offline Offline

Posts: 3401


161200863 maxer@knio.it
Guarda Profilo WWW Email
« Risposta #6 il: Aprile 07, 2006, 08:09:58 »

Smiley

per il ciclo...beh...io voterei per gli \"ammattimenti\"...
in pratica devi usare lo stack (push & pop) per memorizzare ciò che andresti a sovrascrivere, per poi estrarlo...
io, almeno, facevo così ;-)

un Claudio che ricorda quanto si divertiva con l\'esame di Architetture degli Elaboratori Cheesy
Loggato


SuperSonic
Newbie
*

Karma: +0/-0
Offline Offline

Posts: 23


Guarda Profilo Email
« Risposta #7 il: Giugno 05, 2006, 02:17:22 »

in CX puoi mettere quello che vuoi
basta che dopo non usi appunto il ciclo loop

il fatto è che così non si capisce se vuoi effettivamente fare un ciclo o solo memorizzare un dato

secondo me è solo questione di leggibilità ..
Loggato
SuperSonic
Newbie
*

Karma: +0/-0
Offline Offline

Posts: 23


Guarda Profilo Email
« Risposta #8 il: Giugno 05, 2006, 02:20:17 »

MaXeR ha scritto:
Citazione


un Claudio che ricorda quanto si divertiva con l\'esame di Architetture degli Elaboratori Cheesy


beato te che ti diverti , io ho un prof a dir poco rintronato che ci insegna MIPS ...
ho l\'esame quest\'estate e non so una WORD di MIPS :laugh:
Loggato
MaXeR
Administrator
Hero Member
*****

Karma: +42/-0
Offline Offline

Posts: 3401


161200863 maxer@knio.it
Guarda Profilo WWW Email
« Risposta #9 il: Giugno 05, 2006, 05:38:48 »

uff....

perchè farsi così male :|
Loggato


Pagine: [1]   Vai Su
  Stampa  
 
Salta a:  

Altri Topic Correlati
Oggetto Iniziato da Risposte Visto Ultimo Post
flash x linux Multimedia beda2 5 627 Ultimo Post Maggio 20, 2005, 02:21:55
da MaXeR
Linux Pratico diventa Linux&c. OffTopic nic 2 355 Ultimo Post Gennaio 20, 2006, 10:27:58
da tindal
Tv e Linux Multimedia Palo_Pd 3 500 Ultimo Post Aprile 16, 2007, 12:03:42
da revjones
./configure: The file /usr/src/linux/include/linux/version.h does not exist. Installazione Midnight 7 830 Ultimo Post Aprile 28, 2007, 07:43:53
da schnauzer
compilazione codice assembler Programmazione master_fx 1 484 Ultimo Post Agosto 05, 2008, 06:53:41
da francys
Powered by MySQL Powered by PHP Powered by SMF 1.1.6 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks
Traduzione Italiana a cura di SMItalia
XHTML 1.0 Valido! CSS Valido!
Pagina creata in 1.313 secondi con 21 queries.