1 Chapter 1: Introduction Appendix A: Binary and Hexadecimal Tutorial Assembly Language for Intel-Based Computers, 3rd edition Kip R. Irvine.

Slides:



Advertisements
Similar presentations
Assembly Language for Intel-Based Computers, 4 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify and.
Advertisements

Lab6 – Debug Assembly Language Lab
Data Representation Computer Organization &
Data Representation COE 205
Assembly Language for Intel-Based Computers, 4th Edition
Assembly Language for Intel-Based Computers, 5 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify.
Assembly Language for Intel-Based Computers, 5 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify.
1 Introduction Chapter 1 n What is Assembly Language? n Data Representation.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#1) By Dr. Syed Noman.
Number Systems Computer Science 210 Computer Organization.
Assembly Language for Intel-Based Computers, 5th Edition
Assembly Language for Intel-Based Computers, 5 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify.
Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify and copy this slide show for your personal use, or for.
Computers Organization & Assembly Language
CSU0014 Assembly Languages Homepage: Textbook: Kip R. Irvine, Assembly Language for Intel-Based Computers,
Summer 2014 Chapter 1: Basic Concepts. Irvine, Kip R. Assembly Language for Intel-Based Computers 6/e, Chapter Overview Welcome to Assembly Language.
Assembly Language for x86 Processors 7th Edition
ACOE2511 ACOE251/AEEC335 -Assembly Language for the 80X86/Pentium Intel Microprocessors Lecturer: Dr. Konstantinos Tatas.
Binary Arithmetic & Data representation
Chapter 1: Basic Concepts
1 Introduction Chapter 1 n What is Assembly Language? n Data Representation.
ICS312 Set 1 Representation of Numbers and Characters.
Assembly Language for x86 Processors 7 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify and copy this.
Data Representation Dr. Ahmed El-Bialy Dr. Sahar Fawzy.
CPU Internal memory I/O interface circuit System bus
Chapter 19 Number Systems. Irvine, Kip R. Assembly Language for Intel-Based Computers, Translating Languages English: Display the sum of A times.
ACOE2511 Assembly Language for the 80X86/Pentium Intel Microprocessors Lecturer: Dr. Konstantinos Tatas.
Computer Math CPS120 Introduction to Computer Science Lecture 4.
Irvine, Kip R. Assembly Language for Intel-Based Computers 6/e, Signed Integers The highest bit indicates the sign. 1 = negative, 0 = positive.
Computer Organization and Assembly Languages 2007/11/10
Preliminary to Assembly Language Programming CE 140 A1/A2 28 June 2003.
1 Chapter 1: Basic Concepts Assembly Language for Intel-Based Computers, 4th edition Kip R. Irvine 9/6/2003.
CS2100 Computer Organisation
Data Representation COE 308 Computer Architecture
Computer Science 210 Computer Organization
Computer Architecture and Number Systems
Data Representation ICS 233
Lec 3: Data Representation
Assembly Language for x86 Processors 6th Edition
Assembly Language (CSW 353)
Digital Systems and Number Systems
Data Representation Binary Numbers Binary Addition
Integer Real Numbers Character Boolean Memory Address CPU Data Types
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
CHAPTER 1 INTRODUCTION NUMBER SYSTEMS AND CONVERSION
Microprocessor Systems Design I
Morgan Kaufmann Publishers
Microprocessor Systems Design I
CSE 102 Introduction to Computer Engineering
Number Systems.
Microprocessor Lab CSL1543 0:0:2
University of Gujrat Department of Computer Science
CS1010 Programming Methodology
Introduction to Assembly Language
Binary – Octal - Hexadecimal
Data Representation COE 301 Computer Organization
Computer Science 210 Computer Organization
Topic 3 Number Representations and Computer Arithmetics
Number Systems Lecture 2.
Digital Systems and Binary Numbers
Computer Organization and Assembly Language
University of Gujrat Department of Computer Science
Microprocessor and Assembly Language
Data Representation ICS 233
CISC101 Reminders Labs start this week. Meet your TA! Get help with:
Networks & I/O Devices.
Part I Data Representation and 8086 Microprocessors
Data Representation COE 308 Computer Architecture
Presentation transcript:

1 Chapter 1: Introduction Appendix A: Binary and Hexadecimal Tutorial Assembly Language for Intel-Based Computers, 3rd edition Kip R. Irvine

Introduction  1.1 Context of assembly language (Important: Read this section!)  1.2 Data representation  A.1 Binary numbers  A.2 Hexadecimal numbers  A.3 Arithmetic  1.3 Introducing assembly language

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

1.1 Context of assembly language: Example High-Level Language: ; Machine language: B MOV AX, 10 ADD AX, 20 Assembly Language: Immediate operand op code

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

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

1.2 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 ff on on off bit

1.2 Data representation: Data types  byte: 8 bits:  word: 16 bits or __ bytes:  double word: __ bits or __ bytes :  quad word: __ bits or __ bytes:

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

1.2 Data representation: Range of the data types  byte: 0 to = 255  word: 0 to = 64k - 1 = 65,535  double word: 0 to  quad word: 0 to Unsigned integers:

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

 A written number is meaningful only with respect to a base 1.2 Data representation: Numbering Systems  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

1.2 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

1.2 Data representation: Number systems (bases) Example

A.1 Binary numbers : Addition & Multiplication  Binary multiplication *  Binary addition table

A.1 Binary numbers : Addition & Multiplication  Examples: b 1110b b * 1101b  b b b * 1111b

A.2 Hexadecimal numbers : Addition & Multiplication  Hex addition and multiplication tables are large  We can still do simple calculations by hand B852h 23Ah + 5A65h * 100h ABCh 2B3h + E F 0 h * 102h

A.3 Arithmetic: Converting to decimal  Binary to Decimal 1010b =1 * * * *10 0 =10  Hex to Decimal ABCh = 10 * * * 16 0 = 10 * * * 1 = = 2748

A.3 Arithmetic: Converting to decimal  Octal to Decimal 256o = 2 * * * 8 0 =174 Conclusion: (Number) n =  (multiply each digit by an integer power of n)

A.3 Arithmetic: Conversion problems  1234 base 5 or (1234) 5 =_________  b = ________  45677h = ________  736.4o = ________

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

A.3 Arithmetic: Conversion from decimal  Decimal integer to Hex :  Decimal integer to octal 54 = 6 * = 0 * o 54= 3 * = 0 * h

 Decimal fraction to Binary (Octal, Hex) A.3 Arithmetic: Conversion from decimal ( ) 10 2X X X X = (0.1011) integer

A.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

A.3 Arithmetic: Conversion problems  (1234) 10 =(________) 2  ( ) 10 =(________) 2  (1234) 10 =(________) 8  (1234) 10 =(________) 16

A.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

A.3 Arithmetic: Conversion problems  Write ABCh in binary.  Write b in hex.  Write b in octal

A.3 Arithmetic: Comments  See appendix A for more information.  It is EXTREMELY important to get good at hex and binary –conversion –addition.

A.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 = ?

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

A.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 ?

A.3 Arithmetic: Range of signed numbers  Two's complement: Sizes Signed byte: -128 to +127 = Signed word: -32,768 to +32,767 = Singed double word: -2,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

A.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.

A.3 Arithmetic: Addition & Subtraction (signed) Two's complement: 1) add two numbers including their sign bits 2) discard any carry out of the sign position  Addition Example:

A.3 Arithmetic: Addition & Subtraction (signed) Example:  Subtraction 1) Take the 2’s complement of the subtrahend (including the sign bit) 2) Add it to the minuend (including the sign bit)

A.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

1.3 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 MASM613, sample program, link library etc.

 Select Start | Programs (| Accessories) |MS-DOS (Command) Prompt  Type edit autoexec.bat  Add the following commands in the file: SET HELPFILES=c:\masm613\help\*.hlp PATH=c:\masm613\bin;c:\masm613\binr;%PATH%  Save and Exit edit  Type autoexec 1.3 Introducing Assembly Language: Setup System Environment

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

1.3 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

1.3 Introducing Assembly Language: Debug register display Next instruction Contents of AX (hex)  -R AX=0030 BX=0000 CX=0000 SP=FFEE... DS=1FA6 ES=1FA6 SS=1FA6 CS= FA6:0106 2D0500 SUB AX, 0005

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

1.3 Introducing Assembly Language: Debug disassembly  -U 100 1FA6:0100 B81000 MOV AX, FA6: ADD AX, FA6:0106 2D0500 SUB AX, FA6:0109 A33001 MOV [0130],AX 1FA6:010C CD20 INT 20 1FA6:010E 1F POP DS Memory locations Machine code Disassembled assembly code

 CSCE 380  Department of Computer Science and Computer Engineering  Pacific Lutheran University  2/2/2000