Tải bản đầy đủ (.pdf) (54 trang)

kỹ thuật vi xử lý và lập trình assemly cho hệ vi xử lý

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (317.7 KB, 54 trang )

Kỹ thuậtVi xử lý &
Lập trình Assembly cho hệ vi xử lý
Bài giảng, Ngành CNTT
ĐạihọcNôngnghiệpHàNội
Nộidung mônhọc
 Chương 1: Nhậpmôn
Các hệđếm, mã hóa, các phầntửđiệntử số cơ bản
 Chương 2: Kiếntrúchệ vi xử lý
 Chương 3: Bộ vi xử lý Intel 8088
 Chương 4: LậptrìnhAssembly chohệ vi xử lý (*)
 Chương 5: Thiếtkế hệ vi xử lý chuyên dụng
 Chương 6: Các tín hiệucủa 8088 và mộtsố mạch phụ trợ
 Chương 7: Phối ghép 8088 vớibộ nhớ
 Chương 8: Mộtsố phốighépvào/racơ bản
 Chương 9: Mộtsố chủđềnâng cao/Bài tậplớn.
 Thi hếtmôn
Tài liệuthamkhảo
[1] Kỹ thuậtvi xử lý, VănThế Minh, NXB Giáo dục, 1997
[2] Kỹ thuậtvi xử lý và Lập trình Assembly cho hệ vi xử
lý, Đỗ Xuân Tiến, NXB Khoa học& kỹ thuật, 2001
[3] Bài giảng khác
Các sách tham khảokhácvề kiếntrúchệ vi xử lý (The
Intel Microprocessors), lậptrìnhhợpngữ Assembly,
lậptrìnhhệ thống.
Đánh giá
 Số tín chỉ: 3 (2 LT + 1 TH)
 Chuyên cần: dự lớp, làm bài tập, 10%
 Kiểmtragiữakỳ/bài tậplớn: 30%
 Kiểmtracuốikỳ: 60%
 ! Cấmthi(nghỉ học 1/5, 1/3 số buổi)
Chương 1


1.1 Các hệđếm
- Hệ thậpphân, Decimal
-Hệ nhị phân, Binary
-Hệ thậplục phân, Hexa
1.2 Các hệ thống mã hoá
- ASCII
-BCD
1.3 Các linh kiện điệntử số cơ bản
-Cáccổng logic: AND, OR, XOR, NOT
-Cácbộ giảimã
1.1 Các hệđếm
 Hệđếmthập phân (Decimal, hệđếmcơ số 10)
 Dùng mườikýhiệu:
0,1,2,3,4,5,6,7,8,9
 Ví dụ 1.1:
Hai nghìn Chín trămBamươiBa
2933 = 2x10
3
+ 9x10
2
+ 3x10
1
+ 3x10
0
= 2000 + 900 + 30 + 3
1.1 Các hệđếm
 Hệđếmnhị phân (Binary, hệđếmcơ số 2)
 Sử dụng hai ký hiệu(bit): 0 và1
(Các hệ thống điệntử số chỉ sử dụng hai mức điện
áp 0, 1)

 Kích cỡ, LSB, MSB củasố nhị phân
 Số nhị phân không dấu(Unsigned)
 Số nhị phân có dấu(Số bù hai, signed)
Số nhị phân
 Mỗikýhiệu0 hoặc1 đượcgọilà1 Bit (Binary Digit -
Chữ số nhị phân)
 Kích cỡ củamộtsố nhị phân là số bit củanó
 MSB (Most Significant Bit): Bit lớnnhất(sáttrái)
 LSB (Least Significant Bit): Bit bé nhất(sátphải)
 Ví dụ 1.1: 10101010
là mộtsố nhị phân 8-bit
MSB LSB
Số nhị phân không dấu
 Biểudiễncácgiátrị không âm (>= 0)
 Vớin-bit cóthể biểudiễncácgiátrị từ 0 đến2
n
–1
 Ví dụ 1.2: Giá trị V củasố nhị phân không dấu 1101
được tính:
V(1101) = 1x2
3
+ 1x2
2
+ 0x2
1
+ 1x2
0
= 8 + 4 + 0 + 1 = 13
Số nhị phân không dấu
 Tổng quát: Nếusố nhị phân N n-bit:

N = b
( n-1)
b
( n-2)
…. b
1
b
0
thì giá trị V củanólà:
V = b
(n -1)
x 2
(n-1)
+b
(n-2)
x2
(n-2)
+
… + b
1
x 2
1
+ b
0
x 2
0
Các số nhị phân không dấu4-bit biểudiễn đượccácgiá
trị từ ? đến?
16 giá trị từ 0 đến15
Nhị phân không dấu Giá trị thậpphân

0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15
Số nhị phân không dấu
 Dảigiátri củacácsố không dấu 8-bit là [0,255]
(unsigned char trong C)
 Dảigiátri củacácsố không dấu 16-bit là [0,65535]
(unsigned int trong C)
Chuyển đổithập phân sang nhị phân
 Ví dụ 1.3
Chuyển25sang nhị phân không dấu. Dùng phương pháp chia 2
liên tiếp
Chia 2 thương số dư
 25/2 = 12 1 LSB
 12/2 = 6 0
 6/2 = 3 0
 3/2 = 1 1

 1/2 = 0 1 MSB
Kếtquả: 11001
Chuyển đổithập phân sang nhị phân
 Ví dụ 1.4
Chuyển 0.625 sang dạng nhị phân: Dùng phương pháp nhân 2
liên tiếp
Nhân 2 kếtquả phầnnguyên
 0.625x2 = 1.25 1 MSB
 0.25 x2 = 0.50 0
 0.50 x2 = 1.00 1 LSB
Kếtquả: .625
10
= .101
2
Chuyển đổinhị phân sang thậpphân
 Ví dụ: 10110 =?
 Phầnlẻ: 0.101=?
Số nhị phân có dấu
 Biểudiễncácgiátrị âm (bù hai)
 Bit bên trái nhấtbằng 0: biểudiễnsố dương
 Bit bên trái nhấtbằng 1: biểudiễnsố âm
 Ví dụ 1.4: Giá trị V củasố nhị phân có dấu 1101
được tính:
V(1101) = – 1x2
3
+ 1x2
2
+ 0x2
1
+ 1x2

0
= – 8 + 4 + 0 + 1 = – 3
Số nhị phân có dấu
 Vớin-bit cóthể biểudiễncácgiátrị từ –2
(n-1)
đến
2
(n-1)
–1
 Tổng quát: Nếusố nhị phân N n-bit:
N = b
( n-1)
b
( n-2)
…. b
1
b
0
thì giá trị V củanólà:
V = –b
(n -1)
x 2
(n-1)
+b
(n-2)
x2
(n-2)
+
… + b
1

x 2
1
+ b
0
x 2
0
Các số nhị phân có dấu4-bit biểudiễn đượccácgiátrị
từ ? đến?
16 giá trị từ -8 đến7
Nhị phân có dấu Giá trị thậpphân
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 -8
1001 -7
1010 -6
1011 -5
1100 -4
1101 -3
1110 -2
1111 -1
Số nhị phân có dấu
 Dảigiátri củacácsố có dấu 8-bit là
[-128,+127]
(char trong C)

 Dảigiátri củacácsố có dấu16-bit là
[-32768,+32767]
(int trong C)
Chuyểnsố thập phân sang nhị phân có dấu
 Vơísố dương: tương tự chuyểnsố thậpphânsang
nhị phân không dấu, rồithêmbit 0 vàobên trái
-Vídụ: Chuyển 25 sang nhị phân có dấu:
Kếtquả: 011011
 Vớisố âm: Chuyển đổi sốđối sang dạng nhị phân có
dấurồilấysố “bù 2”
Chuyểnsố thập phân sang nhị phân có dấu
Ví dụ 1.6: Chuyển – 45 sang nhị phân
1. chuyểnsốđối: +45 = 00101101
2. Bù 1 (đảo bít): 11010010
4. Bù 2 (cộng 1): + 1

-45
10
= 11010011
2
Số thậplụcphân
 Số Hexa (Hexadecimal): hệđếmcơ số 16
 Sử dụng 16 ký hiệu để biểudiễn:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
 Mỗikýhiệutương ứng với1 nhóm4 bit
 Để biểudiễnsố nhị phân ở dạng ngắngọn
Ví dụ
11110001 = F1
101101010010 = B52
Nhị phân Thậplụcphân

Mỗikýhiệutương ứng với4-bit
Hexa Binary Hexa Binary
0
0000 8 1000
1
0001 9 1001
2
0010 A 1010
3
0011 B 1011
4
0100 C 1100
5
0101 D 1101
6
0110 E 1110
7
0111 F 1111
Số thậplụcphân
Chuyển đổiHexa& nhị phân
 Ví dụ 1.7
Chuyểnsố hexa E8 và ABBA sang nhị phân
Thay thế mỗikýhiệuhexabằng 1 nhóm4-bit tương
ứng
. E 8
1110 1000
. A B B A
1010 1011 1011 1010
 Kếtquả: E8h = 11101000b
ABBAh = 1010101110111010b

Chuyển đổiHexa& nhị phân
 Ví dụ 1.8
Chuyểnsố nhị phân 1100101011111110 sang hexa
- Gom thành các nhóm 4-bit theo hướng từ LSB về
MSB (phải sang trái)
- Chuyểnmỗi nhóm 4-bit sang ký hiệuhexatương
ứng vớinó
1100 1010 1111 1110
C A F E
 Kếtquả: 1100101011111110b = CAFEh

×