intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Nguyễn Xuân Quang | Ngày: | Loại File: PDF | Số trang:40

228
lượt xem
38
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tham khảo tài liệu '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', công nghệ thông tin, phần cứng phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

Chủ đề:
Lưu

Nội dung Text: 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

  1. Chương 7 NHÓM LỆNH CHUYỂN ĐiỀU KHIỂN
  2. Nhóm lệnh chuyển điều khiển • Lệnh nhảy không điều kiện JMP • Lệnh nhảy có điều kiện JB / JNAE JL / JNGE JBE / JNA JLE / JNG Số Số JA / JNBE JG / JNLE không có dấu dấu JAE / JNB JLE / JNL JE/ JZ JNE/ JNZ
  3. Nhảy theo kiểu không dấu
  4. Nhảy theo kiểu có dấu
  5. Nhảy theo kiểu đơn
  6. Nhóm lệnh chuyển điều khiển(t.t) • Lệnh so sánh CMP • Lệnh lặp LOOP • Các lệnh khác JP/JNP, JS/JNS, JO/JNO JC / JNC, JZ/ JNZ JCXZ
  7. Lệnh JMP • Dạng lệnh : JMP shortlabel JMP mem16 JMP nearlabel JMP mem32 JMP farlabel JMP reg16 • Giải thích : shortlabel : IP ← IP + độ dời nearlabel : IP ← địa chỉ farlabel : CS ← địa chỉ segment IP ← địa chỉ offset
  8. Lệnh JMP (t.t.) • Dạng lệnh : JMP shortlabel JMP mem16 JMP nearlabel JMP mem32 JMP farlabel JMP reg16 • Giải thích : reg16 : IP ← reg16 mem16 : IP ← [địa chỉ +1,địa chỉ] mem32 : CS ← [địa chỉ +3,địa chỉ+2] IP ← [địa chỉ +1,địa chỉ]
  9. 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 JMP 0F008h JMP DWORD PTR [3000h]
  10. 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
  11. Các lệnh nhảy có điều kiện
  12. 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
  13. Lệnh CMP • Dạng lệnh : CMP reg,reg CMP reg,immed CMP mem,reg CMP mem,immed CMP reg,mem CMP accum,immed • Giải thích : phép so sánh thực hiện bằng cách trừ toán hạng đích cho toán hạng nguồn, không lưu lại kết quả mà chỉ giữ lại tác động của phép trừ lên các cờ. • Ví dụ : CMP AL,8 ; AL - 8 CMP WORD PTR [1000h], 3 ; [1001h,1000h] - 3
  14. 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
  15. LOOPE/LOOPZ • Dạng lệnh: LOOPE shortlabel LOOPZ shortlabel • Giải thích: giảm CX, lặp vòng (nhảy) nếu CX≠0 và ZF = 1
  16. LOOPNE/LOOPNZ • Dạng lệnh: LOOPNE shortlabel LOOPNZ shortlabel • Giải thích: giảm CX, lặp vòng (nhảy) nếu CX≠0 và ZF = 0
  17. 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ên trong mảng 100 byte ở địa chỉ DS:SI
  18. 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:
  19. Lệnh lặp
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2