=====asm Keywords===== ====asm Keyword 9: Registers (General Purpose/Integer, Floating Points, Accumulator, Data)==== ***Registers** are a small amount of memory accessed directly by the processor. They store necessary data by the cpu and allow for faster access than if stored in ram. There are many type of registers: ***General purpose registers***: Can store both data and addresses. ***Data registers**: Can store numeric values such as **Integer's** and **Floating point** values. ***Accumulator registers** are special types of a data registers than are used specifically to perform operations on the stored values. ====asm Keyword 10: Registers(Special purpose, Program Counter, Flag/Status)==== ***Special purpose registers** Hold a program state, they include a **Program Counter** and a **Flag/Status** register. *A **Program Counter** also known as the instruction pointer is a register that points to the next instruction in the instruction sequence. ***Flag/Status registers** Store data than can be used to determine what the next instruction should do. ====asm Keyword 11: Registers(Address registers, Index/Pointer registers, Stack registers)==== ***Address registers** hold addresses of memory. ***Index registers** Is like an address register but the address stored can be manipulated by a user. ***Stack pointer** is how the run time stack is managed, it always points to the top of the stack. ====asm Keyword 12: Instruction sets(CISC, RISC)==== *An **Instruction set** is the instructions stored in circuitry that make up the processor. ***CISC** stands for **complex instruction set computer** has many specialized instructions which may only be rarely used by common programs. ***RISC** stands for **reduced instruction set computer** simplifies the processor by only implementing instructions that are frequently used in common programs. ====asm Keyword 13: Boolean algebra==== ***Boolean algebra** is the algebra of truth values 0 and 1. *Unlike traditional algebra there is no subtraction or division in boolean algebra. *Because there are only 2 values, 0 and 1, addition in boolean algebra can be confusing. 1+1=1 is awfully confusing to some. *It is best to think of Boolean addition as the OR logic function and Multiplication as the NOT. ====asm Keyword 14: Machine Word==== *A **Word** is a natural unit of data used by a processor. It is a fixed size of bits handled by the processor. The size of the word is determined at the design phase. There are some designs that allow for variable length words where instead there was a terminator so the processor knew it was at the end of the word. ====asm Keyword 15: Interrupt==== *An **Interrupt** is definded as an asynchronous(meaning not driven by the clock) signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution. Basically the interrupt will stop one task and start another. Once the new task is finished it will continue the interrupted task from where it left off. This increases the efficiency of the processor and allows for multitasking. ====asm Keyword 16: I/O==== ***I/O** aka **input/output** is when an operation or device transfers data to or from a computer and to or from a peripheral device. Our processors will take input from registers then output information to registers. The registers will take input from memory and output it to the processor. =====asm Objective===== ====asm Objective: How assembly impacts programming==== *Assembly language is the machine code needed for any given processor, knowing the assembly language of the processor you are writing code for will actually help you optimize your code.