Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 1: Basic Concepts

Similar presentations


Presentation on theme: "Chapter 1: Basic Concepts"— Presentation transcript:

1 Chapter 1: Basic Concepts
Assembly Language for Intel-Based Computers, 4th edition Kip R. Irvine

2 Introduction 1.1 Context of assembly language
1.2 Virtual Machine Concept 1.3 Data representation 1.3.1 Binary numbers 1.3.2 Hexadecimal numbers 1.3.3 Arithmetic A. Introducing assembly language

3 1.1 Context of assembly language: Why study assembly language (ASM)?
To learn how high-level language (HLL) code gets translated into machine language Machine language: The language a particular processor understands Assembly language: machine-specific language with a one-to-one correspondence with the machine language for that computer

4 1.1 Context of assembly language: Example
High-Level Language: ; MOV AX, 10 ADD AX, 20 Assembly Language: Machine language: B8 000A 83 C014 op code Immediate operand

5 1.1 Context of assembly language: Why study assembly language (ASM)?
To learn the computer (i.e., architecture, hardware, operating system…) by direct access to memory, video controller, sound card, keyboard… by communicating with the operating system To speed up applications direct access to hardware (ex: writing directly to I/O ports instead of doing a system call) good ASM code is faster and smaller Avoid restrictions of high level languages

6 1.1 Context of assembly language: Problems with assembly language
Provides no structure Is not portable Applications can be very long “Hard” to read and understand Lots of detail required

7 1.2 Virtual Machine Concept
Virtual Machines Tanenbaum: Virtual machine concept Programming Language analogy: Each computer has a native machine language (language L0) that runs directly on its hardware A more human-friendly language is usually constructed above machine language, called Language L1 Programs written in L1 can run two different ways: Interpretation – L0 program interprets and executes L1 instructions one by one Translation – L1 program is completely translated into an L0 program, which then runs on the computer hardware

8 Translating Languages
1.2 Virtual Machine Concept Translating Languages English: Display the sum of A times B plus C. C++: cout << (A * B + C); Assembly Language: mov eax,A mul B add eax,C call WriteInt Intel Machine Language: A F E

9 Specific Machine Levels
1.2 Virtual Machine Concept Specific Machine Levels (descriptions of individual levels follow )

10 1.2 Virtual Machine Concept
High-Level Language Level 5 Application-oriented languages C++, Java, Pascal, Visual Basic . . . Programs compile into assembly language (Level 4)

11 1.2 Virtual Machine Concept
Assembly Language Level 4 Instruction mnemonics that have a one-to-one correspondence to machine language Calls functions written at the operating system level (Level 3) Programs are translated into machine language (Level 2)

12 1.2 Virtual Machine Concept
Operating System Level 3 Provides services to Level 4 programs Translated and run at the instruction set architecture level (Level 2)

13 Instruction Set Architecture
1.2 Virtual Machine Concept Instruction Set Architecture Level 2 Also known as conventional machine language Executed by Level 1 (microarchitecture) program

14 1.2 Virtual Machine Concept
Microarchitecture Level 1 Interprets conventional machine instructions (Level 2) Executed by digital hardware (Level 0)

15 1.2 Virtual Machine Concept
Digital Logic Level 0 CPU, constructed from digital logic gates System bus Memory Implemented using bipolar transistors

16 1.3 Data representation: Binary Numbers
Digital computers store information in binary Binary allows two states On yes true 1 Off no false 0 Each digit in a binary number is called a bit MSB – most significant bit LSB – least significant bit MSB LSB bit

17 1.3 Data representation: Data types
byte: 8 bits: 2 word: 16 bits or __ bytes: 32 4 double word: __ bits or __ bytes : 8 quad word: __ bits or __ bytes: 64

18 1.3 Data representation: Range of a unsigned number
Question: What is the range of numbers that can be represented with ? 1 bit? 2 bits? 4 bits? n bit?

19 1.3 Data representation: Integer Storage Sizes
Standard sizes:

20 1.3 Data representation: Numbering Systems
A number system of base n is a system that uses distinct symbols for n digits

21 1.3 Data representation: Numbering Systems
A written number is meaningful only with respect to a base To tell the assembler which base we use: Hexadecimal 25 is written as 25h Octal 25 is written as 25o or 25q Binary 1010 is written as 1010b Decimal 1010 is written as 1010 or 1010d

22 1.3 Data representation: Number systems (bases)
Number systems used Binary: The internal representation inside the computer. They may be represented in binary, octal, or hexadecimal. Decimal: The system people use. ASCII representations of numbers used for I/O: ASCII binary ASCII octal ASCII decimal ASCII hexadecimal

23 1.3 Data representation: Number systems (bases) Example

24 1.3 Binary numbers: Addition & Multiplication
Binary addition table Binary multiplication *

25 1.3 Binary numbers: Addition & Multiplication
Examples: b b b * 1101b b b b * b

26 1.3 Hexadecimal numbers: Addition & Multiplication
Hex addition and multiplication tables are large We can still do simple calculations by hand B852h Ah A65h * 100h ABCh B3h E F 0 h * 102h

27 1.3 Arithmetic: Converting to decimal
Binary to Decimal 1010b =1 * * * *20 =10 Hex to Decimal ABCh = 10 * * * = 10 * * * = = 2748

28 1.3 Arithmetic: Converting to decimal
Octal to Decimal 256o = 2 * * * 80 =174 Conclusion: (Number)n = (multiply each digit by an integer power of n)

29 1.3 Arithmetic: Conversion problems
1234 base or (1234)5=_________ 111010b = ________ 45677h = ________ 736.4o = ________

30 1.3 Arithmetic: Conversion from decimal
Decimal integer to Binary quotient remainder 54 = 27 * 2+ 0 27 = 13 * 2 + 1 13 = 6 * 2 +1 1 = 0 * 2 + 1 3 = 1 * 2 + 1 6 = 3 * 2 + 0

31 1.3 Arithmetic: Conversion from decimal
Decimal integer to Hex : 54= 3 * 3 = 0 * 3 6 h Decimal integer to octal 54 = 6 * 8+ 6 6 = 0 * 8 + 6 6 6 o

32 1.3 Arithmetic: Conversion from decimal
Decimal fraction to Binary (Octal, Hex) integer ( )10 = (0.1011)2 2 X 2 X

33 1.3 Arithmetic: Conversion from decimal
Conclusion a decimal integer to a base n representation successive division by n accumulation of the remainders a decimal fraction to a base n representation successive multiplication by n accumulation of the integer digits

34 1.3 Arithmetic: Conversion problems
(1234)10=(________)2 ( )10=(________)2 (1234)10=(________)8 (1234)10=(________)16

35 1.3 Arithmetic: Conversions: hex, octal and binary
Conversion between base 2 and base 8 = b = = 72o Conversion between base 2 and base 16 = b = = 3Ah Note: we often write binary numbers in hex: binary numbers can be very long it is easy to convert back and forth

36 1.3 Arithmetic: Conversion problems
Write ABCh in binary. Write b in hex. Write b in octal

37 1.3 Arithmetic: Signed numbers
Signed numbers: The number of bits must be fixed. In every case, the highest bit is the sign bit. 0 means + 1 means - Example: Unsigned number: 1101b = 13 Signed number: 1101b = ?

38 1.3 Arithmetic: Two’s complement
1101 b (signed binary number) b (reverse all bits) b (unsigned value = 3) - 3d = reversible One’s complement Two’s complement two’s complement of n = NOT(n) +1

39 1.3 Arithmetic: Practice problems
Find the 8 bit two’s complement representation of -2Ch Find the 8 bit two’s complement representation of 2Ch What is decimal representation of the two’s complement number ?

40 1.3 Arithmetic: Range of signed numbers
Two's complement: Sizes Signed byte: to +127 = Signed word: ,768 to +32,767 = Singed double word: ,147,483,648 to +2,147,483,647 = Comments: There is one more negative than positive value There are (about) half as many positive signed values as unsigned values

41 1.3 Arithmetic: Addition & Subtraction (signed)
Algorithm to add in signed decimal (sign and magnitude) If both numbers have the same sign Add the two magnitudes Prefix with the common sign else Subtract the number with smaller magnitude from the number with the larger magnitude Prefix with the sign of the number with the larger magnitude.

42 1.3 Arithmetic: Addition & Subtraction (signed)
Two's complement: Addition add two numbers including their sign bits discard any carry out of the sign position Example:

43 1.3 Arithmetic: Addition & Subtraction (signed)
Take the 2’s complement of the subtrahend (including the sign bit) Add it to the minuend (including the sign bit) Example: - 13 - 6

44 1.3 Arithmetic: Character Storage
Characters are stored as numbers Coding schemes ASCII (7 or 8 bit) EBCDIC (8 bit) Unicode (16 bit) ASCII Examples: “A” = 65d = 41h “a” = 97d = 61h “B” = 66d = 42h “b” = 98d = 62h “0” = 48d = 30h “1” = 49d = 31h “ “ = 32d = 20h “*” = 42d = 2Ah

45 A. Introducing Assembly Language: MASM Installation
Insert CD in CD-Rom Go to Desktop, select My Computer Select CD-Rom directory (\IRVINE) Double click “index.html” On the new screen, follow the links, install MASM615, sample program, link library etc.

46 A. Introducing Assembly Language: A simple Debug program
Assembler: converts programs from assembly language to machine language Store 10 into register AX MOV AX, 10 ADD AX, 20 SUB AX, 5 MOV [130], AX INT 20 Store AX in memory location 130h Terminate program

47 A. Introducing Assembly Language: Running a Debug program
Select Start | Programs (| Accessories) |MS-DOS (Command) Prompt Type Debug Type A 100, type the program, press return Type R (registers) to display the registers Type T (trace) as needed to step through program Type G (go) to execute the rest of program Type D to display locations 130 and 131 Type Q (quit) to exit Debug

48 A. Introducing Assembly Language: Debug register display
Contents of AX (hex) -R AX= BX=0000 CX=0000 SP=FFEE ... DS=1FA6 ES=1FA6 SS=1FA6 CS= FA6: D SUB AX, 0005 Next instruction

49 A. Introducing Assembly Language: Debug memory display
-D FA6: B 00 Contents of locations 130 and 131. Namely 002Bh Note: The individual bytes in binary are reversed when stored in memory Example: would be stored in memory as

50 A. Introducing Assembly Language: Debug disassembly
-U 100 1FA6:0100 B MOV AX, FA6: ADD AX, FA6: D SUB AX, FA6:0109 A MOV [0130],AX 1FA6:010C CD INT FA6:010E 1F POP DS Memory locations Machine code Disassembled assembly code


Download ppt "Chapter 1: Basic Concepts"

Similar presentations


Ads by Google