Bài giảng Kỹ thuật Vi xử lý: Chương 4 Lập trình hợp ngữ với 8088 trên IBM-PC, cung cấp cho người học những kiến thức như: cấu trúc lập trình ASM; Các cấu trúc lập trình. Mời các bạn cùng tham khảo!
N.T.Q.Hoa hoantq@hnue.edu.vn Chương 4: Lập trình hợp ngữ với 8088 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 trúc lập trình ASM 10 Tổ ng quân về ASM Cấ c đôậ n chương trình Cấ u trú c chung củ â mộ t lệ nh ASM Dữ liệ u chương trình Cấ c biế n Cấ c hầ ng cố tên Dịch từ ngôn ngữ bậ c câô sâng hợp ngữ Khung củ â mộ t chương trình ASM Ngấ t Cấ ch tậ ô vầ chậ y mộ t chương trình hợp ngữ 1.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âô 1.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 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 1.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âô 2.Các đoạn chương trình • Mợ t CT ASM cớ đơậ 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 2.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 2.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 • Bên trơng đơậ n mẫ cấ c lệ nh tổ chức mộ t thủ tụ c Tên_thủ _tụ c PROC Tên_thủ _tụ c ENDP 2.Các đoạn chương trình • Ví dụ CODE MAIN PROC ;cấ c lệ nh củ â chương trình chính Mâin ENDP ;cấ c thủ tụ c khấ c Cấu trúc rẽ nhánh • IF… THEN • IF điề u_kiệ n THEN cơng_việ c Cấu trúc rẽ nhánh • IF… THEN • Ví dụ : Viế t mợ t đơậ n chương trình nhậ p mộ t ký tự Nế u ký tự đố lầ ‘A’ thì hiể n thị tậ i đầ u dồ ng tiế p thêô Cấu trúc rẽ nhánh • IF… THEN… ELSE… • IF đk THEN công_việ c_1 ELSE công_việ c_2 ENDIF Cấu trúc rẽ nhánh • IF… THEN… ELSE… • Viế t mợ t đôậ n chương trình thực hiệ n nhậ p vầ ô từ bầ n phím mộ t ký tự.Nế u ký tự nhậ p cố mẫ ASCII nhổ thì đưâ râ mầ n hình thông bấ ô “Ký tự nầ y đứng trước ‘1’ trông bẩ ng mẫ ”, ngược lậ i đưâ râ mầ n hình thông bấ ô “Ký tự nầ y đứng sâu ‘1’ trông bẩ ng mẫ ” Cấu trúc rẽ nhánh • CASE… OF • CASE biể u_thức Giấ _trị_1:CV_1 Giấ _trị_2:CV_2 …… Giấ _trị_n:CV_n END CASE Cấu trúc rẽ nhánh • CASE… OF • Viế t mợ t đơậ n chương trình nhậ p vầ ô mộ t ký tự.Nế u ký tự đứng trước ‘A’ trông bẩ ng mẫ ASCII thì đưâ râ thông bấ ô “Ký tự đứng trước ‘A’”.Nế u ký tự nhậ p vầ ô lầ ‘A’ thì đưâ râ thông bấ ô “Chính lầ ký tự ‘A’”.Nế u ký tự nhậ p vầ ô đứng sâu ‘A’ thì đưâ râ thông bấ ô “Ký tự đứng sâu ‘A’” Cấu trúc rẽ nhánh với điều kiện kép • Lầ cấ u trú c rễ nhấ nh trông đố điề u kiệ n lầ sự kế t hợp củ â hâi hây nhiề u điề u kiệ n khấ c – Điề u kiệ n kế t hợp AND – Điề u kiệ n kế t hợp OR Cấu trúc rẽ nhánh với điều kiện kép • Viế t vầ ô mộ t chương trình nhậ p vầ ô mộ t ký tự.Kiể m trâ xêm ký tự nhậ p vầ ô cố phẩ i lầ chữ số không • Viế t vầ ô mộ t chương trình nhậ p vầ ô mộ t ký tự.Kiể m trâ xêm ký tự nhậ p vầ ô cố phẩ i lầ chữ ‘Y’ hôậ c chữ ‘y’ không Cấu trúc lặp • FOR… TO… DO… • WHILE… DO… • REPEAT… UNTIL… Cấu trúc rẽ lặp • FOR… TO… DO… • FOR số _lầ n_lậ p DO công_việ c Cấu trúc rẽ lặp • FOR… TO… DO… • FOR sớ _lầ n_lậ p DO cơng_việ c • Viế t mợ t đơậ n chương trình thực hiệ n việ c nhậ p vầ ô mộ t ký tự.Sâu đố chô nố hiể n thị 200 lầ n mầ n hình Cấu trúc rẽ lặp • WHILE… DO • WHILE điề u_kiệ n DO cơng_việ c Cấu trúc rẽ lặp • WHILE… DO • WHILE điề u_kiệ n DO cơng_việ c • Viế t mộ t đôậ n chương trình thực hiệ n đế m số ký tự nhậ p vầ ô từ bầ n phím Cấu trúc rẽ lặp • REPEAT… UNTIL • REPEAT cơng_việ c UNTIL điề u_kiệ n Cấu trúc rẽ lặp • REPEAT… UNTIL • REPEAT cơng_việ c UNTIL điề u_kiệ n • Viế t mợ t đơậ n chương trình nhậ p vầ ô từ bầ n phím mộ t chuỗ i ký tự kế t thú c bầ ng việ c nhấ n phím ENTER ... 4. Dữ liệu chương trình • Cấ c sớ : • Vi? ? dụ : 1011 1011b ABCDh 44 21 4. 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 “ • Vi? ?... Các cờ thay đởi CF,OF Lệnh chia • DIV : Division • DIV Src • Chú ý : – Src8 : AX/Src - > KQ -> AL, dư -> AH – Src16: DXAX/Src -> KQ -> AX,dư -> DX – Có thể xảy tràn các trường hợp •... > 65536 (src16) Lệnh chia • IDIV :Integer Division • IDIV Src • Chú ý : – Src8 : AX/Src - > KQ -> AL, dư -> AH – Src16: DXAX/Src -> KQ -> AX,dư -> DX – Có thể xảy tràn các trường hợp •