Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu Lệnh so sánh – Lệnh nhảy – Lệnh lặp ppt
MIỄN PHÍ
Số trang
6
Kích thước
177.8 KB
Định dạng
PDF
Lượt xem
1821

Tài liệu Lệnh so sánh – Lệnh nhảy – Lệnh lặp ppt

Nội dung xem thử

Mô tả chi tiết

Bài thực hành số 2

Lệnh so sánh – Lệnh nhảy – Lệnh lặp

Mục đích

 Hiểu cách so sánh hai số trong hợp ngữ

 Hiểu cách thay đổi thứ tự thực hiện các lệnh

 Biết cách sử dụng các lệnh so sánh, nhảy và lặp

Tóm tắt lý thuyết

Lệnh so sánh

Trong hợp ngữ, muốn so sánh hai số, ta phải thực hiện một phép toán số học hoặc logic trên hai

số đó và căn cứ vào các bit trong thanh ghi cờ rồi đưa ra kết luận. Để làm việc này, có thể dùng lệnh

CMP và TEST.

Bản chất của lệnh CMP Des,Src là lệnh SUB Des,Src (thực hiện phép tính Des – Src) nhưng

kết quả của phép tính không được lưu vào Des như trong lệnh SUB.

Ví dụ: so sánh hai số nguyên dương

MOV AH,1

MOV AL,2

CMP AH,AL

Sau khi thực hiện hai lệnh trên, cờ Carry (CF) bật, báo hiệu rằng AH < AL

Bản chất của lệnh TEST Des,Src là lệnh AND Des,Src (thực hiện phép tính Des AND Src)

nhưng kết quả của phép tính không được lưu vào Des như trong lệnh AND.

Ví dụ: kiểm tra hai bit cuối cùng của AL

TEST AL,3 ; 3h = 11b

Nếu cờ Zero (ZF) bật, có nghĩa là cả hai bit 0 và 1 của AL đều bằng 0.

L ệnh nhảy

Thông thường, khi một lệnh (instruction) được thực hiện, giá trị của thanh ghi IP (instruction

pointer) được tự động cập nhật để trỏ đến lệnh kế tiếp. Ngoài ra, nội dung của thanh ghi IP chỉ có

thể bị thay đổi thông qua một số lệnh đặc biệt. Đó là: các lệnh nhảy (J*), lệnh lặp (LOOP*), lệnh gọi

hàm (call, ret), lệnh gọi ngắt (int, iret). Các lệnh này được xếp vào nhóm “Lệnh điều khiển luồng”

(Program flow control instructions). Trong bài thực hành này, chúng ta sẽ học cách sử dụng các lệnh

nhảy và các lệnh lặp.

 Lệnh nhảy không điều kiện

JMP <target>

Có các trường hợp sau:

• JMP SHORT <tên nhãn> (short jump). Khi đó trong mã lệnh lưu 1 byte khoảng

cách (offset) giữa vị trí hiện tại và vị trí cần nhảy đến. Kiểu này chỉ nhảy trong phạm

vi từ –128 đến +127 byte so với vị trí hiện tại.

Ví dụ: JMP SHORT Calculate

• JMP <tên nhãn> (near jump). Khi đó trong mã lệnh lưu 2 byte khoảng cách

Tải ngay đi em, còn do dự, trời tối mất!