Flashcards
x86 slide flash cards
Cards in this deck (39)
- 1How many 16-bit general purpose registers are there in x86?8
- 2What are the 8 16-bit general purpose registers in x86?AX-accumulator
BX-base
CX-counter
DX-date
BP-stack base
SI-source
DI-destination
SP-stack - 3AX (accumulator)is used in arithmatic operations
- 4BX (base)used as a pointer to data
- 5CX (counter)used in the shift and rotate instructions, and used for loops
- 6DX (date)used in arithmetic and I/O operations
- 7BP (stack base)points to the base of the stack
- 8SI (source)points to a source in memory for stream operations
- 9DI (destination)points to a destination in memory for stream operations
- 10SP (stack)points to the top of the stack
- 11In 1986, Intel doubled the size of each general purpose register from what to what?16 to 32 by adding an E
- 12What do segmented registers do?point to different segments in memory
- 13how many bits are segment registers?16-bit
- 14how many segment registers are there in x86?6
- 15SS (stack segment)points to the stack
- 16CS (code segment)used by the cpu to fetch the code
- 17DS (data segment)default register for MOV operations
- 18ES (extra segment) FS GSextra data segment
- 19What are control and status registers?are special purpose registers that hold information about the most recently
performed ALU operation, memory alignment, enabling and disabling of interrupts, and set processor-
operating mode. - 20MOVThe mov instruction copies the data item into the location referred to by its first operand. While
register-to-register moves are possible, direct memory-to-memory moves are not. - 21PUSHThe push instruction places its operand onto the top of the hardware supported stack in
memory - 22POPThe pop instruction removes the 4-byte data element from the top of the hardware-supported
stack into the specified operand (i.e. register or memory location). - 23LEAThe lea instruction places the address specified by its second operand into the register specified
by its first operand. Note, the contents of the memory location are not loaded, only the effective address
is computed and placed into the register. - 24addInteger Addition - The add instruction adds together its two operands, storing the result in its first operand.
- 25subInteger Subtraction - The sub instruction stores in the value of its first operand the result of subtracting the value of its second
operand from the value of its first operand. - 26inc, decIncrement, Decrement - The inc instruction increments the contents of its operand by one. The dec instruction decrements the
contents of its operand by one. - 27imulInteger Multiplication - Includes two-operand and three-operand
The two-operand form multiplies its two operands together and stores the result in the first operand.
The three operand form multiplies its second and third operands together and stores the result in its first operand. - 28idivInteger Division - The idiv instruction divides the contents of the 64 bit integer EDX:EAX by the specified operand value. The
quotient result of the division is stored into EAX, while the remainder is placed in EDX. - 29PushThe push instruction places its operand onto the top of the hardware supported stack in memory.
- 30POPThe pop instruction removes the 4-byte data element from the top of the hardware-supported stack
into the specified operand. - 31CallPushes the address in the IP, incremented once, to the stack and jumps to the address in the
operand. The subroutine instructions are then sequentially executed. - 32ReturnFound at the end of a subroutine to pop the prior address off the stack and return the address to
IP - 33Callercalling program
- 34Calleesubroutine that is called
- 35Returntransfers control back to the caller
- 36Integer overflowAn integer overflow is a type of an arithmetic
overflow error when the result of an integer operation
does not fit within the allocated memory space. - 37Buffer overflowBuffers are memory storage regions that temporarily hold data while it is being transferred from one
location to another. A buffer overflow (or buffer overrun) occurs when the volume of data exceeds the
storage capacity of the memory buffer. - 38Stack overflowA stack overflow is a runtime error that happens when a program runs out of memory in the call stack. The
stack overflow generally signals a problem in resource provisioning and has to be fixed in order to allow
the program to run and use memory properly.
Stack overflows can be caused by not allocating enough memory to a particular program. They can also
be caused by a codebase where the coder or developer did not remember memory limits and
programmed the executable to exceed them. - 39What is used to split a program into smaller units in order to solve a particular part of a problem?subroutine
Information
- Description
- Army Computer Organization and Architecture (X86 Architecture) Flashcards on x86 slide flash cards, created by Jacob Mays on 16/02/2022.
- Created by
- Jacob Mays
- Views
- 0
- Rating