Stack pointer
Lo stack pointer (ESP) è, nelle architetture x86 un registro dedicato della CPU che contiene l'indirizzo della locazione di memoria occupata dal top dello stack per permetterne le operazioni di push, che lo incrementerà, e di pop, che farà l'inverso, per permettere le operazioni che implicano l'uso dello stack che seguono la logica LIFO.
Lo stack viene allocato e deallocato continuamente quindi può esser facile perder traccia della sua "testa".
Per ovviare a questo inconveniente esiste il... —
| approfondisci »
ESP
Acronimi
• Eastern State Penitentiary - antico carcere di Filadelfia (Pennsylvania) (USA)
• Electric Sound Products - marchio di strumenti musicali
• ElectroStatic Precipitator - Precipitatore elettrostatico (Sistema di rimozione del particolato)
• Encapsulating Security Payload - protocollo di IPsec
• Enhanced Service Provider - operatore di telefonia mobile in mezzo tra il classico e il virtuale
• Extra-sensory perception - percezione extrasensoriale
• Extended Stack Pointer - un... —
Dump
di programma" sono di regola contestualmente "annotate" nel dump, compresi i registri del processore, il Program counter e lo stack pointer, le informazioni di gestione della memoria ed altri flags ed informazioni attinenti al processore o al sistema operativo.
Sul piano della cultura generale, può essere utile ricordare che la denominazione core dump deriva dalla tecnologia core memory, che fino agli anni settanta costituiva uno standard industriale.
I core dumps sono utilizzati anche per la... —
| approfondisci »
Zilog Z8000
a 7-bit che estende lo spazio di indirizzamento a 8 megabytes. Il set di registri consiste di 16 registri a 16-bit. Sono presenti alcune istruzioni che impiegano tali registri come registri a 8, 16, 32 e 64 bit. Il set di registri è completamente ortogonale. Il registro numero 15 è convenzionalmente usato come stack pointer, mentre il registro numero 14 è usato come stack segment.
È presente sia uno user mode che un supervisor mode.
Come lo Z80, lo Z8000 include internamente la circuiteria per... —
| approfondisci »
MipOS
)
; ^- R0 ^- R1
; The jmp_buf is assumed to contain the following, in order:
; R1-R12, PSP, MSP, LR
; ------------------------------------------------------------------------------
RESTORE_CPU_REGS
MOV R5, R0 ; save pointer to env into R5
MOV R6, R1 ; save value parameter into R6
ADD R0, R0, #48 ; (12*4) r0->point to xSP, LR registers copy
LDMIA R0!, ; load stack pointers and link register
MSR PSP, R1 ; restore stack pointers
MSR MSP, R2
MOV LR, R... —
| approfondisci »
Intel 8080
permette all'8080 di fornire un bus di indirizzi a 16 bit e un bus di dati a 8 bit, che consentono di accedere facilmente a 64 kilobyte di memoria. All'interno è dotato di sette registri a 8 bit (sei dei quali possono essere combinati a formare tre registri da 16 bit), uno stack pointer a 16 bit (che, al contrario di quanto accade nell'8008 che fa uso di una stack interna, punta in memoria), e un program counter a 16-bit.
L'8080 dispone di 256 porte I/O che permettono alle periferiche un collegamento... —
| approfondisci »
Registro (informatica)
programmatore per diverse funzioni. Solitamente sono ristretti a particolari tipi di funzione (es: registri dedicati ad operazioni in virgola mobile), tuttavia possono essere usati in qualsiasi istruzione macchina. I registri degli indirizzi contengono gli indirizzi dei dati e delle istruzioni contenute nella memoria. Tali registri possono essere di tipo generale o dedicati ad un particolare modo di indirizzamento (index register, segment pointer, stack pointer).
Esempi
Il numero di registri varia... —
| approfondisci »
Vulnerabilità
attaccante di inserire un volume di dati superiore alla dimensione prestabilita e riversare i dati in eccesso nello stack, sovrascrivendo l'instruction pointer che potrebbe puntare ad un programma (tipicamente uno Shellcode) opportunamente creato per compiere effetti indesiderati.
2. Vulnerabilità dei protocolli: Presenti in quanto i protocolli della famiglia TCP/IP non contemplano il problema legato alla sicurezza perché nati negli anni ottanta (prima dell'avvento di Internet); l'esempio classico di... —
| approfondisci »
Intel 8086
contemporaneo – una forma primitiva di pipelining (le istruzioni dell'8086 avevano una dimensione tra 1 e 4 byte).
Ha quattro registri a 16 bit per uso generico, a cui si può accedere come se fossero otto registri a 8 bit, e quattro registri a 16 bit di indice (incluso lo stack pointer). I registri per i dati sono spesso utilizzati implicitamente dalle istruzioni, complicando l'uso degli stessi per memorizzare valori temporanei. Ha uno spazio di indirizzamento a 16 bit per l'I/O (cioè può accedere a 65... —
| approfondisci »
Motorola 6809
uniti per realizzare un singolo accumulatore a 16 bit. Era dotato anche di due registri indirizzi a 16 bit e di due stack pointer (il 6502 ne aveva uno solo) e di metodi di indirizzamento molto avanzati.
Il 6809 era compatibile a livello di sorgente con il 6800, sebbene il 6800 avesse un set di 78 istruzioni mentre il 6809 ne avesse solamente 59. Molte istruzioni eliminate erano state sostituite da istruzioni più generiche e alcune istruzioni erano state sostituite da ulteriori modi di... —
| approfondisci »
INMOS Transputer
. Questo permetteva di eseguire rapidamente il context switch semplicemente spostando lo stack pointer sulla parte di memoria assegnata a un altro programma (una tecnica usata da molti sistemi contemporanei). Il Transputer inoltre includeva tre registri "normali", ma questi erano di fatto le copie delle prime tre celle dello stack, usate per permettere le istruzioni a indirizzo zero.
Set di istruzioni
Il set di istruzioni del Transputer era formato da istruzioni di 8 bit divise in due nibble. Quello... —
| approfondisci »
Motorola 68000
bus dati a 32 bit ( in grado di indirizzare 4 GByte).
Registri interni
La CPU ha i seguenti registri, tutti a 32 bit:
Tutti i registri dati sono di uso generico, non ci sono registri specializzati, dedicati ad esempio alla moltiplicazione o alla divisione, come nei processori precedenti. L'ultimo registro indirizzi è lo stack pointer e può essere chiamato indifferentemente A7 oppure SP. Questo numero di registri rappresenta un buon compromesso: abbastanza basso da non penalizzare troppo il... —
| approfondisci »