Côngviệc1 Côngviệc2 CôngviệcN

Một phần của tài liệu Chương 4 - Lập trình bằng hợp ngữ với 8088 potx (Trang 25 - 28)

Giátrị1

Từ ngữ pháp của cấu trúc ta thấy nếu Biểuthức có Giátrị1 thì Côngviệc1 đ−ợc thực hiện, nếu Biểuthức có Giátrị2 thì Côngviệc2 đ−ợc thực hiện vμ ... Điều nμy t−ơng đ−ơng với việc dùng các lệnh nhảy có điều kiện vμ nhảy không điều kiện để nhảy đến các nhãn nμo đó trong ch−ơng trình hợp ngữ. Cấu trúc CASE có thể thực hiện bằng các cấu trúc lựa chọn lồng nhau.

Ví dụ

Dùng CX để biểu hiện các giá trị khác nhau của AX theo quy tắc sau:

Nếu AX < 0 thì CX =-1, nếu AX = 0 thì CX = 0, nếu AX > 0 thì CX = 1.

Giải

Ta có thể thực hiện các công việc trên bằng mẩu ch−ơng trình sau:

CMP AX,0 ; kiểm tra dấu của AX.

JL AM ; AX < 0. JE KHONG ; AX = 0. JG DUONG ; AX > 0. AM: MOV CX,-1 JMP RA DUONG: MOV CX,1 JMP RA KHONG: XOR CX,CX

RA: ; lối ra của cấu trúc.

Cấu trúc lặp FOR - DO

Ngữ pháp (hình 4.5):

FOR Sốlầnlặp DO Côngviệc

Từ ngữ pháp của cấu trúc FOR - DO ta thấy ở đây Côngviệc đ−ợc thực hiện lặp đi lặp lại tất cả Sốlầnlặp lần. Điều nμy hoμn toμn t−ơng đ−ơng với việc dùng lệnh LOOP trong hợp ngữ để lặp lại CX lần một Côngviệc nμo đó, đ−ơng nhiên tr−ớc đó ta phải gán Sốlầnlặp cho thanh ghi CX.

Ví dụ

đúng Khởi đầu Bộđếm Côngviệc Giảm Bộđếm đi 1 Bộđếm=0? sai

Hình 4.5. Cấu trúc lặp FOR - DO.

Giải

Một dòng mμn hình trên máy IBM PC chứa đ−ợc nhiều nhất lμ 80 ký tự. Ta sẽ sử dụng hμm 2 của ngắt 21H để hiện thị 1 ký tự. Ta phải lặp lại công việc nμy 80 lần cả thảy bằng lệnh LOOP. Muốn dùng lệnh nμy, ngay từ đầu ta phải nạp vμo thanh ghi CX số lần hiện thị. Sau mỗi lần hiện thị, nội dung của CX đ−ợc tự động giảm đi 1 do tác động của lệnh LOOP.

Sau đây lμ mẩu ch−ơng trình thực hiện các công việc trên:

MOV CX,80 ; số lần hiện thị trong CX, MOV AH,2 ; AH chứa số hiệu hμm hiện thị, MOV DL,'$' ; DL chứa ký tự cần hiện thị,

HIEN: INT 21H ; hiện thị

LOOP HIEN ; cả một dòng ký tự.

RA: ; lối ra của cấu trúc.

Cấu trúc lặp WHILE - DO

Ngữ pháp (hình 4.6):

WHILE Điềukiện DO Côngviệc

Từ ngữ pháp của cấu trúc WHILE - DO ta thấy: Điềukiện đ−ợc kiểm tra đầu tiên. Côngviệc đ−ợc lặp đi lặp lại chừng nμo Điềukiện còn đúng. Điều nμy trong hợp

ngữ hoμn toμn t−ơng đ−ơng với việc dùng lệnh CMP để kiểm tra Điềukiện vμ sau đó dùng lệnh nhảy có điều kiện để thoát khỏi vòng lặp.

Một phần của tài liệu Chương 4 - Lập trình bằng hợp ngữ với 8088 potx (Trang 25 - 28)