Professional Documents
Culture Documents
Chuong3
Chuong3
3.1 Cc h m c bn
n 1
a *10
i= m
V d: 123,45
Phn nguyn :
123 : 10 = 12 d 3
123
12 : 10 = 1 d 2
1
Phn phn :
: 10 = 0 d 1
0,45*10 = 4,5
0,5 *10 = 5
=123,45
45
H nh phn (Binary)
H thp lc phn (Hexadecimal)
H nh phn(Binary)
B k t c s gm 2 s: 0,1
Dng tng qut: an-1an-2an-3a1a0,a-1 a-2a-m
A=
n 1
i
a
*
2
i
i= m
(ai = 0,1)
A=
i
a
*
16
i
i= m
M hnh m ho v ti to tn hiu vt l
T/h vl
T/h vl
B cm
bin tn
hiu
(Sensor)
B chuyn
i tng t
=> s
(ADC)
B ti to
tn hiu
B chuyn
i s=>
tng t
(ADC
Hnh nh
GV: inh ng Lng
My tnh
Th t lu tr cc byte d liu MT
B nh chnh t chc lu tr d liu theo n v byte
di t d liu c th chim t 1 n 4 byte. V vy
cn phi bit th t chng lu tr trong b nh chnh
i cc d liu nhiu byte.
C hai cch lu tr c a ra
Little Endian (u nh): Byte c ngha thp hn
c lu tr trong b nh v tr c a ch nh hn.
Big Endian (u to): Byte c ngha thp hn c
lu tr trong b nh v tr c a ch ln hn.
Th t lu tr cc byte d liu MT
V d: lu tr mt t 32bit
0001 1010 0010 1011 0011 1100 0100 1101B
1
A 2
B 3
C
4 DH
Biu din trong ngn nh theo 2 cch
300
4D
300
1A
301
3C
301
2B
302
2B
302
3C
303
1A
303
4D
Little Endian
GV: inh ng Lng
Big Endian
Th t lu tr cc byte d liu MT
Lu tr ca cc b vi x l in hnh
Loi my Intel: 80x86, Petium -> little endian
Motorola 680x0 v cc b x l RISC -> big endian
Power PC & Itanium: tch hp c hai cch trn
i= 0
*2
V d: S nguyn khng du
V d:
n=8
n=16
n=32
028-1 (255)
0 216-1 (65535).
0232-1
S nguyn c du
S b mt v s b hai
N: Cho mt s nh phn N c biu din bi n bit. Ta
c
S b mt ca N bng (2n-1)-N
S b hai ca N bng 2n-N
V d: Cho s N = 0001 00012 c biu din bi n=8bit.
Xc nh s b 1 v b 2 ca N.
Ap dng cng thc
1111 1111 (2n-1)
0001 0001 N
s b mt ca N 1110 1110
GV: inh ng Lng
S nguyn c du
Nhn xt: s b mt ca mt s N c xc nh
bng cch o cc bit trong N
Ap dng cng thc
1 0000 0000 (2n)
0001 0001 N
s b hai ca N
1110 1111
Nhn xt: s b hai ca mt s N c xc nh
bng cch ly s b mt ca N cng thm 1
S b 2 ca N =(s b 1 ca N)+1
S nguyn c du
Gi s dng n bit biu din s nguyn c du-> di
m n bit biu din c t (- 2n-1 ..-1,0 .. 2n-1-1). Gi tr
ca s nguyn c tnh theo 2 phn ring bit:
Phn gi tr dng (0 -> 2n-1-1).
Phn gi tr m (- 2n-1-1).
Di min tr ca s nguyn c du c biu bng
hnh trn
Gi tr nh nht bng - 2n-1
Gi tr ln nht bng +2n-1-1
GV: inh ng Lng
S nguyn c du
Trong : Bt c trng s cao nht (hay bit ngoi cng
bn tri ca dy nh c my tnh s dng biu din
du ca gi tr) nu:
= 0 : th s nh phn cn tnh gi tr l s dng.
Dng tng qut l: 0an-2an-3a0
= 1 : th s nh phn cn tnh gi tr l s m.
Dng tng qut l: 1an-2an-3a0
2 n 1 +
Gi tr tnh
n 2
i
a
*
2
i
i =0
V d 1
V d 1: Cho
V d 2
V d 2: Biu din s nguyn c du sau y A=+97 v
B=-101 theo hai dng kiu n=8bit v n=16bit trong my
tnh.
Li gii
Biu din s A dng s nguyn c du trong my tnh
A = 0110 00012 (n=8bit)
Biu din s B dng s nguyn c du trong my tnh
Biu din s +101 = 0110 01012
Ly b 2
1001 10112
V d 2
Biu din s A dng s nguyn c du trong my tnh
A = 0000 0000 0110 00012 (n=16bit)
Biu din s B dng s nguyn c du trong my tnh
Biu din s +101 =0000 0000 0110 01012
Ly b 2
38
0011 1000BCD
61
0110 0001BCD
99
1001 1001BCD
275
816
1091
816
1091
3.4 S hc nh phn
Php cng s nguyn khng du
Khi cng hai s nguyn khng du n bit
Nu khng c nh ra khi bit cao nht th kt qu nhn
c lun ng.
Nu c nh ra khi bit cao nht th kt qu nhn c
l sai. Hay ni khc hn php cng b trn(Cout =1)
Trn c nh (Carry Out) xy ra khi kt qu php ton
nhn c > 2n-1
Y(n-bit)
cin
X(n-bit)
B cng
n bit
S(n-bit)
cout
3.4 S hc nh phn
Cng s nguyn c du.
Khi cng hai s nguyn c du n-bit -> Kt qu
nhn c ta khng quan tm n c mang Cout. M ta
ch nhn kt qu tnh c trong n-bit. V vy cng hai
s khc du th cho kt qu lun lun ng. Nu cng hai
s cng du nu kt qu tr v cng du ton hng thi kt
qu ng. Ngc li kt qu khc du ton hng th xy
ra hin tng trn (Overflow) kt qu sai.
3.4 S hc nh phn
Php tr
Php tr s nguyn chnh l php
cng vi s o du.
V nh X-Y = X+(-Y)
Tm s o chnh l ta tm b
hai ca s .
Nguyn tc php tr: Ly b
hai ca Y ra thnh Y ri cng
vi X
GV: inh ng Lng
Y (n-bit)
X(n-bit)
B hai
-Y
B cng n-bit
S=X-Y
3.4 S hc nh phn
Nhn s nguyn khng du
1011 S b nhn
1001 S nhn
1011
0000
Tch ring phn
0000
1011
1100011 (99) -> Tch
3.4 S hc nh phn
Nu bit ca s nhn l 0 => Tch ring phn bng 0
Nu bit ca s nhn l 1 => Tch ring phn l gi tr
s b nhn
Tch ring phn tip theo c dch tri 1 bit so vi
tch ring phn pha trc .
Tch bng tng cc tch ring phn.
Nhn hai s nguyn n bit. Tch c di lun chun
b 2n bit. V vy php nhn khng c khi nim trn.
3.4 S hc nh phn
B nhn s nguyn khng du
Mn-1 Mn-2
* *
M1
M0
S b nhn
K cng
B cng n bit
B iu khin cng
v dch
K dch phi
An-1 An-2
* *
A1
A0
Qn-1 Qn-2
S nhn
* *
Q1
Q0
3.4 S hc nh phn
START
Qo=1
Count=0?
END
A
0000
1011
0101
0101
0010
Q
1001
1001
1100
1100
1110
thao tc
Qo=1
C,A=A+M
Shift right
Qo=0
Shift right
0
0
0010
0001
1110
0111
Qo=0
Shift right
0
0
0
0001
1100
0110
0110
0111
0111
0011
0011
Qo=1
C,A=A+M
Shift right
-> tch cn tm nm
trong A v Q
thao tc
0
0
0
0
0
0
0
0
1
0
0000
0000
0000
1101
0110
0110
0011
0011
0000
1000
1000
1010
0101
0101
0101
1010
1010
0101
0101
0101
0010
0010
Qo=0
Shift right
Qo=1
C,A=A+M
Shift right
Qo=0
Shift right
Qo=1
C,A=A+M
Shift right
-> tch cn tm nm
trong A v Q
Nhn s nguyn c du
Ta c th s dng mt trong hai thut ton:
S dng thut ton nhn khng du cho s c du.
S dng thut ton gii Booth
10
QoQ-1
A <- A-M
01
A <- A+M
Shift Q,Q-1
Count =Count-1
N
Y
Count=0?
END
V d: nhn s nguyn c du
V d 1:
S b nhn: 0111 (7)
S nhn : 0011 (3)
Tch : 00010101 (21)
Thao tc theo s thut ton trn: M =0111
V d: nhn s nguyn c du
A
0000
1001
1100
1100
1110
1110
0101
0010
0010
0001
0001
GV: inh ng Lng
Q
Q-1
thao tc
0011
0
QoQ-1=10
0011
0
A=A-M
1001
1
Shift right
1001
1
QoQ-1=11
0100
1
Shift right
0100
1
QoQ-1=01
0100
1
A=A+M
1010
0
Shift right
1010
0
QoQ-1=00
0101
0
Shift right
0101 -> tch cn tm nm trong A v Q
V d: nhn s nguyn c du
V d 2:
S b nhn: 1001(-7)
S nhn : 0011 (3)
Tch : 1110 1010 (-21)
Thao tc theo s thut ton trn: M =1001
V d: nhn s nguyn c du
A
Q-1
thao tc
0000
0000
0111
0011
0011
0001
0011
0011
0011
1001
1001
1100
0
0
0
1
1
1
khi to Q-1=0
QoQ-1=10
A=A-M
Shift right
QoQ-1=11
Shift right
0001
1010
1101
1100
1100
0110
1
1
0
QoQ-1=01
A=A+M
Shift right
1101
1110
0110
1011
0
0
QoQ-1=00
Shift right
1110
1011
-> tch cn tm
V d: nhn s nguyn c du
V d 3:
S b nhn: 1001(-7)
S nhn : 1101 (-3)
Tch : 00010101 (21)
Thao tc theo s thut ton trn: M =1001
V d: nhn s nguyn c du
A
0000
0000
0111
0011
0011
1100
1110
Q
1101
1101
1101
1110
1110
1110
0111
Q-1
0
0
0
1
1
1
0
thao tc
khi to Q-1=0
QoQ-1=10
A=A-M
Shift right
QoQ-1=01
A=A+M
Shift right
1110
0101
0010
0111
0111
1011
0
11
QoQ-1=10
A=A-M
Shift
right
0010
0001
1011
0101
1
1
QoQ-1=00
Shift right
Lu
Ch : Shift A,Q,Q-1 l php dch tri bnh thng.
Tuy nhin bit An-1 c dch sang bit An-2, nhng
vn cn v tr sau khi dch.
Phn d
ring phn
Phn d
A<0?
Q0 <- 0
A <- A+M
Q0 <- 1
Count =Count-1
N
Count=0?
GV: inh ng Lng
END
Chia s nguyn c du
Chuyn i s b chia v s chia v dng s dng
S dng thut gii chia s nguyn khng du. Kt qu
thng trong Q v phn d trong A
Hiu chnh du kt qu:
S b chia
S chia
Thng
S d
Gi nguyn
Gi nguyn
kt qu
o du kt
qu
o du kt
qu
Gi nguyn
kt qu
Gi nguyn
o du
o du
Single
Double
Quadruple
B rng ca
trng (bit)
S
E
M
Tng cng
E cc i
E cc tiu
dch
1
8
23
32
255
0
127
1
11
52
64
2047
0
1023
1
15
111
128
32767
0
16383
S=1 phn nh tr l m
S=0 phn nh tr l dng
E: gi tr E nm trong 8 bit, l s m c dch chuyn
i 127
M: phn nh tr, gi tr nm trong 23 bit
Ta c s 2345,125 trong h thp phn. Hy biu din
chng di dng chun IEEE 32bit trong my tnh
GV: inh ng Lng
-2-127 2-127
2+127
Underflow
Overflow
n tp chng 3
Cc h m, ngha ca chng trong my tnh.
M ha d liu trong my tnh.
M ha s nguyn(m ha s nguyn c v khng
du).
M ha s thc (s du chm ng)
Cc thut ton tnh ton trn s hc nh phn
M ha k t (ASCII, Unicode)
Lu tr d liu trong my tnh
M phng hot ng tnh ton s hc ca ALU
GV: inh ng Lng
t cu hi
Cu 1: Kt qu hin thi ln mn hnh l bao nhiu? Khi
thc hin on lnh sau:
Var a: shortint;
Begin
a:=-1;
writeln(Gia tri a:=,a);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)]);
End.
Kt qu: -1 v 255
GV: inh ng Lng
t cu hi
Cu 2: Kt qu hin thi ln mn hnh l bao nhiu? Khi
thc hin on lnh sau:
Var a: shortint;
Begin
a:=-128;
writeln(Gia tri a:=,a);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)]);
End.
Kt qu: -128 v 128
GV: inh ng Lng
t cu hi
Cu 3: Kt qu hin thi ln mn hnh l bao nhiu? Khi
thc hin on lnh sau:
Var a: shortint;
Begin
a:=$6A;
writeln(Gia tri a:=,a);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)]);
End.
Kt qu: 106 v 106
GV: inh ng Lng
t cu hi
Cu 4: Kt qu hin thi ln mn hnh l bao nhiu? Khi
thc hin on lnh sau:
Var b : integer absolute 3715:100;
a : shortint absolute 3715:100;
Begin
b:=$00B5;
writeln(Gia tri a:=,a);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)]);
End.
Kt qu: -75 v 181
GV: inh ng Lng
t cu hi
Cu 5: Kt qu hin thi ln mn hnh l bao nhiu? Khi thc hin
on lnh sau:
Var
b : integer absolute 3715:100;
a: shortint absolute 3715:100;
Begin
b:=-75;
writeln(Gia tri a:=,a);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)]);
writeln(Gia tri ngan nho:=, mem[seg(a):ofs(a)+1]);
writeln(Gia tri ngan nho:=, memw[seg(a):ofs(a)]);
End.
Kt qu: -75; 181; 255 v 65461
GV: inh ng Lng