Cấu trỳc rẽ nhỏnh

Một phần của tài liệu Kỹ thuật vi xử lý - Chương 2 pdf (Trang 79 - 81)

75. WAIT – Wait for TEST or INTR Signal (chờ tớn hiệu từ chõn TEST hoặc INTR).

2.8.4.2 Cấu trỳc rẽ nhỏnh

Cõu lệnh rẽ nhỏnh giỳp quyết định nhỏnh nào của chương trỡnh được thực hiện căn cứ vào điều kiện được đặt ra.

Khối lệnh Điều kiện Đ S S Biểu thức Giá trị 1 Điều kiện

Khối lệnh 2 Khối lệnh 1 Khối lệnh 1 Khối lệnh 2 Khối lệnh n Giá trị 2 Giá trị n

Đ

Cu trỳc r nhỏnh mt khi lnh (hỡnh 4.2.4a)

Nếu điều kiện được thoả món thỡ khối lệnh được thực hiện, nếu khụng khối lệnh sẽ được bỏ qua và thực hiện lệnh tiếp theo sau khối này (hỡnh 4.2.4a). Điều này tương đương với với việc dựng lệnh nhảy cú điều kiện để

bỏ qua một số thao tỏc nào đú trong chương trỡnh hợp ngữ.

Vớ dụ: Gỏn cho AX giỏ trị tuyệt đối của BX

CMP BX, 0 ;so sanh BX voi 0

JNL GAN ;nhay den GAN neu BX≥0

NEG BX ;neu BX<0 thi dao dau cua BX roi GAN:MOV AX, BX ;GAN

Cu trỳc r nhỏnh hai khi lnh (hỡnh 4.2.4b)

Nếu thoả món điều kiện 1 thỡ thực hiện khối lệnh 1, nếu khụng thỡ thực hiện khối lệnh 2 (hỡnh 4.2.4b). Điều này tương đương với việc dựng lệnh nhảy cú điều kiện và khụng điều kiện để nhảy đến cỏc nhỏnh nào đú trong chương trỡnh hợp ngữ.

Vớ dụ 1: Giả sử cú hai số 8 bit nằm trong hai ụ nhớ 1234h và 1235h. Viết chương trỡnh cho vi xử lý 8086 tỡm số lớn hơn và gửi số lớn đến ụ nhớ

1236h.

MOV AL, [1234H] ;AL←[1234H] MOV BL, [1235H] ;BL←[1235H]

CMP AL, BL ;so sanh AL va BL JG MAX1 ;den MAX1 neu AL>BL JL MAX2 ;den MAX2 neu AL<BL MAX1:MOV [1236H], AL ;[1236H]←AL JMP EXIT ;thoat MAX2: MOV [1236H], BL ;[1236H]←BL JMP EXIT ;thoat EXIT: Vớ dụ 2: Gỏn cho BL bit dấu của AX OR AX, AX ;or AX va AX

JS GAN1 ;nhay den GAN1 neu AX<0 MOV BL, 0 ;neu AX>0 thi BL←0

JMP THOAT ;roi thoat GAN1: MOV BL, 1 ;gan BL←1

THOAT: ;thoat

Nếu biểu thức cú giỏ trị bằng 1 thỡ cụng việc 1 được thực hiện, nếu biểu thức cú giỏ trị 2 thỡ cụng việc 2 được thực hiện, nếu biểu thức cú giỏ trị

n thỡ cụng việc n được thực hiện.

Vớ dụ: Cỏc thanh ghi AX và BX đang lần lượt chứa hai số a và b. Hóy so sỏnh hai sốđú và ghi kết quả vào CX như sau:

Nếu a>b thỡ CX=2 Nếu a=b thỡ CX=0 Nếu a<b thỡ CX=1 Chương trỡnh như sau:

CMP AX, BX ;so sanh AX va BX JG GAN2 ;den GAN2 neu AX>BX JE GAN0 ;den GAN0 neu AX=BX JL GAN1 ;den GAN1 neu AX<BX GAN0: MOV CX, 0 ;CX←0

JMP THOAT ;roi thoat GAN1 :MOV CX, 1 ;CX←1

JMP THOAT ;roi thoat GAN2: MOV CX, 2 ;CX←2

JMP THOAT ;roi thoat THOAT:

Một phần của tài liệu Kỹ thuật vi xử lý - Chương 2 pdf (Trang 79 - 81)