Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

global offset table

A table of addresses in a program's data that the dynamic linker fills in, so position-independent code can find things in other libraries.

The global offset table (GOT) is a writable array of pointers, one per external symbol a module references; code loads a symbol's address from its GOT entry PC-relatively, and the dynamic linker writes the entries at load time (or lazily, for function entries).

Examples

  • mov rax, [rip + counter@GOTPCREL] loads counter's address from its GOT entry.

Read the full section →