Presentation is loading. Please wait.

Presentation is loading. Please wait.

ACOE2511 ACOE251/AEEC335 -Assembly Language for the 80X86/Pentium Intel Microprocessors Lecturer: Dr. Konstantinos Tatas.

Similar presentations


Presentation on theme: "ACOE2511 ACOE251/AEEC335 -Assembly Language for the 80X86/Pentium Intel Microprocessors Lecturer: Dr. Konstantinos Tatas."— Presentation transcript:

1 ACOE2511 ACOE251/AEEC335 -Assembly Language for the 80X86/Pentium Intel Microprocessors Lecturer: Dr. Konstantinos Tatas

2 ACOE2512 Useful Information Instructor: Lecturer K. Tatas –FRC building room 107 (subject to change) –Office hours: TBA –E-mail: com.tk@fit.ac.cycom.tk@fit.ac.cy –http://staff.fit.ac.cy/com.tkhttp://staff.fit.ac.cy/com.tk Prerequisites: ACOE161, ACSC182 (CoE) Prerequisites: AEEE203, AEEE200 (EE) Lectures/week: 3 ECTS: 5

3 ACOE2513 COURSE OBJECTIVES introduce students to assembly language programming. By the end of the course students should be able to –write, test and debug programs in x86 assembly language using assembler, debug and emulation software –relate x86 assembly language with other processor assembly languages and high level languages.

4 ACOE2514 Course Outline Introduction to Assembly Language: Computer organization – Number and character representation - IBM PC programming model Directives - The MOV instruction – addressing modes Arithmetic instructions Logic, shift and rotate instructions Interrupts, DOS and BIOS The processor status and flags register Flow control instructions The stack - introduction to procedures Software constructs Arrays - addressing modes revisited

5 ACOE2515 Course Evaluation Exam: 60% Coursework: 40% –Test: 20% –Assignment 20%

6 ACOE2516 Course pre-requisites Digital Logic, Computer Programming Gates, flip-flops, truth tables, timing diagrams, etc. –Computer number systems decimal, hexadecimal, binary, octal conversions, logical operations, computer arithmetic –Computer data formats ASCII, BCD

7 ACOE2517 ASSEMBLY LANGUAGE One-to-one relationship with machine language unlike high-level languages –Many lines of code even for simple programmes Requires at least some knowledge of the microprocessor architecture, memory structure and operating system Code not portable (source files will not run on a different architecture microprocessor)

8 ACOE2518 Why Learn/Use Assembly Language Efficient use of the main memory –Less memory required –Programs execute faster Avoid redundant instructions inserted by compilers. Direct access to the hardware of the computer, –Usually not supported by compilers. Access to the microprocessor’s internal control registers. For some processors such as DSP and micro-controllers there is no (or limited) support by high level languages Embedded systems have tight constraints on performance, memory size and power consumption

9 ACOE2519 Revision on Basic Computer Architecture

10 ACOE25110 Revision on Numbering Systems Decimal - Binary - Hex conversion Signed Numbers –Signed Magnitude – One’s Complement –Two’s Complement –Hex signed numbers: 15’s and 16’s Complement Arithmetic Operations –Binary: Addition – Subtraction – Multiplication – Division –Hex: Addition – Subtraction – Multiplication – Division Logic Operations on bit vectors –AND, OR, XOR, NOT Ranges: –Unsigned byte: 0 to 255Signed byte: -128 to +127 –Unsigned word: 0 to 65,536Signed word: -32,768 to +32,767 –Unsigned doubleword: 0 to 4,294,967,295 –Unsigned quadword: 0 to 18,446,744,073,709,551,615

11 ACOE25111 Conversion between number systems A.Binary to Decimal B.Decimal to Binary C.Hexadecimal to Decimal D.Decimal to Hexadecimal E.Binary to Hex F.Hex to Binary

12 ACOE25112 Number Conversion Decimal to Binary 25 to binary: Quotient | Remainder

13 ACOE25113 Number Conversion II Binary to Decimal

14 ACOE25114 Hexadecimal System Hexadecimal System – Base 16 Used for representing binary numbers Example: 100010010110 in hex is 896H The hex system has 16 digits: 0 – 9, A, B, C, D, E and F.

15 ACOE25115 Decimal, Binary and Hex DecimalBinaryHEX 000000 100011 200102 300113 401004 501015 601106 701117 DecimalBinaryHEX 810008 910019 101010A 111011B 121100C 131101D 141110E 151111F

16 ACOE25116 Number Conversion III Binary to Hex: –Start from the right and group 4 bits at a time. –Replace each 4-bit binary number with its hex equivalent. Example: 100111110101 to hex –Group bits: 1001 1111 0101 –Replace hex: 9 F 5 Therefore: 100111110101 = 9F5 in hex.

17 ACOE25117 Number Conversion IV Hex to Binary: –Each hex digit is replaced with its 4-bit equivalent. –Leading zeros are dropped. Example: 29B to binary –2 9 B –0010 1001 1011 29B = 100011011 (dropping leading zeroes)

18 ACOE25118

19 ACOE25119 Representing Positive and Negative Numbers in Hex Positive numbers - straight conversion to hex Negative numbers are stored in two's complement form To get the two's complement form of a number in hex: –First:Represent the number as if it were positive –Second:Subtract it from FF(byte) or FFFF(word) –Third: Add 1 Examples: -97 as a word is FFFF -0061 FF9E + 1 FF9F = -97 -97 as a byte is FF -61 9E + 1 9F = - 97

20 ACOE25120 Interpreting Signed and Unsigned Bytes and Words in Memory as Decimal Numbers Unsigned –Straight translation from binary or hex to decimal Signed numbers –First determine the sign of the number by looking at its MSB. If its 0, its positive and you can do a straight translation from binary or hex to decimal –If its MSB is a 1, its negative and you must Re-complement it! –Since everything you see in memory will be expressed in hexadecimal, you won't "see" the MSB. Instead, you will see a hex digit. Therefore, if the first hex digit of a signed word or a byte is 0 to 7, the number is positive. If the first hex digit of a signed word or a byte is 8 to F, the number is negative. Why?

21 ACOE25121 Homework - Number System Review Conversion: 1. Convert from decimal to binary a. 43b. 167 2. Convert from binary to decimal a. 1101100bb. 1100011b 3. Convert from decimal to hexadecimal a. 6242b. 12321 4. Convert from hexadecimal to decimal a. 4BFhb. A2F7h 5. Convert from binary to hexadecimal a. 110010011110bb. 100001011b 6. Convert from hexadecimal to binary a. FADhb. 265Chc. BE98h

22 ACOE25122 Character Representation Code chosen for IBM PC is the ASCII code –7 bit code –2 7 or 128 possible values –stored in a byte 95 ASCII codes are printable (32 to 126) 0 to 31 and 127 are used for control purposes IBM PC uses an extended character set using an 8 bit code thus in can represent 2 8 or 256 possible values ASCII keyboard –Each key pressed is stored in ASCII code –Today on IBM PC, each key is assigned a unique number called a scan code to handle the many control and function keys in addition to the ASCII character keys

23 ACOE25123 ASCII Codes - Printable Characters 20 Space 21 ! 22 ” 23 # 24 $ 25 % 26 & 27 ’ 28 ( 29 ) 2A * 2B + 2C, 2D - 2E. 2F / 30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 7 38 8 39 9 3A : 3B ; 3C < 3D = 3E > 3F ? 40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G 48 H 49 I 4A J 4B K 4C L 4D M 4E N 4F O 60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g 68 h 69 i 6A j 6B k 6C l 6D m 6E n 6F o 70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w 78 x 79 y 7A z 7B { 7C | 7D } 7E ~ 7F Del 50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W 58 X 59 Y 5A Z 5B [ 5C \ 5D ] 5E ^ 5F _

24 ACOE25124 Examples How many bytes are required to represent the following data: –Unsigned number 92d –Unsigned number 313d –Signed number +212d –Unsigned number 100100101b –72H –2A4H –HAVE A NICE DAY Represent the above data in hexadecimal form

25 ACOE25125 Homework: Data Representations Set 1 Problems Note: Express all answers to problems 1-9 in HEXADECIMAL 1. How do you represent 221 as an unsigned byte? ___________ 2. How do you represent 110 as a signed byte? ___________ 3. How do you represent -92 as a signed byte? ___________ 4. How do you represent 62385 as an unsigned word? _______ 5. How do you represent 1600 as a signed word? ___________ 6. How do you represent -160 as a signed word? _________ 7. How do you represent +7523 as a character string?_________ 8. How do you represent -612 as a character string? _______ 9. How do you represent OOPS! as a character string? _______


Download ppt "ACOE2511 ACOE251/AEEC335 -Assembly Language for the 80X86/Pentium Intel Microprocessors Lecturer: Dr. Konstantinos Tatas."

Similar presentations


Ads by Google