Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto
Samsung rinnova la serie pieghevole di punta con Galaxy Z Fold8 Ultra: pannello interno da 8 pollici quasi senza piega, cerniera Flex Titanium, Snapdragon 8 Elite Gen 5 for Galaxy e batteria finalmente da 5.000 mAh. Prezzo italiano da 2.299 a 2.899 euro. Tra colorimetro, benchmark reali e giorni di uso quotidiano, ecco dove questo pieghevole convince e dove il nome Ultra fatica ancora a trovare piena giustificazione
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing"
La nuova Insta360 X6 introduce sensori Sony da 1/1.1" e un SoC Triple AI a 4nm. Analizziamo le riprese 8K, il primo Dolby Vision nativo a 10-bit nel settore sferico e l'innovativo flusso di lavoro diretto sulla futura versione 22 di DaVinci Resolve.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-07-2004, 11:43   #1
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
[Asm]Domanda su Cmp

Da quanto ho capito, quando faccio cmp dst, src in asm e come se facessi sub dst, src ma senza pero modificare nulla.
Cioe alla fine ho(in metacodice):
Quote:
Result := dst-src
E se il risultato è zero sono uguali(e lo ZF(0 flag) viene settato e poi usato per i vari Jump) se sono no i 2 operandi sono diversi.
Ora........ho capito o c'è qualcosa nel mio ragionamente che falla?


Tnk
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 17-07-2004, 14:27   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Va bene, ma non agisce solo su ZF, ma anche su altri bit come OF e CF...così come la sub...
Questi altri due bit servono per usare i vari salti condizionati relativi alla comparazione fra numeri interi e naturali...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-07-2004, 17:05   #3
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
indi qualcosa capisco da solo?
Cosa intendi per "comparazione fra numeri interi e naturali"?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 17-07-2004, 17:30   #4
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Codice:
[BITS 16]
[ORG 0100h] ; for .com

[SECTION .text]

start:
	mov ax, 100 ; set ax to 10
	cmp ax, 10; compare ax with 10 values
	je OK ; jump if ax = 10
	JNE NO ; jump if ax NOT 10
OK:
	mov dx, Message_OK ; Message_OK = ds:dx
	or ah, ah ; set ah to 0
	mov ah, 09h ; set int 21h service 09h
	int 21h
	ret 
NO:
	mov dx, Message_NO ; Message_NO = ds:dx
	or ah, ah ; set ah to 0
	mov ah, 09h ; set int 21h service 09h
	int 21h
	ret 
	
	; set int 21h service 4Ch(exit)
	mov ah, 4Ch
	int 21h

[SECTION .data]

Message_OK db 'AX is equals 10', 13, 10, '$'
Message_NO db 'AX is NOT equals 10', 13, 10, '$'
Indi sto code in C sarebbe + o -
Codice:
#include <stdio.h>

int main()
{
    unsigned int a = 0;
    if(a == 0){
       puts("AX is equals 10");
    }else {
       puts("AX is NOT equals 10");
    }
    return 0;
}
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 17-07-2004, 17:52   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Direi che quello è più questo (a parte il return 0)...c'è una leggera differenza...ma l'if funziona in quel modo...
Codice:
[BITS 16]
[ORG 0100h] ; for .com

[SECTION .text]

start:
	mov ax, 100 ; set ax to 10
	cmp ax, 10; compare ax with 10 values
	je OK ; jump if ax = 10
	jmp NO ; jump if ax NOT 10
OK:
	mov dx, Message_OK ; Message_OK = ds:dx
	or ah, ah ; set ah to 0
	mov ah, 09h ; set int 21h service 09h
	int 21h
	jmp fineif
NO:
	mov dx, Message_NO ; Message_NO = ds:dx
	or ah, ah ; set ah to 0
	mov ah, 09h ; set int 21h service 09h
	int 21h
fineif:
	ret 
	
	; set int 21h service 4Ch(exit)
	mov ah, 4Ch
	int 21h

[SECTION .data]

Message_OK db 'AX is equals 10', 13, 10, '$'
Message_NO db 'AX is NOT equals 10', 13, 10, '$'
Esistono salti condizionali che tengono conto dei flag interpretabili per numeri interi (memorizzati in complemento a 2 - int) o naturali (senza numeri negativi - unsigned int)...
Ad esempio:
JL - Jump if Less: è per numeri interi e salta se SF != OF
JB - Jump if Below: è per numeri naturali e salta se CF = 1

Testano entrambi se x < y...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 17-07-2004, 17:55   #6
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
quindi l'If e + o - fatto cosi
Forte l'asm.....+ lo scopro + mi piace!
Ma secondo te..........capire queste cose aiuta a capire meglio C/C++ e tutte le cose che fanno?
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 17-07-2004, 17:57   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Aiuta a capire meglio qualsiasi cosa fa un computer o un programma

Comunque puoi vedere il sorgente del tuo programma scritto in C o C++ in questo modo:

gcc -S source.c -o out.asm
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Due settimane con Dacia Spring 2026: novità, consumi, autonomia reale e test bagagli Due settimane con Dacia Spring 2026: novit&agrav...
AORUS GeForce RTX 5080 INFINITY WOOD 16G: una scheda video diversa dalle altre AORUS GeForce RTX 5080 INFINITY WOOD 16G: una sc...
Polaroid lancia una nuova serie di fotoc...
Starship: prosegue il recupero di Ship 4...
OpenAI lancia ChatGPT Teens: sotto i 18 ...
Leapmotor sbarca in Argentina: la sfida ...
Operazione Blue Skies: così Googl...
Dietro la piattaforma che rivende DeepSe...
Kentucky, la scuola fa strappare 17 pagi...
Questa è la regina in Cina, e sta...
Samsung è sempre più leader del mercato ...
Snapdragon X2 Elite Extreme domina i ben...
Phantom Blade Zero: nuovi dettagli su st...
Honor testa batterie fino a 12.000 mAh p...
Spotify introduce Playlist Notes: ora ut...
Apple prepara gli AirPods con fotocamera...
Pokémon Center vittima di un attacco hac...
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: 06:10.


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