The Intel Microprocessors -

Download Report

Transcript The Intel Microprocessors -

Chapter 2
Introduction to Number System & Data
Formats
Chapter 2:
• (-133)*33+44*14.5
• How to represent these data?
• How to calculate them?
• How about other characters?
Chapter 2:
Introduction to Number System &
Data Formats
• 2.1 Number System (数制)
• 2.2 Computer Data Formats
2.1 Number System (数制)
2.1 Number System(数制)
•
•
•
•
•
•
•
2.1.1 Digits (数)
2.1.2 Positional Notation ( 位计数法)
2.1.3 Conversion to Decimal
2.1.4 Converting From Decimal
2.1.5 Binary-Coded Hexadecimal
2.1.6 Operation of Binary
2.1.7 Three Forms of Binary Data
2.1.1 Digits (数)
2.1.1 Digits (数)
• A. Decimal(十进制) (0—9)
• B. Binary (0----1)
• C. Octal(八进制) (0—7)
• D. Hexadecimal(十六进制)
• (0—9,A,B,C,D,E,F)
2.1.1 Digits (数)
• Example:
A base 13(以13为基,13进制)number
contains 13 digits:
0—9,A(10),B(11),C(12)
2.1.2 Positional Notation ( 位计数法)
2.1.2 Positional Notation ( 位计数法)
• Example 1:
Decimal 132
1(百位)
3(十位) 2(个位)
hundreds tens
units
position
position position
power(幂) 102
101
100
weight(权)100
10
1
In a base N number system, the radix is N(基数)
and the exponent (i) (指数) means the
position.
2.1.2 Positional Notation ( 位计数法)
• Example 2:
Binary 101
1
0
1
power(幂) 22
21
20
weight(权)4
2
1
Numeric value 1* 22 + 0* 21 + 1* 20 =5
In a base 2 number system, the radix is
2(基数) and the exponent (i) (指数)
means the position.
2.1.2 Positional Notation ( 位计数法)
• Special example
Binary 1111
1
1
power(幂) 23
22
weight(权) 8
4
Numeric value 8+4+2+1
1
21
2
=15
0-15 It can represent 16 different
numbers.
1
20
1
2.1.2 Positional Notation ( 位计数法)
• Example 3:
Decimal 1.025
1
.
0
2
5
power(幂) 100
10-1
10-2
10-3(Ni)
weight(权)1
0.1
0.01 0.001
In a base N number system, the radix is N and
the exponent (i) (指数) means the position. If
the position is right to the point(小数点),the
power is negative (N-i).
2.1.2 Positional Notation ( 位计数法)
• Summarize
– A base N number system
Xm-1Xm-2Xm-3……X0 . Y1Y2Y3……Yn
– Numeric value(数值):
Xm-1* Nm-1+Xm-2 * Nm-2+ ……X0 * N0
+Y1 *N-1 +Y2 *N-2 + …… Yn * N-n
2.1.3 Conversion to Decimal
2.1.3 Conversion to Decimal
• Summarize
– A base N number system
Xm-1Xm-2Xm-3……X0 . Y1Y2Y3……Yn
– Decimal
Xm-1* Nm-1+Xm-2 * Nm-2+ ……X0 * N0
+Y1 *N-1 +Y2 *N-2 + …… Yn * N-n
2.1.3 Conversion to Decimal
• Example:
• Hexadecimal:
E6A.C2
• Decimal:
E*162+6*161+6*160+C*16-1+2*16-2
=14*162+6*161+6*160+12*16-1+2*16-2
=3690+0.75+0.0078125
=3690.7578125
2.1.4 Converting From Decimal
2.1.4 Converting From Decimal
• Summarize
– A base N number system
Xm-1Xm-2Xm-3……X0 . Y1Y2Y3……Yn
– Decimal
Xm-1* Nm-1+Xm-2 * Nm-2+ ……X0 * N0
+Y1 *N-1 +Y2 *N-2 + …… Yn * N-n
2.1.4 Converting From Decimal
• From conversion to decimal we can
assume that if we can figure out how
many Ni are there in a decimal number,
we may convert it back to a base N
number system.
2.1.4 Converting From Decimal
• Principle A:
– To convert a decimal whole
number portion(整数部分) to
another number system, divide
by the radix N (基数) and save
the remainders(余数).
2.1.4 Converting From Decimal
• Principle A:
• Step 1: Divide the decimal number
by the radix (number base).
• Step 2: Save the remainder (first
remainder is the least significant
digit--最先得到的余数是最低有效位)
• Step 3: Repeat steps 1 and 2 until
the quotient(商) is zero.
2.1.4 Converting From Decimal
• Principle A:
• Example convert decimal number 14 to a
base 4 number system
4
14
remainder = 2 (least significant)
4
3
remainder = 3
0
result = 32
2.1.4 Converting From Decimal
• Principle A:
• Example convert decimal number 14 to a
base 2 number system
2
14
remainder = 0 (least significant)
2
7
remainder = 1
2
3
remainder = 1
2
1
remainder = 1
0
result = 1110
2.1.4 Converting From Decimal
• Principle B:
– To convert a decimal fractional
portion(小数部分) to another
number system, multiply it by
the radix (基数) and the whole
number portion(整数部分) of the
result is saved as a significant
digit of the result.
2.1.4 Converting From Decimal
• Principle B:
• Step 1: Multiply the decimal fraction by
the radix (number base)
• Step 2: Save the whole number portion of
the result (even if zero) as a digit. The
first result is written immediately to the
right of the radix point (得到的第一个整数
写在最靠近小数点左边的位置).
• Step 3: Repeat 1 and 2 until the fraction
part of step 2 is zero
2.1.4 Converting From Decimal
• Principle B:
• Example convert decimal number 0.125 to
a base 4 number system
.125
*
4
0.5 digit is 0
0.5
*
4
2.0
digit is 2 result is 0.02
2.1.4 Converting From Decimal
• Principle B:
–Note: Some numbers are
never-ending . That is, a zero
is never a remainder.
– For example converting 0.15
to a base 4 number system.
–Why ?
2.1.4 Converting From Decimal
• Example: convert 0.15 to a base 4
number system.
*
.15
4
0.6
*
digit is 0
0.4
4
1.6
digit is 1
0.6
*
4
2.4
digit is 2
result is 0.0212……
2.1.4 Converting From Decimal
• 0.0212……
– Numeric value:
– 0*4-1 + 2*4-2 + 1*4-3 + 2*4-4
– =0 + 0.125 + 0.015625 + 0.0078125
– = 0.1484375
– ≈ 0.15
2.1.5 Binary-Coded Hexadecimal
2.1.5 Binary-Coded Hexadecimal
• How many different numbers can 4
binary numbers form ?
2.1.5 Binary-Coded Hexadecimal
• BCH code
hexadecimal digit
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
9E = 1001 1110
BCH code
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
BCD
2.1.5 Binary-Coded Hexadecimal
• Principle:
• We just use 4-bit binary to replace
each hexadecimal digit and write
down them in the same sequence.
Note that there must be a space
between each 4-bit binary.
2.1.5 Binary-Coded Hexadecimal
• Example:
Hexadecimal
BCH
:2
A
C . 5
:0010 1010 1100 . 0101
BCH
Hexadecimal
:0010 1110 . 0101 1011
: 2
E . 5
B
2.1.6 Operation of Binary
All the numbers are unsigned.
2.1.6 Operation of Binary
•
•
•
•
•
•
Add Operation Rules:
0+0 = 0
0+1 = 1
1+0 = 1
1+1 = 0
submit(进位) 1
1+1+1 = 1 submit(进位) 1
2.1.6 Operation of Binary
• Add Operation
• 1101 + 1011
1111
1101
+ 1011
11000
submit bit
add bit
added bit
result
2.1.6 Operation of Binary
•
•
•
•
•
Subtract Operation Rules
0-0 = 0
1-1 = 0
1-0 = 1
0-1 = 1 borrow(借位) 1
2.1.6 Operation of Binary
• Subtract Operation
• 11000100 – 00100101
•
111111
(借位)
1 0 1 1 1 0 1 (借位后的被减数)
11000100
(被减数)
-00100101
(减数)
10011111
2.1.6 Operation of Binary
•
•
•
•
•
Multiply Operation Rules
0*0 = 0
0*1 = 0
1*0 = 0
1*1 = 1
2.1.6 Operation of Binary
• Multiply Operation 1111 * 1101
1111
* 1101
1111
0000
1111
1111
11000011
2.1.6 Operation of Binary
• Divide Operation
101
000111
100011
101
01111
101
101
101
0
101
101
100101
101
10001
101
111
101
10
2.1.6 Operation of Binary
• All the numbers are unsigned , so they
are positive.
• How can we represent negative number
in binary in a computer?
2.1.7 Three Forms of Binary Data
2.1.7 Three Forms of Binary Data
• Signed data can be represented in
three forms.
• Original binary data (原码)
• Radix-1 complements (反码)
• Radix complements (补码)
• We use byte-sized data in our examples.
2.1.7 Three Forms of Binary Data
• Original binary data (原码)
•0 0 0 0 0 0 0 0
0 positive
1 negative
Numerical value (-127~+127)
105 ---- 0 1101001
-105 ---- 1 1101001
2.1.7 Three Forms of Binary Data
• Original binary data (原码)
105 ---- 0 1101001
-105 ---- 1 1101001
•
•
•
•
•
Radix-1 complements (反码)
105 ---- 0 1101001
-105 ---- 1 0010110
0
---- 0 0000000
-0 ---- 1 1111111
2.1.7 Three Forms of Binary Data
•
Radix complements (补码)
反码radix-1 complement
105 0 1101001
-105 1 0010110
0
0 0000000
-0
1 1111111
补码radix complement
0 1101001
1 0010111
0 0000000
0 0000000
2.1.7 Three Forms of Binary Data
• Example: -8
• +8=00001000
•
1000 (write number to first 1)
•
1111
(invert the remaining bits)
• -8= 1111 1000
2.1.7 Three Forms of Binary Data
• -25
• +25 = 0001 1001
• -25(补)= 1110 0111
• -39
• +39 = 0010 0111
• -39 (补)= 1101 1001
2.1.7 Three Forms of Binary Data
• Negative signed numbers are stored in the
two’s complement form. (负数以2进制的补
码形式存储)
• A simpler technique for two’s implement:
– Write the number exactly as it appears from
right to left until the first one. Write down the
first one, and then invert all the remaining bits.
2.1.7 Three Forms of Binary Data
• If we use radix complement to
represent a negative data, we can
change subtract operation to add
operation.
Z = X – Y equal to Z补 =X补+ (-Y)补
2.1.7 Three Forms of Binary Data
• Z = X – Y equal to Z补 =X补+ (-Y)补
• Example 1: 64 -10
64-10 = 64补+ (-10)补
64补= 01000000 (-10)补=11110110
01000000
+
11110110
(right)
100110110 result = 00110110 = 54
Nature
lost
2.1.7 Three Forms of Binary Data
• Example 2: 34-68
• 34-68 = 34补+( -68)补
• 34补=00100010 ( -68)补=10111100
00100010
+ 10111100
11011110
result = 11011110
= -34(right)
11011110(补)= 11011101(反) = - 00100010(原)
=-34
-1
• 10001101(补)
• = 10001100(反) = - 01110011(原)
• =-115
2.1.7 Three Forms of Binary Data
• You can turn to the reference book
“Microcomputer Principle and
Application”《微机原理和应用》 page 9
for details.
2.1.7 Three Forms of Binary Data
• Z = X – Y equal to Z补 =X补+ (-Y)补
• Example 1: 64 -10
64-10 = 64补+ (-10)补
64补= 01000000 (-10)补=11110110
01000000
+
11110110
(right)
100110110 result = 00110110 = 54
Nature
lost
2.1.7 Three Forms of Binary Data
• Example 3: 127 +8
127= 01111111 8=00001000
01111111
+ 00001000
10000111 result = 135
Overflow
Error!
• 加法运算溢出
– 当次高位向最高位产生进位,而最高位不向
前产生进位时,O = 1(溢出)
– 当次高位向最高位无进位,而最高位向前有
进位时,O = 1(溢出)
– 当最高位向前有进位时,C=1,否则C=0
–
0 1 1 0 0 1 0 0
–+0 1 1 0 0 1 0 0
–
1 1 0 0 1 0 0 0
最高位
次高位
O=1 C=0
• 加法运算溢出
– 当次高位向最高位产生进位,而最高位不向
前产生进位时,O = 1(溢出)
– 当次高位向最高位无进位,而最高位向前有
进位时,O = 1(溢出)
– 当最高位向前有进位时,C=1,否则C=0
–
1 0 1 0 1 0 1 1
–+1 1 1 1 1 1 1 1
– 11 0 1 0 1 0 1 0
O=0 C=1
2.2 Computer Data Formats
2.2 Computer Data Formats
•
•
•
•
•
•
2.2.1 ASCII Data
2.2.2 BCD Data
2.2.3 Byte-Sized Data
2.2.4 Word-Sized Data
2.2.5 Doubleword-Sized Data
2.2.6 Real Numbers
2.2.1 ASCII Data
2.2.1 ASCII Data
• ASCII (American Standard Code for
Information Interchange) represent
alphanumeric characters in the memory
of a computer system.
• ASCII use 8-bit(00H—FFH) represent
alphanumeric characters in computer.
2.2.1 ASCII Data
• Table 1-7 on page 35 shows what is
00H—7FH representing.
• Table 1-8 on the same page shows
extended ASCII code. Including what is
8FH—FFH representing.
• How to represent characters in other
countries?
2.2.1 ASCII Data
• Many Windows-based applications use the
Unicode system to store alphanumeric
data and thus resolve the problem.
• Unicode system use 16-bit data to
represent character.
• 0000H—00FFH is the same as ASCII code
• 0100H—FFFFH is used to store other
special characters from other countries.
2.2.2 BCD Data
2.2.2 BCD Data
• BCD code
decimal digit
0
1
2
3
4
5
6
7
8
9
BCD code
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
• 1MB 1M BYTE
8 Bit
8 Bit
2.2.2 BCD Data
• BCD data has two forms. One is packed and
the other is unpacked.
• In all case, store the least-significant data
first.(规则:先存储最低有效位)
• Packed BCD data are stored as two digits per
byte
37-----0011 0111-----37H
• Unpacked BCD data are stored as one digit
per byte
37-----0000 0011 0000 0111 -----0307H
2.2.3 Byte-Sized Data
2.2.3 Byte-Sized Data
• The weights of each binary-bit position
• Unsigned byte
128 64
32
16
8
4
2
1
-128 64 32 16
8
4
2
1
• Signed byte
2.2.3 Byte-Sized Data
• One byte contains 8 bits.
• Byte-sized data are stored as unsigned
and signed integers.
• Unsigned integers range in value from
00H to FFH (0-255)
• Signed integers range in value from
-128 to +127.
2.2.3 Byte-Sized Data
• Example of defining a byte-sized data:
– unsigned
–
–
–
–
–
–
0000 FE
0001 87
0002 47
Signed
0003 9C
0004 64
Store
address
DATA1 DB 254
DATA2 DB 87H
DATA3 DB 71
DATA4 DB -100
DATA5 DB +100
Store value
All the data
formats are
based on a
8088
microproces
sor, whose
data width
is 8 bits.
2.2.4 Word-Sized Data
2.2.4 Word-Sized Data
• One word contains 16 bits. That is it is
formed with two bytes of data.
• Word-sized data are stored as unsigned
and signed integers. The difference
between them is the weight of the
highest position. For unsigned integers
it is 32768 while signed is -32768.
2.2.4 Word-Sized Data
• In Intel microprocessor, the least significant
byte is stored in the lowest-numbered
memory location, and the most significant
byte is stored in the highest-numbered
memory location.
Memory width :
8 bit
• DATA DW 1234H
3002H
3001H
3000H
2FFFH
12H
34H
2.2.4 Word-Sized Data
• Example:
• Unsigned
•
•
•
•
•
•
0000 09F0 DATA1 DW 2544
0002 87AC DATA2 DW 87ACH
0004 02C6 DATA3 DW 710
Signed
0006 CBA8 DATA4 DW -13400
0008 00C6 DATA5 DW +198
2.2.5 Doubleword-Sized Data
2.2.5 Doubleword-Sized Data
• One doubleword contains 32 bits. That
is it is formed with two words or four
bytes of data.
• Doubleword-sized data are stored as
unsigned and signed integers. The
difference between them is the weight
of the highest position.
2.2.5 Doubleword-Sized Data
• In Intel microprocessor, the least significant
byte is stored in the lowest-numbered
memory location, and the most significant
byte is stored in the highest-numbered
memory location.
• DATA DD 12345678H
DATA DD 5678H ???
3003H
12H
3002H
3001H
3000H
34H
56H
78H
2.2.5 Doubleword-Sized Data
• Example :
• Unsigned
•
•
•
•
•
•
0000 0003E1C0
0004 87AC1234
0008 00000046
Signed
000C FFEB8058
0010 000000C6
DATA1 DD 254400
DATA2 DD 87AC1234H
DATA3 DD 70
DATA4 DD -1343400
DATA5 DD +198
2.2.5 Doubleword-Sized Data
• Note:Byte-sized, word-sized,
doubleword-sized data are
standard form. We can use DB to
define those nonstandard data.
• Example : Define 123456H
•
DB 56H,34H,12H
•
DD 123456H
What is the
difference?
2.2.6 Real Numbers
2.2.6 Real Numbers
• In high-level language we often
encounter number like 24.5. We call it
real number or floating-point
number(浮点数).
• As we have noticed, 24.5 (2.45*101)
contained two parts: significand (尾数)
and exponent (指数).
• 4-byte real number is called singleprecision and 8-byte double-precision.
2.2.6 Real Numbers
• Single-precision using a bias of 7FH
S
31
Exponent
30-23
Significant
22-0
• Double-precision using a bias of 3FFH
S
63
Exponent
62-52
Significant
51-0
2.2.6 Real Numbers
• The exponent is stored as bias
exponent.
• For single-precision:
bias exponent = exponent + 7FH
• For double-precision:
bias exponent = exponent + 3FFH
2.2.6 Real Numbers
• Table 1.10 single-precision number(P41)
decimal
binary
normalized
sign
Biased
exponent
significant
+12
1100
1.1*23
0
0111,1
111+11
100 0000
0000 0000
0000 0000H
-12
1100
-1.1*23
1
100000
10
+100
11001 1.1001*26 0
00
011111
11+110
100 1000
0000 0000
0000 0000H
2.2.6 Real Numbers
• Define single-precision data(32 bit)
• DD / REAL4
• Define double-precision data(64 bit)
• DQ / REAL8
• Define extended precision data
• REAL10
2.2.6 Real Numbers
• Examples:
• Single-precision
0000 3F9DF3B6 NUMB1 DD 1.234
0004 C1BB3333 NUMB2 REAL4 -23.4
• Double-precision
0008 405ED9999999999A NUMB3 DQ(REAL8) 123.4
• Extended-precision
0010 4005F6CCCCCCCCCCCCCD NUMB4 REAL10 123.4
2.2.6 Real Numbers
• Two exceptions to the rules for floatingpoint numbers.
• 0.0 is stored as all zeros.
S
0
Exponent
30-23 (ALL 0)
S
0
Exponent
30-23 (ALL ONES)
Significant
22-0 (ALL ZEROS)
S
1
Exponent
30-23 (ALL ONES)
Significant
22-0 (ALL ZEROS)
• Positive infinity.
• Negative infinity.
Significant
22-0 (ALL 0)