Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 331/ETE 332/EEE 332 Microprocessor and Assembly Language Programming Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU.

Similar presentations


Presentation on theme: "CSE 331/ETE 332/EEE 332 Microprocessor and Assembly Language Programming Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU."— Presentation transcript:

1 CSE 331/ETE 332/EEE 332 Microprocessor and Assembly Language Programming Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU

2 Books Fundamentals of Digital Logic and Microcomputer Design – M. Rafiaquzzaman The Intel Microprocessors 8086/8088 …, and Pentium Pro Processors – Barry B. Brey Assembly Language Programming and Organization of the IBM PC – Ytha Yu, Charles Marut

3 Mark Distribution ItemsPercentage Attendance5% Quizzes25% Mid Term25% Lab10% Final35% Total100% and follow the corresponding link. There will be no makeup for quizzes or exams. For details please visit Best 3 out of 5

4 Assembly Language Programming

5 What is Microcomputer?

6 The Microprocessor and Its Architecture ALU (Arithmetic and Logic Unit) The Control Unit Registers HDD RAM Cache Memory Microprocessor R1 R3

7 The Programming Model Program visible registers – We can access via programs Program invisible registers – We can not access via programs

8 Registers 16 bit Segment registers

9 Example Data If AX = 20A2H then AH = 20H, AL = A2H In other words, if AH = 1CH and AL = A2H then AX = 1CA2H AH AL AX

10 The FLAGS register FLAGS indicate the condition of the MP Also control the operations FLAGS are upward compatible from 8086/8088 to Pentium/Pentium Pro Figure 2.2: The EFLAG and FLAG registers

11 The FLAGs Carry Flag – C – C = 1 if there is a carry out from the msb on addition – Or, there is a borrow into the msb on subtraction – Otherwise C = 0 – C flag is also affected by shift and rotate instructions C = 1, in this case

12 The FLAGs Parity Flag – P – P = 1 for even parity, if number contains even number of ones – P = 0 for odd parity, if odd number of ones P = 1 P = 0 Even number of ones Odd number of ones Definition changes from microprocessor to microprocessor

13 The FLAGs Zero Flag – Z – Z = 1 for zero result – Z = 0 for non-zero result Sign Flag – S – S = 1 if msb of a result is 1, means negative number – S = 0 if msb of a result is 0, means positive number

14 The FLAGs Trap Flag – T – Enables trapping through an on-chip debugging feature – T = 1 MP interrupts the flow of a program, i.e. debug mode is enabled – T = 0 debug mode is disabled Direction Flag – D – Selects increment/decrement mode of SI and/or DI registers during string instructions – D = 1, decrement mode, STD (set direction) instruction used – D = 0, increment mode, CLD (clear direction) instruction used

15 The FLAGs Overflow Flag – O – O = 1 if signed overflow occurred – O = 0 otherwise – Overflow is associated with the fact of range of numbers represented in a computer 8 bit unsigned number range (0 to 255) 8 bit signed number range (-128 to 127) 16 bit unsigned number range (0 to 65535) 16 bit signed number range ( to 32767)

16 Signed vs. Unsigned Overflow Let, AX = FFFFh, BX = 0001h and execute ADD AX, BX AX BX Unsigned interpretation – Correct answer is 10000h = – But this is out of range. – 1 is carried out of msb, AX = 0000h, which is wrong – Unsigned overflow occured Signed interpretation – FFFFh = -1, 0001h = 1, summation is -1+1 = 0 – Singned overflow did not occur

17 How instructions affect the flags? Every time the processor executes a instruction, the flags are altered to reflect the result Let us take the following flags and instructions Sign Flag – S Parity Flag – P Zero Flag – Z Carry Flag – C MOV/XCHG ADD/SUB INC/DEC NEG None All All except C All (C = 1 unless result is 0)

18 Example 1 Let AX = FFFFh, BX = FFFFh and execute ADD AX, BX FFFFh + FFFFh 1 FFFEh The result stored in AX is FFFEh = SPZCSPZC = 1 because the msb is 1 = 0 because the are 15 of 1 bits, odd parity = 0 because the result is non-zero = 1 because there is a carry out of the msb on addition

19 Example 2 Let AX = 8000h, BX = 0001h and execute SUB AX, BX 8000h h 7FFFh The result stored in AX is 7FFFh = SPZCSPZC = 0 because the msb is 0 = 0 because the are 15 of 1 bits, odd parity = 0 because the result is non-zero = 0 because there is no carry

20 Registers 16 bit Segment registers

21 Segment Registers 16 bit Segment registers ****** Segment 1 Segment 2 Segment n 0000h CS 8000h DS A000h SS

22 An Assembly Program #include void main () { int I, j ; ********* // comment ********* } Example 3-5 of Barry B. Brey’s book

23 An Assembly Program Cont. What is the content of BX? 00h 10h AX AH AL 10h 00h AAh DATA1 DATA2 DATA3 DATA4 AAh BX BH BL

24 Assembly Language Structure

25 An Assembly Program SMALL model allows one data segment and one code segment TINY model directs the assembler to assemble the program into a single segment DB for Define Byte (one single byte) DW for Define Word (two consecutive bytes) 10h 00h AAh DATA1 DATA2 DATA3 DATA4

26 Another Example

27 References Ch 6, Digital Logic and Microcomputer Design – by M. Rafiquzzaman Ch 2, Intel Microprocessors – by Brey Ch 5, Assembly Language Programming – by Charls Marut


Download ppt "CSE 331/ETE 332/EEE 332 Microprocessor and Assembly Language Programming Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU."

Similar presentations


Ads by Google