pesh0ck_n01

New Member
Link tải miễn phí lập trình hợp ngữ (assembly) và máy vi tính ibm - pc

MỤC LỤC
GIỚI THIỆU MÔN HỌC 5
BÀI GIẢNG MÔN: ASSEMBLY 6
I. MỤC ĐÍCH MÔN HỌC 6
II. NỘI DUNG CHÍNH 6
III. NỘI DUNG CHI TIẾT 7
CHƯƠNG 1 CƠ BẢN VỀ HỢP NGỮ 7
1.1. Cú pháp lệnh hợp ngữ 7
1.1.1. Trường tên (Name field) 7
1.1.2. Trường toán tử (Operator field) 7
1.1.3. Trường các toán hạng (Operand(s) code) 8
1.1.4. Trường chú thích (Comment field) 8
1.2. Các kiểu số liệu trong chương trình hợp ngữ 8
1.2.1. Các số 9
1.2.2. Các ký tự 9
1.2.3. Các biến (Variables) 9
1.2.3.1. Biến byte 9
1.2.3.2. Biến từ (word) 9
1.2.3.3. Biến mảng (array) 10
1.2.3.4. Byte thấp và byte cao của một từ 10
1.2.4. Chuỗi các ký tự (Character string) 10
1.2.5. Các hằng (Constnts) 11
1.3. Các lệnh cơ bản 11
1.3.1. Lệnh MOV và lệnh XCHG 11
1.3.2. Lệnh ADD, SUB, INC, DEC 12
1.3.3. Lệnh NEG (NEGative) 13
1.4. Chuyển ngôn ngữ cấp cao thành ngôn ngữ ASM 13
1.4.1. Mệnh đề A=B: 13
1.4.2. Mệnh đề A=5-A: 13
1.4.3. Mệnh đề A=B-2*A: 13
1.5. Cấu trúc một chương trình hợp ngữ 13
1.5.1. Các kiểu bộ nhớ 13
1.5.2. Đoạn số liệu 14
1.5.3. Đoạn ngăn xếp 14
1.5.4. Đoạn mã 14
1.6. Các lệnh vào, ra 15
1.7. Chương trình đầu tiên 16
1.8. Tạo và chạy một chương trình hợp ngữ 16
1.8.1. Xuất một chuỗi ký tự 18
1.8.2. Chương trình đổi chữ thường sang chữ hoa 19
CHƯƠNG 2 TRẠNG THÁI CỦA VI XỬ LÝ VÀ CÁC THANH GHI CỜ 20
2.1. Thanh ghi cờ (Flag register) 20
2.2. Tràn (Overflow) 21
2.3. Các lệnh ảnh hưởng đến các cờ như thế nào 22
2.4. Chương trình Debug 24
CHƯƠNG 3 CÁC LỆNH ĐIỀU KHIỂN 28
3.1. Ví dụ về lệnh nhảy 28
3.2. Nhảy có điều kiện 28
3.3. Lệnh JMP 31
3.4. Cấu trúc của ngôn ngữ cấp cao 31
3.4.1. Cấu trúc rẽ nhánh 31
3.4.1.1. Cấu trúc If - Then 31
3.4.1.2. Cấu trúc If - Then - Else 32
3.4.1.3. Cấu trúc If - Then - Else 32
3.4.2. Cấu trúc lặp 34
3.4.2.1. Vòng For 34
3.4.2.2. Vòng WHILE 35
3.4.2.3. Vòng REPEAT 35
3.5. Lập trình với cấu trúc cấp cao 36
CHƯƠNG 4 CÁC LỆNH LOGIC, DỊCH VÀ QUAY 41
4.1. Các lệnh logic 41
4.1.1. Lệnh And, Or và Xor 41
4.1.2. Lệnh NOT 43
4.1.3. Lệnh TEST 43
4.2. Lệnh SHIFT 44
4.2.1. Lệnh dịch trái (Left Shift) 44
4.2.2. Lệnh dịch phải (Right Shift) 45
4.3. Lệnh quay (Rotate) 46
4.4. Nhập/xuất số nhị phân và số Hexa 47
4.4.1. Nhập số nhị phân 47
4.4.2. Xuất số nhị phân 48
4.4.3. Nhập số Hexa 48
CHƯƠNG 5 NGĂN XẾP VÀ THỦ TỤC 50
5.1. Ngăn xếp 50
5.1.1. Lệnh PUSH và PUSHF 50
5.1.2. Lệnh POP và POPF 50
5.2. Ứng dụng của stack 51
5.3. Thủ tục (procedure) 52
5.4. Call và Return 53
5.5. Ví dụ về thủ tục 54
CHƯƠNG 6 LỆNH NHÂN VÀ CHIA 56
6.1. Lệnh MUL và IMUL 56
6.2. Ứng dụng đơn giản của lệnh MUL và IMUL 57
6.3. Lệnh DIV và IDIV 58
6.4. Mở rộng dấu của số bị chia 59
6.5. Thủ tục nhập/xuất số thập phân 59
CHƯƠNG 7 MẢNG VÀ CÁC CHẾ ĐỘ ĐỊA CHỈ 66
7.1. Mảng một chiều 66
7.2. Các chế độ địa chỉ (Addressing modes) 67
7.2.1. Chế độ địa chỉ gián tiếp qua thanh ghi 67
7.2.2. Chế độ địa chỉ chỉ số và cơ sở 69
7.2.3. Toán tử PTR và toán tử giả LABEL 71
7.2.4. Chiếm đoạn (segment override) 73
7.2.5. Truy xuất đoạn ngăn xếp (stack) 73
7.3. Sắp xếp số liệu trên mảng 73
7.4. Mảng hai chiều 75
7.5. Chế độ địa chỉ chỉ số cơ sở 76
7.6. Ứng dụng để tính trung bình 77
7.7. Lệnh XLAT 79
PHỤ LỤC 1: INTEL 80X86 INSTRUCTION SET 82
PHỤ LỤC 2: CÁC DỊCH VỤ CỦA BIOS VÀ DOS 126
PHỤ LỤC 3: CÁC CHƯƠNG TRÌNH VÍ DỤ 127
Communication 127
Compression 127
CPU 127
Date & Time 127
Disk & File access 127
Keyboard & Mouse 127
Math routines 127
Memory 127
Protected mode 127
TSR (Terminal and Stay Presidented) 127


GIỚI THIỆU MÔN HỌC
1. Tên môn học: Ngôn ngữ lập trình Assembly.
2. Phân bố thời gian: 45 LT + 15 BT.
3. Môn tiên quyết:
• Ngôn ngữ lập trình Pascal, C (Tin học đại cương).
• Cấu trúc máy tính (hay Kiến trúc máy tính).
• Vi xử lý.
4. Môn song hành: Kỹ thuật ghép nối máy tính và thiết bị ngoại vi, Đo lường và điều khiển bằng máy tính.
5. Mô tả môn học:
Môn học cung cấp cho sinh viên những kiến thức cơ bản về kiến trúc phần cứng và phần mềm của bộ vi xử lý x86 Fmaily. Ngôn ngữ lập trình Assembly (hợp ngữ) để giải quyết các bài toán mức thấp của hệ thống: vào/ra dữ liệu, điều khiển hệ thống, ...
6. Giáo trình chính:
Lập trình hợp ngữ cho IBM PC và máy tính tương thích.
7. Tài liệu tham khảo:
[1] Ytha Yu & Charles Marut, Lập trình hợp ngữ (Assembly) và máy vi tính IBM-PC, NXB Giáo Dục, 1996.
[2] PTS. Nguyễn Quang Tấn, Vũ Thanh Hiền, Lập trình với Hợp Ngữ, NXB Thống Kê, 1997.
[3] Văn Thế Minh, Kỹ thuật vi xử lý, NXB Giáo Dục, 1997.
[4] Trần Bá Thái, Điều khiển và ghép nối các thiết bị ngoại vi, NXB thống kê, 1987.
[5] Trần Quang Vinh, Cấu trúc máy vi tính, NXB Giáo Dục, 1998.
[6] Computer Organization and Assembly Language Programming For IBM PC and Compatibles Michael Thorne - The Benjamin-Cummings Publishing Company, Inc. 1991.
[7] Microprocessors and microcomputer-based system design Mohamed Rafiquzzaman - CRC Press, 1995.
[8] Interfacing to the IBM Personal Computer Lewis C. Eggebrecht - SAMS, 1991.
[9] Microprocessors and interfacing: Programming and Hardware Douglas V. Hall - Macmillan/McGraw-Hill, 1992.
8. Đối tượng học: Sinh viên ngành Kỹ thuật máy tính, Điều khiển tự động, Điện tử viễn thông, Kỹ thuật điện tử.
9. Giáo viên phụ trách: Nguyễn Tiến Duy.
10. Đơn vị phụ trách: Bộ môn Kỹ thuật máy tính, Khoa Điện tử.

BÀI GIẢNG MÔN: ASSEMBLY

I. MỤC ĐÍCH MÔN HỌC

II. NỘI DUNG CHÍNH


III. NỘI DUNG CHI TIẾT
CHƯƠNG 1 CƠ BẢN VỀ HỢP NGỮ
Trong chương này sẽ giới thiệu những nguyên tắc chung để tạo ra, dịch và chạy một chương trình hợp ngữ trên máy tính.
Cấu trúc ngữ pháp của lệnh hợp ngữ trong giáo trình này được trình bày theo Macro Assembler (MASM) dựa trên CPU 8086/88.
1.1. Cú pháp lệnh hợp ngữ
Một chương trình hợp ngữ bao gồm một loạt các mệnh đề (statements) được viết liên tiếp nhau, mỗi mệnh đề được viết trên một dòng.
Một mệnh đề có thể là:
o Một chỉ thị (instruction): nó sẽ được biên dịch (Assembler = ASM) thành mã máy.
o Một chỉ dẫn của Assembler (Assembler directive): ASM không chuyển thành mã máy.
Các mệnh đề của ASM gồm 4 trường:
Name Operator Operand(s) Comment
Các trường cách nhau ít nhất một dấu cách hay một ký tự TAB.
Ví dụ:
Start: Mov cx, 5 ; Khởi tạo biến đếm vòng lặp, (chỉ thị này sẽ được dịch ra mã máy).
Main Proc ; Tạo một thủ tục có tên là Main (chỉ dẫn này không được dịch ra mã máy).
1.1.1. Trường tên (Name field)
Trường này được dùng cho nhãn lệnh, tên thủ tục và tên biến. ASM sẽ chuyển tên thành địa chỉ bộ nhớ.
• Tên bao gồm các ký tự: A - z, chữ số và một số ký tự đặc biệt: ?, @, _, $.
• Tên không được chứa dấu cách.
• Độ dài từ 1 đến 31 ký tự.
• Nếu trong tên có ký tự ‘.’ thì nó phải là ký tự đầu tiên.
• Tên không được bắt đầu bằng một chữ số.
• ASM không phân biệt giữa ký tự hoa và ký tự thường.
Ví dụ:
COUNTER1 TWO WORDS ; Tên không hợp lệ (chứa dấu cách)
@CHARACTER2ABC ; Tên hợp lệ
SUM_OF_DIGITS A45.28 ; Tên không hợp lệ (chứa dấu cách)
DONE?YOU&ME ; Tên hợp lệ
.TEST ADD-REPEAT ; Tên không hợp lệ (chứa dấu cách)

Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:


THam khảo thêm chương 4 Lập trình hợp ngữ (Assembly) và máy vi tính IBM-PC
 

Các chủ đề có liên quan khác

Top