This action might not be possible to undo. Are you sure you want to continue?
(x). These are enough for the computer to do any kind of task, from processing to printing and executing any sort of programm. This also might sound weird but the computer doesn't work in decimal arithmetic system but in binary, (0,1). To be more specific : 0 : it doesn't pass any electric stream in the circuits and cells of the computer. 1 : it pass continiously electric stream in the circuits and cells of the computer. So now it's obvious that all these stuff of software and programms it is made by us and for us so that we can “ communicate ” with the computer without typing countless zeros and ones in order to write or execute a programm, because despight the language of programming we use every computer only the binary machine code understands!!! 1.) WHY ASSEMBLY ??? First of all you need to know that assembly is the ancient language of programming and still in use !!! Assembly is little more higher than the machine language. It represents symbolically the basic processes that are done in CPU (central proccesing unit) From many programmers it is considered as the lowest level language. May be the higher level languages ( such as Pascal, Python, algol) are nearer to our natural language but none of them has the efficiency and immediateness of assembly. That's why it is still in use today for C- programming,crucial debugging processes etc. IF YOU DO ANY PROGRAMMING YOU WILL FIND ASSEMBLY MOST NECCESARY !! 2.) THE ARCHITECTURE OF THE COMPUTER
- page 1 of 4-
are executed. -page 2 of 4 - .In the diagramm above we can see the basical structure of a computer . Count register It is seperated in CH and CL. These are like RAM when we turn off the computer all the stored data in there is lost.All the registers in 8086 have length 16 bits. Base adress register. 3. GENERAL PURPOSE REGISTERS AX BX CX DX BP SP SI DI Accumulator register. The memory C is divided in segments. It is seperated in BH and BL. Only if all these units work together the computer can function. Base pointer Stack pointer Source index register Destination index register The above registers store temporarily values on the binary code system. It is seperated in DH and DL. ALU : in this unit all the logical operations and most of the programms and other kind of procedures – which are done in the computer -.For example CX= 1010111000101000 so CH= 10101110 and CL=00101000 SEGMENT REGISTERS CS DS ES SS Code segment Data segment Extra segment Stack segment The above registers are used for refering in blocks of the memory C.) ASSEMBLY LANGUAGE ON CPU 8086 Every CPU has a serie of registers. The cheking unit : where all the procedures which are executed in CPU are checked in order that the user won't be forced to do any debugging. The major difference is that RAM has much more space than the registers. Data register. The CPU is divided in three major parts more specifically : The hard disc memory C : where all the necesssary programms are stored for the start of the computer till the display of the results in the computer screen. The first 4 registers are divided in two parts with equal amount of numbers the high nibble ( _H) and the low nibble ( _ L). Because CPU's are countless we will focus only on one CPU 8086. It is seperated in AH and AL.
subtraction.SPECIAL PURPOSE REGISTERS IP instruction pointer flags register IP combined with CS gives the running directive Flags register shows or determines the running state of the computer. subtraction (binary coded decimal numbers) . subtract byte or word and carry (borrow) INC. divide byte or word (unsigned) IMUL. SUB Add. CWD Convert byte to word. extra segment PUSH. DIV Multiply. DAS Decimal adjust for addition. RCR Rotate left. right byte or word? by 1 or CL RCL. multiplication. AAS. AAM. ROR Rotate left. right byte or word? by 1 or CL ROL. subtract byte or word ADC. CPU 8086 INSTRUCTION SET Data Transfer Instructions MOV Move byte or word to register or memory IN. output word to port LEA Load effective address LDS. DEC Increment. LES Load pointer using data segment. division (ASCII codes 30-39) DAA. decrement byte or word NEG Negate byte or word (two's complement) CMP Compare byte or word (subtract without storing) MUL. SBB Add. IDIV Integer multiply. AAD ASCII adjust for addition. These registers are controlled automatically by CPU. right byte or word? by 1 or CL SAL. POP Push word onto stack. word to double word (useful before multiply/divide) Adjustments after arithmetic operations: AAA. SAR Arithmetic shift left. divide byte or word (signed) CBW. right through carry byte or word? by 1 or CL Arithmetic Instructions ADD. pop word off stack XCHG Exchange byte or word XLAT Translate byte using look-up table Logical Instructions NOT Logical NOT of byte or word (one's complement) AND Logical AND of byte or word OR Logical OR of byte or word XOR Logical exclusive-OR of byte or word TEST Test byte or word (AND without storing) Shift and Rotate Instructions SHL. OUT Input byte or word from port. SHR Logical shift left.page 3 of 4- .
-128 range only JG (JNLE) Jump if greater (not less or equal)? +127. no sign? +127. REPNZ Repeat while not equal (zero) Processor Control Instructions Flag manipulation: STC. -128 range only JS. -128 range only JC. JNC Jump if carry set. RET Call. -128 range only JE (JZ) Jump if equal (zero)? +127. -128 range only JGE (JNL) Jump if greater or equal (not less)? +127. short jump to target address LOOPE (LOOPZ) Loop if equal (zero). -128 range only JP (JPE) Jump if parity (parity even)? +127. CLI Set. count in CX. -128 range only JLE (JNG) Jump if less or equal (not greater)? +127. count in CX. short jump to target address LOOPNE (LOOPNZ) Loop if not equal (not zero). -128 range only Loop control: LOOP Loop unconditional. clear direction flag STI. complement carry flag STD. INTO Software interrupt. JNO Jump if overflow. -128 range only JNP (JPO) Jump if no parity (parity odd)? +127. word string CMPS Compare byte or word string SCAS Scan byte or word string (comparing to A or AX) LODS. interrupt if overflow IRET Return from interrupt String Instructions MOVS Move byte or word string MOVSB. return from procedure (inside or outside current segment) INT. no overflow? +127. CMC Set. carry not set? +127. -128 range only JO. far between segments) Conditional jumps: JA (JNBE) Jump if above (not below or equal)? +127. -128 range only JL (JNGE) Jump if less (not greater nor equal)? +127. POPF Push flags onto stack. count in CX. MOVSW Move byte. zero REPNE. REPZ Repeat while equal. multiprocessor interface: ESC Escape to external processor interface LOCK Lock bus during next instruction -page 4 of 5 - . -128 range only JBE (JNA) Jump if below or equal (not above)? +127. JNS Jump if sign. CLD Set. -128 range only JAE (JNB) Jump if above or equal(not below)? +127. clear interrupt enable flag LAHF. STOS Load. short jump to target address JCXZ Jump if CX equals zero (used to skip code in loop) Subroutine and Interrupt Instructions CALL. store AH into flags PUSHF. -128 range only JB (JNAE) Jump if below (not above or equal)? +127. near ?32K. SAHF Load AH from flags.Transfer Instructions JMP Unconditional jump (short ?127/8. store byte or word string to AL or AX Repeat instructions (placed in front of other string operations): REP Repeat REPE. CLC. clear. pop flags off stack Coprocessor.
) http://en.) www./8086.it.) assembly.com 4.) w3. wikipedia.ny..com 9.)www../assembly/contents.) www..usfm.uom.br/rmbranco/cefet_files/.us/10.edu?nasm_dierctive.ca/.cpu-world..gr/.) www.assembly./Intel_8086 3./7_Assembly.org/wiki/Assembly_language 2..) en.es.) courses.state.mag.Inactive states: NOP No operation WAIT Wait for TEST pin activity HLT Halt processor LINKS 1..html 5.html 7.html 8.emu8086.htm .ece.page 5 of 5- .) www...uregina..ilinois.com/.org/.wikipedia../8086%20 6.
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue listening from where you left off, or restart the preview.