Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-05-2005, 22:11   #1
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
[DOS] .com a 16 bit

sto uscendo scemo (il che è tutto dire).
voglio creare un programma a 16 bit con estensione .com e sto provando a usare MASM32 e NASM, ma con nessuno dei due ci riesco
in particolare tra i due preferivo il masm; anche se si tratta del masm32, la direttiva .model supporta ancora il modello tiny, quindi dovrebbe comunque essere in grado di generare codice a 16 bit in un file .com
ho provato a fare uno scheletro iniziale di programma (questo in masm):
Codice:
.model tiny
.code
.startup
.exit
end
ma tutto quello che ottengo è un errore di link che mi comunica l'assenza dell'entry point WinMainCRTStartup, che però non dovrebbe esserci!! i .com non hanno l'entry point!!
dov'è che sbaglio ??

qualcuno può dirmi passo passo come fare un programma scheletrico a 16 bit con estensione .com possibilmente in masm32? (sennò al limite va bene il nasm...)
come sempre lavoro su win2k pro

thx

Ultima modifica di 71104 : 19-05-2005 alle 22:17.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2005, 13:21   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
up
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2005, 14:08   #3
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Non chiedermi cosa vuol dire, l'ho trovato nei gruppi di google, forse tu riesci a decifrarlo:

" If using a module definition (.def) file, these lines should appear in it:
If using a module definition (.def) file, these lines should appear in it:

EXETYPE NT
SUBSYSTEM CONSOLE


Do not use /ENTRY:WinMainCRTStartup in a command to the linker, this specifies a Windows application."

Spero ti sia utile.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 20-05-2005, 16:30   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ehm... -__________-'''
apprezzo molto la tua solerzia e la tua collaborazione ^^' ma non è esattamente quello che cercavo ^^
ti spiego brevemente che vuol dire: quando crei programmi EXE (quindi non c'entra nulla coi COM) puoi opzionalmente includere un file con estensione .def che contiene le cosiddette definizioni, una serie di informazioni di vario genere; tra queste troviamo il nome dell'entry point (di default "WinMainCRTStartup"), il subsystem usato (cioè se è un programma console, un programma GUI, un driver, ecc.), le eventuali esportazioni, le definizioni delle sezioni, eccetera eccetera.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2005, 11:50   #5
Ubi-Wan
Bannato
 
L'Avatar di Ubi-Wan
 
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
non so se puo' aiutare...pero' nel codice che hai postato manca l'indicazione dell'indirizzo di partenza del programma. Se non sbaglio per i file .com non deve essere _sempre_ 100h? Quindi ORG 100h?
Ubi-Wan è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2005, 12:16   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ORG 100h? e chè è? dove lo devo scrivere?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2005, 13:34   #7
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da 71104
ORG 100h? e chè è? dove lo devo scrivere?
vuol dire che i .com devono partire dall'addr 100h, prima di esso c'è spazio riservato per altre cose.
Fatto sta che i com partono da li e se nn lo fanno, nn sono .com
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2005, 13:36   #8
Ubi-Wan
Bannato
 
L'Avatar di Ubi-Wan
 
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
Quote:
ORG 100h is a compiler directive (it tells compiler how to handle the source code). This directive is very important when you work with variables. It tells compiler that the executable file will be loaded at the offset of 100h (256 bytes), so compiler should calculate the correct address for all variables when it replaces the variable names with their offsets. Directives are never converted to any real machine code.
Why executable file is loaded at offset of 100h? Operating system keeps some data about the program in the first 256 bytes of the CS (code segment), such as command line parameters and etc.
Though this is true for COM files only, EXE files are loaded at offset of 0000, and generally use special segment for variables. Maybe we'll talk more about EXE files later.
Ubi-Wan è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2005, 13:38   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Luc@s
vuol dire che i .com devono partire dall'addr 100h, prima di esso c'è spazio riservato per altre cose.
Fatto sta che i com partono da li e se nn lo fanno, nn sono .com
perché secondo te sul mio computer (win2kpro) l'indirizzo fisico 100h è libero???
a parte che non è mai libero neanche in modalità reale perché c'è il bios e subito prima l'IVT...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2005, 13:40   #10
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Ubi-Wan
adesso è già più chiaro; ma questa direttiva ORG per che assemblatore è? ripeto che vorrei usare il masm32
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2005, 13:54   #11
Ubi-Wan
Bannato
 
L'Avatar di Ubi-Wan
 
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
da http://www.uv.tietgen.dk/staff/mlha/...directives.htm:

Quote:
ORG
Sets the Location Counter.
In COM programs, ORG 100h leaves room for the DOS PSP.

code SEGMENT
ORG 100h
start: ;code at 100h
Ubi-Wan è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2005, 14:12   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ma sta cosa dove va messa? ho provato subito dopo la direttiva .CODE ma non cambia nulla
e comunque non credo che sia quello il problema... devo far capire al linker che non sto generando un EXE, ma un COM! il linker mi cerca l'entry point!
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2005, 14:54   #13
Ubi-Wan
Bannato
 
L'Avatar di Ubi-Wan
 
Iscritto dal: Jul 2004
Città: Tatooine
Messaggi: 506
Quote:

CSEG SEGMENT ; code segment starts here.

; #MAKE_COM# ; uncomment for Emu8086.

ORG 100h

start: MOV AL, 5 ; some sample code...
MOV BL, 2
XOR AL, BL
XOR BL, AL
XOR AL, BL

RET

CSEG ENDS ; code segment ends here.

END start ; stop compiler, and set entry point.

Entry point for COM file should always be at 0100h (first instruction after ORG 100h directive), though in MASM and TASM you may need to manually set an entry point using END directive. Emu8086 works just fine, with or without it.

In order to test the above code, save it into test.asm file (or any other) and run these commands from command prompt:

For MASM 6.0:

MASM test.asm
LINK test.obj, test.com,,, /TINY

For TASM 4.1:

TASM test.asm
TLINK test.obj /t

We should get test.com file (11 bytes), right click it and select Send To and emu8086. You can see that the disassembled code doesn't contain any directives and it is identical to code that Emu8086 produces even without all those tricky directives.
che Google sia con te!
Ubi-Wan è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2005, 20:30   #14
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
MWHAUWHAUHUWHAUA COMPILA!!!! ehm, però come dire... è un exe... :-|
ti ringrazio tantissimo per l'aiuto, ma a questo punto mi sembra chiaro che bisogna cambiare qualche settaggio, qualche impostazione, forse nel linker; aho, ti giuro che le ho provate tutte e proprio non ci riesco... :-|
boh, forse domani ci riuscirò, dato che domani è domenica e quindi dovrei avere la concentrazione di un carciofo, però almeno non è sabato, che ho la concentrazione di una patata :-|
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
Apple apre le porte agli assistenti di t...
Il nuovo cameraphone di Xiaomi arriver&a...
Realme GT 8 Pro: ecco la Dream Edition r...
'Vibe coding? Sì, ma non toccate ...
Cloudflare si scusa e spiega cos'è...
Obbligati ad acquistare una scheda madre...
GTA VI su PC? La data non c'è, ma...
Monopattini elettrici, a un anno dal dec...
Tesla Robotaxi, autista di sicurezza si ...
Samsung Galaxy S26: svelate le combinazi...
Microsoft Ignite: arriva Edge for Busine...
OPPO e Lamine Yamal uniscono sport e tec...
Microsoft, NVIDIA e Anthropic siglano un...
SpaceX potrebbe comunicare alla NASA rit...
Scoperte cavità sotterranee scava...
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: 08:07.


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