1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng hợp ngữ - Chương 1 pot

10 460 5
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 102,08 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trang 1

CH NG I: CÁC KHÁI NI M C B N

1.1 M u

H p ng (Assembly language) là m t ngôn ng l p trình c p th p, m c ích nh m giao

ti p tr c ti p v i ph n c ng c a máy tính

Máy tính ch có kh n ng hi u c các tín hi u 0, 1 d i d ng n ho c t , g i là tín

hi u nh phân (ngôn ng nh phân còn c g i là ngôn ng máy) Các l nh c a h p ng

th c ch t là d ng kí hi u c a ngôn ng máy: h p ng s d ng các kí hi u b ng ti ng Anh

bi u di n các l nh ngôn ng máy cho d nh h n Ví d :

nh ngôn ng máy nh h p ng

1011 0100 0010 1010

1100 1101 0010 0001

MOV AH,2Ah INT 21h

Ta th y các l nh máy tính b ng các dãy bít 0, 1 r t dài và khó nh , còn l nh h p ng thì ng n g n h n nhi u Khi ch y m t ch ng trình h p ng thì ph i d ch nó sang ngôn

ng máy

H c h p ng , không ch h c m t ngôn ng l p trình có t c r t nhanh (h p ng là ngôn ng l p trình có t c nhanh nh t) mà còn n m b t c b n ch t bên trong c a máy tính, bi t cách tác ng tr c ti p vào ph n lõi c a máy tính

1.2 Bi u di n s và kí t trong máy tính

1.2.1 M t s h m

a) H th p phân (Decimal) - H m c s 10

H th p phân s d ng 10 kí hi u (0, 1, 2, 9) bi u di n thông tin Các s trong h

th p phân c bi u di n d i d ng t ng các lu th a c s 10

Ví d :

S 1998 trong h th p phân có th bi u di n nh sau:

(1998)10 = 1x103 + 9x102 + 9x101 + 8x100

Trong h p ng , ng i ta kí hi u 1 s th p phân b ng ch D ho c d cu i (vi t t t c a Decimal), c ng có th không c n vi t các ch ó

Ví d :

(1998)10 c kí hi u là: 1998D, 1998d, ho c n gi n là 1998

b) H nh phân (Binary) - H m c s 2

H nh phân s d ng 2 kí hi u (0,1) bi u di n thông tin Các s trong h nh phân

c bi u di n d i d ng t ng các lu th a c s 2

Ví d :

S 1101 trong h nh phân có th bi u di n nh sau:

(1101)2 = 1x23 + 1x22 + 0x21 + 1x20

= (13)10

Trong h p ng , ng i ta kí hi u 1 s nh phân b ng ch B ho c b cu i (vi t t t c a Binary)

Ví d :

Trang 2

(1101)2 c kí hi u là: 1101B, ho c 1101b

c) H th p l c phân (Hexa Decimal) - H m c s 16

H th p l c phân s d ng 16 kí hi u (0, 1, 2, 9, A, B, C, D, E, F) bi u di n thông tin Các kí hi u A, B, C, D, E, F l n l t ng v i các giá tr 10, 11, 12, 13, 14, 15 trong h

th p phân Các s trong h th p l c phân c bi u di n d i d ng t ng các lu th a c 16

Ví d :

S 2B trong h th p l c phân có th bi u di n nh sau:

(2B)16 = 2x161 + Bx160

= (43)10

Trong h p ng , ng i ta kí hi u 1 s th p l c phân b ng ch H ho c h cu i (vi t t t c a Hexa Decimal)

Ví d :

(2B)16 c kí hi u là: 2BH, ho c 2Bh

Chú ý: Kí hi u m t s th p l c phân trong ch ng trình h p ng ph i luôn b t u b ng Ví d s (FA)10 c kí hi u là 0FAh (ch không kí hi u là FAh)

H th p l c phân (g i t t là h hex) là h m c s d ng nhi u nh t trong h p ng ,

do nó có th bi u di n nh ng dãy bít nh phân dài b ng nh ng kí hi u ng n g n, d nh n

d) Chuy n i gi a các h m

• Chuy n t h th p phân v h nh phân:

Quy t c chuy n: em s th p phân chia liên li p cho 2, cho t i khi th ng s b ng 0 thì

ng l i Vi t các s d ng c t d i lên ta thu c s nh phân t ng ng

Ví d : Chuy n s th p phân 13 sang h nh phân

13 2

Vi t các s d ng c t d i lên ta thu c s nh phân 1101b

• Chuy n t h th p phân v h th p l c phân:

Quy t c chuy n: em s th p phân chia liên li p cho 16, cho t i khi th ng s b ng 0 thì

ng l i Vi t các s d ng c t d i lên ta thu c s th p l c phân t ng ng

Ví d : Chuy n s th p phân 43 sang h th p l c phân

43 16

d 2 0

Vi t các s d ng c t d i lên ta thu c s th p l c phân 2Bh (chú ý là 11d = 0Bh)

Trang 3

• Chuy n i gi a h nh phân và h th p l c phân:

Vi c chuy n i gi a 2 h m này khá d dàng do m i kí hi u trong h hex l i t ng

ng v i 4 kí hi u nh phân Xem b ng chuy n i sau:

th p phân H Hex H nh phân

Ví d 1:

Chuy n i 2Ah sang h nh phân

Tra b ng ta th y: 2h = 0010b, Ah = 1010b

y 2Ah = 00101010b

Ví d 2:

Chuy n i 10110110b sang h hex

u tiên ta chia dãy bít nh phân thành t ng nhóm 4 bít, thu c 2 nhóm sau: 0110 và 1011

Tra b ng ta th y: 0110b = 6h, 1011b = Bh

y 10110110b = B6h

1.2.2 Bi u di n s nguyên trong máy tính

Do gi i h n c a ph n c ng máy tính, d li u trong máy tính th ng c bi u di n b i các nhóm 8 bít (g i là Byte)

1 byte = 8 bit

2 byte = 16 bit = 1 word

Ng i ta có th ghép nhi u byte hay nhi u word t o thành dãy bít dài h n Dãy bít càng dài thì l ng thông tin bi u di n c càng l n N u g i N là s bít c a dãy thì s

kh n ng bi u di n = 2N

Xét m t dãy bít nh phân:

msb lsb

Trang 4

Bít u tiên (bên trái) c g i là bít n ng nh t hay bít cao nh t c a dãy (Most Significant Bit)

Bít cu i cùng (bên ph i) c g i là bít nh nh t hay bít th p nh t c a dãy (Least Significant Bit)

a) S nguyên không d u:

M t s nguyên không d u (s không âm) c bi u di n b i 1 dãy bít nh phân nh ta

ã xét ph n tr c (ph n h m nh phân) ây ta ch nh n m nh thêm v chi u dài

a dãy bít: dài dãy bít khi bi u di n trong máy tính luôn là b i s c a 8

Ví d : Bi u di n s nguyên 13 trong máy tính

ph n tr c ta ã bi t: s nguyên 13 chuy n sang h nh phân s là 1101

Trong máy tính s có nhi u cách bi u di n s nguyên này:

+ S nguyên d ng byte (8 bit): 00001101

+ S nguyên d ng word (16 bit): 00000000 00001101

b) S nguyên có d u:

i v i s nguyên có d u thì khi bi u di n d i d ng nh phân ta ph i dành ra 1 bít xác nh d u ó là bít u tiên c a dãy (bít n ng nh t - Msb)

Msb = 0: D u D ng

Msb = 1: D u Âm

Nh v y, n u chi u dài dãy bít là 8 thì bít u tiên xác nh d u, 7 bít còn l i xác nh giá tr s nguyên?

Ví d :

+13 c bi u di n b i dãy bít 0000 1101

y s -13 c bi u di n nh th nào, có ph i là dãy bít 1000 1101 hay không?

Nguyên t c bi u di n s âm trong máy tính: ph i tho mãn u ki n sau

Âm (nh phân) + S D ng (nh phân) = 0

Gi s s -13 c bi u di n b i dãy bít 1000 1101, ta em nó c ng v i dãy bít bi u di n +13 ki m tra:

0000 1101 + 1000 1101

1001 1010 0

Ta th y t ng thu c khác 0, nh v y ây không ph i là dãy bít c n tìm

Quy t c tìm s i: Cho 1 s nguyên A Gi s ã bi t dãy bít bi u di n A, khi ó mu n tìm dãy bít bi u di n s -A ta làm nh sau:

c 1: Tìm s bù 1 c a A b ng cách o t t c các bít

Ví d : A = 0000 1101

Khi ó s bù 1 c a A là 1111 0010

c 2: Tìm s bù 2 (b ng cách l y s bù 1 c ng v i 1)

1111 0010 + 1

1111 0011

bù 2 tìm c (1111 0011) chính là dãy bít bi u di n s -A

Trang 5

Ta th ki m tra l i b ng cách c ng 2 dãy bít:

0000 1101 + 1111 0011

1 0000 0000

t qu thu c b ng 0 ch ng t ta ã tìm úng (vì ang bi u di n s nguyên b ng m t dãy 8 bit nên s 1 trong k t qu trên có th lo i b - s gi i thích k h n trong ch ng sau)

y -13 = 1111 0011b

Bài toán ng c:

Cho m t dãy bít nh phân sau ây (16 bit):

1110 0111 0001 1000b

Hãy xác nh xem nó bi u di n s nguyên nào?

Gi i:

i s nguyên ó là N

Có 2 tr ng h p x y ra:

• u ây là s nguyên không d u:

N = 1x215 + 1x214 + 1x213 + 1x210 + 1x 29 + 1x28 + 1x24 + 1x23

= 32768 + 16384 +8192 + 1024 + 512 + 256 + 16 + 8

= 59160

• u ây là s nguyên có d u:

Vì Msb = 1 nên N là s âm n gi n ta s xác nh –N (s d ng) tr c, t ó suy ra N

Tìm –N b ng cách tìm s bù 2 c a N

c 1: o bít

bù 1 = 0001 1000 1110 0111

c 2: em c ng v i 1

0001 1000 1110 0111 + 1

0001 1000 1110 1000

Ta tìm c –N = 0001 1000 1110 1000b

= 1x212 + 1x211 + 1x 27 + 1x26 + 1x25 + 1x23

= 4096 + 2048 + 128 + 64 + 32 + 8

= 6376

y N = -6376

1.2.3 Bi u di n kí t trong máy tính

Khi s d ng máy tính, ta không ch làm vi c v i các con s mà còn ph i làm vi c v i nhi u lo i d li u khác nhau, trong ó có các kí t Các kí t c ng c bi u di n b i các dãy bít nh phân, s bi u di n này mang tính ch t quy c

Tuy nhiên, n u m i ng i, m i c quan, m i qu c gia l i t a ra quy c c a riêng mình thì s r t khó kh n cho vi c trao i thông tin Nhu c u t ra là c n ph i có m t h

th ng quy c chung mang tính qu c t

Cách th c mã hoá kí t c s d ng r ng rãi nh t trên các máy PC d a trên b ng mã ASCII (American Standard Code for Information Interchange) H th ng này s d ng 8 bít bi u di n 1 kí t

Trang 6

Ví d :

(B ng mã ASCII y xin xem ph n ph l c 2)

Hi n nay có r t nhi u b ng mã khác nhau c s d ng, ph bi n nh t là mã Unicode,

i dài dãy bít có th thay i khá m m d o, và nó v n gi c s t ng thích v i

mã ASCII truy n th ng

1.3 T ch c c a máy tính

1.3.1 S h th ng máy tính

Ng i ta th ng chia các b ph n c a máy tính làm 4 kh i sau:

Trong ó:

• Các kh i Nh p/Xu t d li u: bao g m các thi t b nh bàn phím, chu t, màn hình

• Kh i l u tr : bao g m các a c ng, a m m

• Kh i x lý: ây là ph n quan tr ng nh t c a m t máy tính, ta s t p trung xem xét nó

t h th ng x lý c a máy tính bao g m 3 b ph n chính:

+ B vi x lý – CPU (Central Processing Unit): Là b não c a máy tính, nó x lý các thông tin và u khi n m i ho t ng c a máy tính

+ B nh trong: Là b nh có kh n ng liên l c tr c ti p v i b vi x lý,là n i l u tr d

li u ph c v cho quá trình x lý

+ Các m ch vào ra: u khi n vi c giao ti p v i thi t b ngo i vi

Ngoài ra còn có h th ng các dây d n, cáp n i liên k t gi a 3 b ph n trên (h th ng Bus)

u tr

Trang 7

1.3.2 B vi x lý - CPU

ây là trung tâm x lý c a máy tính M i b vi x lý c trang b m t h th ng các

nh c b n b ng ngôn ng nh phân (do nhà s n xu t quy nh) Ng i l p trình có th

d ng các l nh này “ra l nh” cho máy tính th c hi n u mình mu n

a) Các thành ph n chính c a b vi x lý:

• ALU (Arithmetic & Logic Unit): Kh i s h c và logic ây là n i th c hi n các phép tính s h c (c ng, tr , nhân, chia ) và các phép logic (Not, And, Or )

• Các thanh ghi: Cung c p kh n ng nh bên trong CPU M i thanh ghi có kh

ng ch a c m t dãy các bít d li u ( dài còn ph thu c vao t ng lo i CPU)

• th ng n i ghép bên trong CPU (Bus n i b ): Cho phép liên l c gi a các b

ph n bên trong CPU

b) H vi x lý Intel x86

Có nhi u hãng khác nhau s n xu t b vi x lý cho máy tính Ta s t p trung nghiên

u các b vi x lý thu c dòng x86 do hãng Intel ch t o

B vi x lý u tiên thu c dòng này là 8086 Nó c s n xu t n m 1978, là b vi x

lý 16 bit u tiên c a Intel 8088 ra i sau 8086 m t chút, v c b n nó c ng có c u t o

gi ng nh 8086, nh ng có giá thành r h n vì ch có bus d li u 8 bít, và t c c ng

th p h n Ti p sau ó là s ra i c a các b vi x lý 80186, 80286, 80386, 80486, 80586 (Pentium), PII, PIII, P4 Càng v sau thì các b vi x lý l i càng tr nên m nh m h n

i dài các thanh ghi dài h n, t c ng h cao h n, b r ng bus l n h n

c) B vi x lý 8086

Ta ch n 8086 nghiên c u vì nó có c u trúc n gi n, d tìm hi u Và u quan

tr ng là h u h t các l nh c a nó u c các b vi x lý sau này k th a, nên các

ch ng trình vi t cho 8086 v n có th áp d ng trên các b vi x lý hi n i h n Ta s xem xét 14 thanh ghi c b n c a 8086, m i thanh ghi có chi u dài 16 bit

• Nhóm các thanh ghi d li u (Thanh ghi công d ng chung):

Các thanh ghi này c s d ng khi th c hi n thao tác v i d li u Có 4 thanh ghi 16 bit c t tên là AX, BX, CX, DX M i thanh ghi l i c chia làm 2 thanh ghi 8 bit

i các tên t ng ng nh trên hình v :

CPU

nh trong trong

ch vào/ra Bus

Trang 8

CX CH CL

• Nhóm các thanh ghi n:

Các thanh ghi này dùng l u tr a ch c a các n b nh (segment) trong các thao tác v i b nh Có 4 thanh ghi 16 bít là CS, DS, ES, SS

CS

DS

SS

ES

• Nhóm các thanh ghi con tr và ch s :

Các thanh ghi này dùng ch a a ch phân n (offset) c a các ô nh trong các thao tác v i b nh Có 5 thanh ghi 16 bit là SI, DI, SP, BP, IP

SI

DI

SP

BP

IP (Các khái ni m v a ch segment và offset s nói k h n ph n sau)

• Thanh ghi tr ng thái (Thanh ghi c - Flag):

Thanh ghi này dùng xác nh tr ng thái c a b vi x lý M i bít trên thanh ghi c có

t tên riêng, có m t công d ng riêng trong vi c ph n ánh tr ng thái (s tìm hi u c th trong ch ng 3)

Trang 9

1.3.3 T ch c b nh trong

a) a ch v t lý:

B nh c a máy tính c c u t o b i các ph n t nh 1 bit C 8 ph n t nh t o thành m t ô nh (1 byte) Các ô nh c s p x p tu n t trong b nh và c ánh s

n l t t 0, 1, 2 S hi u các ô nh nh trên c g i là a ch v t lý c a ô nh

Ta s xem xét mô hình t ch c b nh trong h th ng x lý 8086 B vi x lý 8086 s

ng 20 ng dây a ch (bus a ch 20 bít) liên l c v i b nh Nói cách khác, a

ch các ô nh là m t dãy dài 20 bít Nh v y s l ng c c i các ô nh có th ánh a

ch là 220 (= 1MB)

0000 0000011 a ch d ng hex: 00003h

(20 bít)

Các thanh ghi c a b vi x lý 8086 ch dài 16 bít, chúng không th ch a c a ch dài 20 bít Do ó ng i ta ph i s d ng m t ph ng pháp ánh a ch khác, g i là a

ch logic

b) a ch logic:

Theo ph ng pháp này, b nh c chia thành t ng n, m i n có chi u dài t i

a 64 KB Các n c ánh s l n l t là 0, 1, 2, S hi u n nh v y g i là a

ch n (hay a ch segment)

Ng i ta s d ng 16 bít ánh s các n, nh v y a ch segment s n m trong ph m

vi t 0000h n FFFFh

Các ô nh trong n c ng c ánh s l n l t là 0, 1, 2, S hi u ô nh nh v y

i là a ch t ng i (hay a ch offset) M t n nh có kích th c t i a 64 KB,

c là có t i a 65536 ô nh

Ng i ta c ng dùng 16 bít ánh s các ô nh , nh v y a ch offset s n m trong

ph m vi t 0000h n FFFFh

Mu n xác nh a ch c a m t ô nh ta ph i bi t hai thông tin: ô nh ó thu c n nào (segment) và v trí c a ô nh trong n (offset) C p a ch segment:offset c

i là a ch logic

Ví d :

t ô nh có a ch segment:offset = 10A2:34B4h, hãy xác nh a ch v t lý c a nó

Gi i:

c 1: D ch a ch segment v bên trái 4 bít (t ng ng v i d ch 1 kí hi u hex)

Ta thu c: 10A20h

c 2: L y giá tr thu c b c 1 em c ng v i a ch offset:

Trang 10

10A20h + 34B4h 13ED4h

y a ch v t lý c a ô nh ó là 13ED4h

c) S phân chia không gian nh :

Không gian a ch 1MB (t 00000h n FFFFFh) th ng c chia thành các vùng

nh theo ch c n ng s d ng:

E0000h

D0000h

B0000h

A0000h } B nh hi n th

90000h

20000h

10000h

00000h 64 KB

} B nh c s : 10 n (640 KB)

Trong ó, 10 n u tiên (B nh c s - Base memory) dùng n p và ch y các

ng d ng c a h u hành DOS Hai n a ch ti p theo dành cho RAM trên v m ch màn hình n cu i cùng dành cho ROM BIOS

BIOS (Base Input – Output System) là m t ph n m m u khi n các thao tác vào ra c

n c a máy tính Nó c nhà s n xu t cài s n trong ROM và t ng thi hành khi b t máy tính

Ngày đăng: 21/07/2014, 17:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w