1. Trang chủ
  2. » Công Nghệ Thông Tin

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

3 106 0

Đ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 3
Dung lượng 193,1 KB

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

Nội dung

Bài giảng Kiến trúc máy tính: Chương 1 Đại cương về Hợp ngữ được biên soạn nhằm mục đích phục vụ cho việc giảng dạy. Nội dung bài giảng gồm: Tìm hiểu cấu trúc tổng quát của PC, tìm hiểu khái quát về Hợp ngữ

Trang 1

Bài 1 Đại cương về Hợp ngữ

Mục tiêu

zTì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 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.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ớ

z (8086) dài 20 bit, bộ nhớ 1MB

z Địa chỉ tương đối:

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)

zSegment: địa chỉ tuyệt đối bắt đầu đoạn (chia cho 16)

Ví dụ: 11340h Æ 1134h

zOffset: 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

Segment

1134h

12363h

11340h

Offset

1023h

Trang 2

1.4 Tổ chức thanh ghi

zThanh ghi là nơi lưu trữ dữ liệu trong CPU

zGồm 16 thanh ghi, mỗi thanh dài 16 (hoặc 32 bit)

zNgười dùng chỉ dùng địa chỉ tương đối

zCPU sẽ chuyển thành đ/chỉ tuyệt đối và truy xuất bộ nhớ

z Nhóm thanh ghi đoạn (Segment Register)

(chứa địa chỉ đoạn các ô nhớ cần truy xuất)

zCS (Code Seg.) chứa địa chỉ đoạn vùng mã lệnh

zES (Extra Seg.) kèm thêm với DS

z Nhóm thanh ghi đa dụng:

zAX, BX, CX, DX

zXem như 1 thanh ghi 16 bit (ví dụ: AX) hoặc 2 thanh ghi 8 bit (ví dụ: AH (high), AL (low))

zChứa dữ liệu, nhưng trong mỗi lệnh sẽ có ý nghĩa riêng

z Nhóm thanh ghi con trỏ và chỉ số (Pointer, Index Reg)

(chứa địa chỉ offset các vùng dữ liệu)

zSI (Source Index) và

DI (Destination Index) ứng với địa chỉ seg trong DS, ES

zSP (Stack Pointer) và

BP (Base Point.) ứng với địa chỉ segment trong SS

z Nhóm thanh ghi cờ và con trỏ lệnh

zFLAGS: ghi nhận thông tin điều khiển và trạng thái CPU (sẽ nói kỹ ở bài sau)

zIP (Instruction Pointer) địa chỉ offset của lệnh tiếp, ứng với địa chỉ segment trong CS

z (Các thanh ghi sắp xếp theo chức năng)

1.5 Ngôn ngữ máy – Hợp ngữ

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 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ữ

zChương trình hợp ngữ gồm nhiều lệnh, mỗi lệnh viết trên 1 dòng

zGồm 2 loại: chỉ thị (lệnh) và chĩ dẫn (hướng dẫn hợp dịch)

z Cú pháp: <Tên> <TácTử> <TácTố> <;GhiChú>

z<Tên>: Là chuỗi gồm các ký tự, ký số, ? , , @ , _ , $, %

ƒ Nhãn: vị trí trong chương trình (theo sau :), tên thủ tục, tên biến

ƒ Ký hiệu: đại diện cho hằng số hoặc chuỗi ký tự

z<TácTử>: Tên gợi nhớ của lệnh

z<TácTố>: 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<;GhiChú>: Sau dấu ; để giải thích ý nghĩa lệnh

z Cách viết số:

z mặc định thập phân (D/d), hexa (H/h), binary (B/b) 10h

1011b

z Cách viết chuỗi:

z giữa 2 dấu nháy đơn hoặc nháy kép ‘A’ “ABC”

z (các ký tự sẽ được chuyển thành mã ASCII tương ứng)

Trang 3

z Định nghĩa vùng nhớ dữ liệu (biến):

zNhãn DB Trị1, Trị2,

zNhãn DW Trị1, Trị2,

Nhãn là tên vùng nhớ (biến), được định nghĩa với kích thước

là byte (DB) hoặc word (DW), được gán Trị

ƒ Gán nhiều trị giống nhau: toán tử DUP SCO DB 6 DUP (0)

z Định nghĩa hằng:

zTên EQU Hằng

LF EQU 0Ah ; Line Feed, sang dòng mới

STR EQU ‘Du lieu nhap sai!!’

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

z Khai báo kích thước chương trình

.MODEL Kiểu ; thường dùng SMALL

z Khai báo kích thước vùng ngăn xếp

.STACK KíchThước ; thường 100h, mặc định 1024

z Khai báo dữ liệu bắt đầu bằng chỉ dẫn

.DATA

z Khai báo mã lệnh bắt đầu bằng chỉ dẫn

.CODE

z Kết thúc chương trình bằng chỉ dẫn

END

1.7 Một số lệnh đơn giản

z MOV Đích, Nguồn

z Sao chép dữ liệu (Nguồn) vào thanh ghi / vùng nhớ (Đích)

z Hai tác tố không đồng thời là vùng nhớ hoặc th/ghi đoạn

z XCHG Đích, Nguồn

z Hoán chuyển dữ liệu (không đồng thời là vùng nhớ)

z ADD Đích, Nguồn

z Cộng dồn Nguồn vào Đích Hai tác tố khg đồng thời là vùng nhớ

z SUB Đích, Nguồn

z Trừ Đích cho Nguồn

z INC Đích

z Tăng Đích lên 1

z DEC Đích

z Giảm Đích đi 1

z NEG Đích

z Đổi dấu Đích

z INT 21h

Gọi trình con của hệ điều hành, chức năng tùy theo trị th/ghi AH

zAH = 1

ƒ Nhận 1 ký tự từ bàn phím, mã ASCII chứa trong AL

zAH = 2

ƒ Xuất 1 ký tự ra màn hình, ký tự chứa trong DL

zAH = 9

ƒ Xuất chuỗi ký tự có địa chỉ offset trong DX (seg trong DS)

ƒ Chuỗi ký tự phải kết thúc bằng ‘$’

.DATA MSG DB “Chuoi can hien thi$”

.CODE MOV AX, @DATA ; lấy địa chỉ seg dữ liệu (MOV AX, SEG DATA) MOV DS, AX ; đưa vào DS

MOV AH, 9 LEA DX, MSG ; đưa off MSG vào DX (MOV DX, OFFSET MSG) INT 21h

zAH = 4Ch

ƒ Kết thúc chương trình và trả điều khiển về cho hệ điều hành

Ngày đăng: 30/01/2020, 13:20

TỪ KHÓA LIÊN QUAN

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