Data in Java Java has pointers – they are called 'referenes' Null is typically represented as 0 Characters and strings Two-byte Unicode instead of ASCII Represents most of the world's alphabets String not bounded by a '\0'(null character) Bounded by
The time required to execute a program depends on: The program The compiler The instruction set architecture(ISA) The hardware implementation The ISA defines: The system's state(e.g. registers, memory, program counter) The instrutions the CPU can exe
There are a fixed number of registers in the CPU Registers hold data Data move from Memory to Registers Results move from Registers back to Memory There is an 1-cache in the CPU that holds recently fetched instructions. If you execute a loop that fit
printf("Signed Max:%d\n", 0x7FFFFFFF); printf("Signed Min:%d\n", 0x80000000); printf("Unsigned Max:%u\n", 0xFFFFFFFF); printf("Unsigned Min:%u\n", 0x00000000); By default are considered to be signed integers. Use &q
Moving Data: IA32 movx Source, Dest x is one of {b(1-byte), w(2-byte), l(4-byte)} Operand Types Immediate: Constant integer data Example: $0x400, $-533 Like C constant, but prefixed with'$' Register; one of 8 integer registers Example: %eax, %edx But
Buffer Overflows IA32 Linux Memory Layout Stack Runtime stack (8MB limit) Heap Dynamically allocated storage Allocated by malloc(), calloc(), new() Data Statically allocated data Read-only: string literals Read/write: global arrays and variables Text
The malloc package void* malloc(size_t size) void free (void *p) other functions calloc: Version of malloc that initializes allocated block to zero realloc: Changes the size of a previously allocated block abrk: Used internally by allocators to grow
Cache Definition: computer memory with short access time used for the storage of frequently or recently used instructions or data(i-cachhe and d-cache). more generally, used to optimize data transfers between system elements with different characteri
Exceptions: An exception is transfer of control to the operating system in response to some event. exception processing by exception handler Process(进程) Process abstraction provides an interface between the program and the underlying CPU + Memory. De