N T Q Hoa hoantq@hnue edu vn mailto hoantq@hnue edu vn Chương 4 Lâ ̣p trình hợp ngữ với 8088 trên IBM PC • I/Cấu trúc lâ ̣ p trình ASM • II/Cấc cấu trúc lâ ̣ p trình I/Cấu tru ́c lập trì[.]
Trang 1hoantq@hnue.edu.vn
Trang 2Chương 4: Lập trình hợp ngữ với
8088 trên IBM-PC
• I/Cấu trúc lâ ̣p trình ASM
• II/Cấc cấu trúc lâ ̣p trình
Trang 3I/Cấu trúc lập trình ASM
1 Tổng quân về ASM
2 Cấc đôận chương trình
3 Cấu trúc chung củâ mô ̣t lê ̣nh ASM
4 Dữ liê ̣u chương trình
5 Cấc biến
6 Cấc hầng cố tên
7 Dịch từ ngô n ngữ bâ ̣c câô sâng hợp ngữ
8 Khung củâ mô ̣t chương trình ASM
9 Ngất
10 Cấch tậô vầ chậy mô ̣t chương trình hợp ngữ
Trang 41.Tổng quan về ASM
• Cấc khấi niê ̣m :
– Ngô n ngữ mấy
– Trình hợp ngữ
– Trình hợp dịch
• ➔Sô sấnh với cấc ngô n ngữ lâ ̣p trình bâ ̣c câô
Trang 51.Tổng quan về ASM
• Ngô n ngữ mấy :
Mỗi lê ̣nh cố dậng mẫ riê ng (gồm mô ̣t tổ
hợp cấc bit 0 vầ 1) mầ chỉ người thiết kế vầ VXL hiểu được, gội lầ ngô n ngữ mấy dậng mẫ.
• Nhược điểm
– Khố nhớ vầ dễ viết sâi
– Khô ng đâ ̣c trưng chô hầnh đô ̣ng lê ̣nh
➔Mẫ lê ̣nh gợi nhớ.
Dô vâ ̣y, cần mô ̣t trình biê n dịch hợp ngữ để dịch lê ̣nh dậng hợp ngữ râ ngô n ngữ mấy.
Trang 61.Tổng quan về ASM
• Trình hợp ngữ : Dịch chương trình hợp ngữ râ ngô n ngữ mẫ mấy
• Trình biê n dịch : Dịch ngô n ngữ lâ ̣p trình
bâ ̣c câô râ ngô n ngữ mẫ mấy
• ➔Sô sấnh với cấc ngô n ngữ lâ ̣p trình bâ ̣c câô
Trang 72.Các đoạn chương trình
• Mô ̣t CT ASM cố 3 đôận chính:
dâtâ,stâck,côdê
• Đôận dữ liê ̣u :
được sử dụng để chứâ dữ liê ̣u củâ CT
• Sâu .DATA sễ lầ khâi bấô biến hây hầng
Trang 82.Các đoạn chương trình
• Đôận ngâ n xếp :
được sử dụng để chứâ dữ liê ̣u truy xuất thêô phương thức FILO
• Cú phấp khâi bấô
.STACK <kích thước>
Trang 92.Các đoạn chương trình
• Đôận mẫ :
được sử dụng để chứâ cấc mẫ lê ̣nh củâ CT
• Khâi bấô vị trí bất đầu đôận mẫ lầ : .CODE
<tên>
• Bê n trông đôận mẫ cấc lê ̣nh tổ chức như
mô ̣t thủ tục
Trang 102.Các đoạn chương trình
• Ví dụ
.CODE
;cấc lê ̣nh củâ chương trình chính
;cấc thủ tục khấc
Trang 11• <Tê n> <Tôấn tư> <Tôấn hậng> <Chú giẩi>
• A.Trường tên
• B.Trường tôấn tử
• C.Trường tôấn hậng
• D.Trường chú giẩi
Trang 12• Trường tên
được sử dụng lầm nhẫn lê ̣nh, tê n thủ tục hôâ ̣c
tê n biến
• Chiều dầi từ 1 đến 31 ký tự
• Bâô gồm : chữ cấi, chữ số vầ cấc ký tự đâ ̣c biê ̣t
( ? @ _ $ % ) với Phẩi đứng đầu tên
• Khô ng phâ n biê ̣t chữ hôâ , chữ thường
Trang 13• Ví dụ
Côuntêr1
@chârâctêr
SUM_OF_DIGIT
twô wôrd
2âbc
.têst
A44.21
Trang 14• Trường tôấn tử
chứâ mẫ lê ̣nh dậng hợp ngữ
• Ví dụ
MOV ADD SUB
Trang 15• Trường tôấn hậng
xấc định dữ liê ̣u sễ được cấc thâô tấc tấc đô ̣ng lên
• Cố thể khô ng cố hôâ ̣c cố 1 hôâ ̣c hâi tôấn hậng trông 1 chỉ thị
NOP INC AX ADD WORD1,2
Trang 16• Trường chú giẩi
để giẩi thích dồng lê ̣nh đố lầm gì
• Bất đầu bầng dấu ;
Trang 174.Dữ liệu chương trình
• Cấc số
• Cấc ký tự
Trang 184.Dữ liệu chương trình
• Cấc số :
– Số nhị phâ n : kết thúc bầng chữ b
– Số thâ ̣p phâ n : kết thúc bầng chữ d hôâ ̣c khô ng cố – Số thâ ̣p lục phâ n : kết thúc bầng chữ h vầ bất đầu bầng chữ số thâ ̣p phân
Trang 194.Dữ liệu chương trình
• Cấc số :
• Ví dụ :
1011
1011b
ABCDh
4421
Trang 204.Dữ liệu chương trình
• Cấc ký tự
phẩi được đâ ̣t trông dấu nhấy đơn ‘ hôâ ̣c dấu nhấy kếp “
• Ví dụ :
“A” = ‘A’ =41h
“HELLO”=‘H’’E’’L’’L’’O’