1. Trang chủ
  2. » Công Nghệ Thông Tin

Kiến trúc máy tính PHẦN II HỢP NGỮ - Chương 7 NHÓM LỆNH CHUYỂN ĐiỀU KHIỂN potx

40 450 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nhóm lệnh chuyển điều khiển
Thể loại Tài liệu
Định dạng
Số trang 40
Dung lượng 505,81 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhóm lệnh chuyển điều khiển• Lệnh nhảy không điều kiện Số có dấu... Nhảy theo kiểu không dấu... Toán hạng nguồn trong lệnh là số có dấu để cộng thêm vào thanh ghi IP... Lệnh nhảy có điều

Trang 1

Chương 7 NHÓM LỆNH CHUYỂN ĐiỀU

KHIỂN

Trang 2

Nhóm lệnh chuyển điều khiển

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

Số có dấu

Trang 3

Nhảy theo kiểu không dấu

Trang 5

Nhảy theo kiểu có dấu

Trang 6

Nhảy theo kiểu đơn

Trang 7

Nhóm lệnh chuyển điều khiển(t.t)

Trang 8

Lệnh JMP

• Dạng lệnh :

JMP shortlabel JMP mem16 JMP nearlabel JMP mem32 JMP farlabel JMP reg16

Trang 9

mem16 : IP ← [địa chỉ +1,địa chỉ]

mem32 : CS ← [địa chỉ +3,địa chỉ+2]

IP ← [địa chỉ +1,địa chỉ]

Trang 10

Lệnh JMP (t.t.)

• Lệnh nhảy đến nhãn ngắn shortlabel là lệnh

nhảy tương đối Nơi đến phải nằm trong phạm

vi từ -128 đến +127 so với vị trí của lệnh nhảy Toán hạng nguồn trong lệnh là số có dấu để

cộng thêm vào thanh ghi IP

• Ví dụ : JMP SHORT 18h

Trang 11

Lệnh nhảy có điều kiện

Dạng lệnh : Jcond shortlabel

• Giải thích : Nếu thỏa điều kiện thì nhảy,

ngược lại không làm gì cả (qua lệnh kế)

• Lệnh nhảy có điều kiện dùng trạng thái các cờ

để làm điều kiện

Trang 12

Các lệnh nhảy có điều kiện

Trang 13

Ví dụ

MOV CX,3 ; thực hiện một vòng lặp làm 3 lần

MOV AX,0 Nhan: ADD AX,12

DEC CX JNZ Nhan ; nhảy đến lệnh tại vị trí “Nhan” nếu CX ≠ 0 MOV [3000h],AX

Trang 14

cờ

• Ví dụ :

CMP AL,8 ; AL - 8

CMP WORD PTR [1000h], 3 ; [1001h,1000h] - 3

Trang 15

Lệnh LOOP

• Dạng lệnh: LOOP shortlabel

• Giải thích : giảm CX, lặp (nhảy) nếu CX ≠ 0

Lặp vòng không điều kiện với CX giữ số lần lặp

• Ví dụ:

MOV CX,3 MOV AX,0 Nhan: ADD AX,12

LOOP Nhan MOV [3000h],AX

Trang 16

• Dạng lệnh:

LOOPE shortlabelLOOPZ shortlabel

• Giải thích: giảm CX, lặp vòng (nhảy) nếuCX≠0 và ZF = 1

Trang 17

• Dạng lệnh:

LOOPNE shortlabelLOOPNZ shortlabel

• Giải thích: giảm CX, lặp vòng (nhảy) nếuCX≠0 và ZF = 0

Trang 18

Lệnh JCXZ

• Dạng lệnh : JCXZ shortlabel

• Giải thích : Nếu CX = 0 thì nhảy

• Ví dụ: tìm vị trí xuất hiện giá trị 0 đầu tiêntrong mảng 100 byte ở địa chỉ DS:SI

Trang 19

MOV CX,100 MOV DI,SI DEC DI

lap: INC DI

CMP byte ptr [DI],0 LOOPNE lap

JCXZ timthay

;xử lý không tìm thấy

;….

JMP ketthuc timthay: ;xử lý ….

;…

ketthuc:

Trang 20

Lệnh lặp

Trang 23

Cấu trúc If – Then

Trang 25

Cấu trúc If – Then - Else

Trang 27

Cấu trúc Case

Trang 29

Cấu trúc lập For - Do

Trang 31

Cấu trúc lặp While - Do

Trang 33

Cấu trúc lặp Repeat - Until

Trang 35

Bài tập

1 Viết đoạn chương trình hợp ngữ tìm giá trị

lớn nhất của 2 số 16 bit nằm trong 2 thanh ghi

AX, BX Kết quả lưu vào thanh ghi DX

BTVN 1 Viết đoạn chương trình hợp ngữ tìm giá trị

lớn nhất của 3 số 16 bit nằm trong 3 thanh ghi AX,BX,CX Kết quả chứa vào thanh ghi DX.

Trang 36

Bài tập (t.t.)

2.Viết chương trình chương trình nhập vào một

ký tự, cho biết ký tự này là chữ hoa, chữ

thường hay không là chữ cái

3.Viết chương trình nhập vào một chuỗi các ký

tự, in ra màn hình chuỗi mới với các ký tự

thường đổi thành các ký tự hoa

Trang 38

Ví dụ

• Viết chương trình con tìm max của 2 số 8bit

– Input: AL, AH chứa 2 giá trị 8bit cần tìm

– Output: DL =MAX(AH,AL)

• Giải thuật?

Trang 39

ketthuc: RET

Trang 40

Thử nghiệm CTC

.Model tiny

.Code

ORG 100h start: MOV AH,5

MOV AL,7 ; thử với AH=5, AL=7 CALL max ; gọi CTC Max

INT 20h ; ket thuc chuong trinh

; -chuong trinh con dat o

Ngày đăng: 12/08/2014, 10:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm