Bài giảng Kiến trúc máy tính & Hợp ngữ - Bài 1: Đại cương về Hợp ngữ

Mục tiêu

z Tìm hiểu cấu trúc tổng quát của PC

z Tổ chức bộ nhớ

z Tổ chức các thanh ghi

z Tìm hiểu khái quát về Hợp ngữ

z Cấu trúc lệnh

z Cấu trúc chương trình hợp ngữ

z Một số lệnh cơ bản

Bài giảng Kiến trúc máy tính & Hợp ngữ - Bài 1: Đại cương về Hợp ngữ trang 1

Trang 1

Bài giảng Kiến trúc máy tính & Hợp ngữ - Bài 1: Đại cương về Hợp ngữ trang 2

Trang 2

Bài giảng Kiến trúc máy tính & Hợp ngữ - Bài 1: Đại cương về Hợp ngữ trang 3

Trang 3

pdf 3 trang xuanhieu 10500
Bạn đang xem tài liệu "Bài giảng Kiến trúc máy tính & Hợp ngữ - Bài 1: Đại cương về Hợp ngữ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính & Hợp ngữ - Bài 1: Đại cương về Hợp ngữ

Bài giảng Kiến trúc máy tính & Hợp ngữ - Bài 1: Đại cương về Hợp ngữ
 Mục tiêu
 Bài 1
 Đại cương về Hợp ngữ z Tìm hiểu cấu trúc tổng quát của PC
 z Tổ chức bộ nhớ
 z Tổ chức các thanh ghi
 z Tìm hiểu khái quát về Hợp ngữ
 z Cấu trúc lệnh
 z Cấu trúc chương trình hợp ngữ
 z Một số lệnh cơ bản
1.1 Tổ chức PC 1.2 CPU
1.3 Tổ chức bộ nhớ
z Địa chỉ tuyệt đối:
 z Xác định vị trí của từng byte trong bộ nhớ Segment Offset
 z (8086) dài 20 bit, bộ nhớ 1MB 1134h 1023h
z Địa chỉ tương đối: 11340h
 z Chế độ thực, truy cập bộ nhớ theo dạng 
 Segment:Offset ( Đoạn : Ô )
 z Segment, Offset: địa chỉ 16 bit (lưu trong thanh ghi)
 z Segment: địa chỉ tuyệt đối bắt đầu đoạn (chia cho 16)
 Ví dụ: 11340h Æ 1134h 12363h
 z Offset: vị trí của byte trong đoạn
 z Các đoạn có thể chồng lên, nối tiếp, cách xa nhau
 z Chỉ đề cập đến chế độ thực và bộ lệnh 8086
 1
 z Nhóm thanh ghi đa dụng:
1.4 Tổ chức thanh ghi z AX, BX, CX, DX
 z Xem như 1 thanh ghi 16 bit (ví dụ: AX)
 hoặc 2 thanh ghi 8 bit (ví dụ: AH (high), AL (low))
 z Thanh ghi là nơi lưu trữ dữ liệu trong CPU
 z Chứa dữ liệu, nhưng trong mỗi lệnh sẽ có ý nghĩa riêng
 z Gồm 16 thanh ghi, mỗi thanh dài 16 (hoặc 32 bit)
 z Nhóm thanh ghi con trỏ và chỉ số (Pointer, Index Reg)
 z Người dùng chỉ dùng địa chỉ tương đối
 (chứa địa chỉ offset các vùng dữ liệu)
 z CPU sẽ chuyển thành đ/chỉ tuyệt đối và truy xuất bộ nhớ
 z SI (Source Index) và 
 z Nhóm thanh ghi đoạn (Segment Register) DI (Destination Index) ứng với địa chỉ seg. trong DS, ES
 (chứa địa chỉ đoạn các ô nhớ cần truy xuất) z SP (Stack Pointer) và 
 BP (Base Point.) ứng với địa chỉ segment trong SS
 z CS (Code Seg.) chứa địa chỉ đoạn vùng mã lệnh
 z Nhóm thanh ghi cờ và con trỏ lệnh
 z DS (Data Seg.) dữ liệu
 z FLAGS: ghi nhận thông tin điều khiển và trạng thái CPU
 z SS (Stack Seg.) ngăn xếp
 (sẽ nói kỹ ở bài sau)
 z ES (Extra Seg.) kèm thêm với DS
 z IP (Instruction Pointer) địa chỉ offset của lệnh tiếp, 
 ứng với địa chỉ segment trong CS
 1.5 Ngôn ngữ máy – Hợp ngữ
 z (Các thanh ghi sắp xếp theo chức năng) z Ngôn ngữ máy:
 z Dạng nhị phân
 z Thực hiện nhanh, chiếm ít chỗ trong bộ nhớ
 z Khó viết, khó nhớ
 z Hợp ngữ:
 z Dùng một số ký hiệu dễ nhớ
 z Cần có ch/trình chuyển hợp ngữ sang ng/ngữ máy
1.6 Cách viết lệnh hợp ngữ
 z Chương trình hợp ngữ gồm nhiều lệnh, mỗi lệnh viết trên 1 dòng
 z Cách viết số: 
 z Gồm 2 loại: chỉ thị (lệnh) và chĩ dẫn (hướng dẫn hợp dịch)
 z mặc định thập phân (D/d), hexa (H/h), binary (B/b) 10h 
z Cú pháp: 1011b
 z : Là chuỗi gồm các ký tự, ký số, ? , . , @ , _ , $, %
 z Cách viết chuỗi: 
 ƒ Nhãn: vị trí trong chương trình (theo sau :), tên thủ tục, tên biến
 z giữa 2 dấu nháy đơn hoặc nháy kép ‘A’ “ABC”
 ƒ Ký hiệu: đại diện cho hằng số hoặc chuỗi ký tự
 z (các ký tự sẽ được chuyển thành mã ASCII tương ứng)
 z : Tên gợi nhớ của lệnh
 z : Xác định dữ liệu sẽ được xử lý bởi lệnh
 Nếu có nhiều tác tố, cách nhau dấu phẩy, 
 Nếu có 2 tác tố, có thứ tự: tác tố đích, tác tố nguồn
 z : Sau dấu ; để giải thích ý nghĩa lệnh
 2
 z Định nghĩa vùng nhớ dữ liệu (biến): z Cấu trúc chương trình hợp ngữ:
 z Khai báo kích thước chương trình
 z Nhãn DB Trị1, Trị2, ...
 .MODEL Kiểu ; thường dùng SMALL ...
 z Nhãn DW Trị1, Trị2, ...
 z Khai báo kích thước vùng ngăn xếp
 Nhãn là tên vùng nhớ (biến), được định nghĩa với kích thước .STACK KíchThước ; thường 100h, mặc định 1024
 là byte (DB) hoặc word (DW), được gán Trị... z Khai báo dữ liệu bắt đầu bằng chỉ dẫn
 ƒ Không gán trị: ? B DB ? .DATA
 ƒ Gán nhiều trị giống nhau: toán tử DUP SCO DB 6 DUP (0) ...
 z Định nghĩa hằng: z Khai báo mã lệnh bắt đầu bằng chỉ dẫn
 .CODE
 z Tên EQU Hằng
 ...
 ƒ CR EQU 0Dh ; (ascii code) Carriage Return, về đầu dòng
 LF EQU 0Ah ; Line Feed, sang dòng mới z Kết thúc chương trình bằng chỉ dẫn
 STR EQU ‘Du lieu nhap sai!!’ END
 ƒ MESS DB STR,CR,LF,’$’
 z INT 21h
1.7 Một số lệnh đơn giản Gọi trình con của hệ điều hành, chức năng tùy theo trị th/ghi AH
 z MOV Đích, Nguồn z AH = 1
 z Sao chép dữ liệu (Nguồn) vào thanh ghi / vùng nhớ (Đích) ƒ Nhận 1 ký tự từ bàn phím, mã ASCII chứa trong AL
 z AH = 2
 z Hai tác tố không đồng thời là vùng nhớ hoặc th/ghi đoạn
 ƒ Xuất 1 ký tự ra màn hình, ký tự chứa trong DL
 z XCHG Đích, Nguồn
 z AH = 9
 z Hoán chuyển dữ liệu (không đồng thời là vùng nhớ) ƒ Xuất chuỗi ký tự có địa chỉ offset trong DX (seg. trong DS)
 z ADD Đích, Nguồn ƒ Chuỗi ký tự phải kết thúc bằng ‘$’
 .DATA
 z Cộng dồn Nguồn vào Đích. Hai tác tố khg đồng thời là vùng nhớ
 MSG DB “Chuoi can hien thi$”
 z SUB Đích, Nguồn .CODE
 z Trừ Đích cho Nguồn MOV AX, @DATA ; lấy địa chỉ seg dữ liệu (MOV AX, SEG DATA)
 MOV DS, AX ; đưa vào DS
 z INC Đích
 MOV AH, 9
 z Tăng Đích lên 1 LEA DX, MSG ; đưa off MSG vào DX (MOV DX, OFFSET MSG)
 z DEC Đích INT 21h
 z Giảm Đích đi 1 z AH = 4Ch
 ƒ Kết thúc chương trình và trả điều khiển về cho hệ điều hành
 z NEG Đích
 z Đổi dấu Đích
 3

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_hop_ngu_bai_1_dai_cuong_ve_hop.pdf