1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ĐIỆN tử VIỄN THÔNG chuong 3 tap lenh laptrinh hop ngu khotailieu

144 155 0

Đ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

Cấu trúc

  • Chương 3: Tập lệnh của Vi Xử Lý

  • Khái niệm lệnh

  • Định dạng lệnh - Instruction Format

  • Slide 4

  • Slide 5

  • Slide 6

  • Slide 7

  • Các loại toán hạng -Operand types

  • Effective Address

  • Các chế độ địa chỉ- addressing mode

  • Chế độ địa chỉ tức thời – Immediate Addressing

  • Chế độ địa chỉ thanh ghi - Register

  • Chế độ địa chỉ trực tiếp Direct Addressing

  • Slide 14

  • Chế độ địa chỉ gián tiếp thanh ghi Register Indirect Addressing

  • Chế độ địa chỉ tương đối cơ sở Based Relative Addressing

  • Chế độ địa chỉ chỉ số tương đối Indexed Relative Addressing

  • Chế độ địa chỉ cơ sở chỉ số tương đối Based Indexed Relative Addressing

  • Ví dụ về các chế độ địa chỉ Addressing Mode Examples

  • Slide 20

  • Chế độ địa chỉ cổng I/O Port Addressing

  • Tập lệnh của 80286

  • Các lệnh truyền dữ liệu - MOVE

  • Các toán hạng sử dụng trong lệnh MOV

  • Các lệnh truyền dữ liệu - EXCHANGE

  • Các lệnh truyền dữ liệu

  • Slide 27

  • Các lệnh truyền dữ liệu- PUSH, POP

  • Các lệnh truyền dữ liệu- IN, OUT

  • TỔNG KẾT CÁC LỆNH TRUYỀN DỮ LIỆU

  • CÁC LỆNH XỬ LÝ DỮ LIỆU

  • Các lệnh số học và logic Arithmetic/Logic Instructions

  • Các lệnh số học Arithmetic Instruction Summary

  • Các lệnh cộng Addition Instruction Types

  • Các lệnh cộng – ADD

  • Các lệnh cộng Cộng có nhớ – ADC (Add with Carry)

  • Ví dụ: ADC - Add with Carry

  • Các lệnh số học – Tăng

  • Ví dụ về lệnh tăng - Increment Examples

  • Các lệnh số học – Chỉnh thập phân cho phép cộng (DAA)

  • Chỉnh thập phân Decimal Adjust after Addition

  • Ví dụ về lệnh DAA Decimal Adjust after Addition Example

  • Các lệnh số học – Chỉnh ASCII cho phép cộng (AAA)

  • Chỉnh ASCII sau lệnh cộng ASCII Adjust after Addition

  • Các lệnh trừ Subtraction Instruction Types

  • Các toán hạng sử dụng trong các lệnh cộng trừ Allowable Operands for add, sub

  • Trừ có nhớ Subtract with Borrow, sbb

  • Lệnh nhân - Multiplication

  • Các lệnh nhân - Multiply Instructions

  • Các lệnh nhân toán hạng tức thời đặc biệt Special Immediate Multiply Instruction

  • Lệnh chia - Division

  • Ví dụ cho các lệnh chia Division Instruction Examples

  • Các lệnh logic Logical Instructions

  • Các loại lệnh logic Logic Instruction Types

  • Tác động mức bit Bit Level Logic

  • Slide 56

  • Che bit - Masking Operations

  • Chú ý về các thuật toán chuyển đổi

  • Ví dụ lệnh AND

  • Lệnh kiểm tra bit Bit Test Instruction, test

  • Các lệnh dịch - Shifts

  • Tính toán số học đơn giản bằng lệnh dịch Simple Arithmetic Using Shifts

  • Các lệnh quay - Rotates

  • Ví dụ về sử dụng lệnh quay Example Using Rotates

  • Program Control Instructions

  • Các lệnh điều khiển chương trình Program Control Instructions

  • Phân loại các lệnh điều khiển chương trình Program Control Instructions

  • Các lệnh điều khiển chương trình Control Instruction Summary

  • Lệnh điều khiển chương trình đơn giản nhất Simplest Control Instruction, jmp

  • Ví dụ về lệnh nhảy ngắn Example with Short Jump

  • Nhảy gián tiếp - Indirect Jump

  • Nhảy theo địa chỉ gián tiếp Indirect Addressed Jump

  • Các lệnh nhảy có điều kiện Conditional Control Instruction Summary Rẽ nhánh theo các cờ - Simple Flag Branches

  • Các lệnh rẽ nhánh theo phép so sánh không dấu Branches for unsigned comparisons

  • Nhảy theo phép so sánh số có dấu Branches for signed comparisons

  • Lệnh lập điều kiện SET condition Instruction

  • Các lệnh lặp Iteration Instruction, loop

  • Các thủ tục - Procedures

  • Lệnh call

  • Ví dụ về lệnh call

  • Giải thích ví dụ về lệnh Call

  • Lệnh call với địa chỉ gián tiếp call Instruction with Indirect Address

  • Slide 83

  • Lệnh quay về ret Instruction

  • Các lệnh điều khiển cờ

  • Các lệnh xử lý chuỗi dữ liệu String Instructions

  • Các lệnh di chuyển chuỗi dữ liệu String Transfer Instructions

  • Slide 88

  • Lặp lại lệnh chuyển chuỗi

  • Repeated String Move Example (Cont.)

  • Assembling/Linking

  • Running the String Move Program

  • Các lệnh xử lý chuỗi khác Other String Instructions

  • Lệnh quét chuỗi String Scan Instruction, scas

  • Các lệnh logic từ CPU 386 Logic Instruction Types (386+)

  • Double Precision Shifts

  • Bỏ qua các ký tự khoảng trống ASCII Skip ASCII Space Character

  • Lệnh so sánh chuỗi Compare String Instruction, cmps

  • Tiền tố Reapeat

  • Tổng kết tập lệnh

  • LẬP TRÌNH HỢP NGỮ TRÊN MÁY PC

  • Nội dung

  • Dòng lệnh hợp ngữ MASM 8086 Instruction - Basic Structure

  • Ví dụ về dòng lệnh hợp ngữ

  • Khung chương trình nguồn hợp ngữ Anatomy of MASM Source File

  • Các loại đoạn trong một chương trình hợp ngữ Assembler Language Segment Types

  • Sử dụng trình hợp dịch MASM Using MASM Assembler

  • Sử dụng chương trình hợp dịch/liên kết Using MASM Assembler/Linker (Cont.)

  • Chương trình hợp ngữ MASM Assembler Language

  • Ví dụ chương trình hợp ngữ MASM Program Example

  • Một cách khác để định nghĩa các đoạn Another Way to define Segments

  • Thêm một cách khác để định nghĩa các đoạn Yet another way to define Segs

  • Slide 113

  • Slide 114

  • Slide 115

  • Slide 116

  • Các chỉ thị hợp dịch Masm Assembler Directives

  • Các chỉ thị khai báo dữ liệu Data Allocation Directives

  • Slide 119

  • Home Work

  • Chú ý

  • CÁC HÀM CƠ BẢN CỦA DOS

  • Slide 123

  • Slide 124

  • Slide 125

  • Slide 126

  • CÁC CẤU TRÚC LẬP TRÌNH CƠ BẢN

  • Slide 128

  • Slide 129

  • Slide 130

  • Slide 131

  • Slide 132

  • Slide 133

  • Slide 134

  • Slide 135

  • Slide 136

  • Slide 137

  • Slide 138

  • Slide 139

  • Slide 140

  • Một số ví dụ cơ bản

  • Slide 142

  • Slide 143

  • Slide 144

Nội dung

Chương 3: Tập lệnh của Vi Xử Ly Phạm Thế Duy ptduy@yahoo.com Khái niệm lệnh  Là chuỗi bit 0, cung cấp để vi xử lý thực hiện một chức bản  Bao gồm hai phần:  OP CODE: chọn chức thực hiện  Operand: Chọn dữ liệu cho lệnh Định dạng lệnh - Instruction Format opcode low addr mod high addr reg d w r/m optional Low Displacement or Immediate optional High Displacement or Immediate optional Low Immediate optional High Immediate opcode 6-bit chỉ thị loại lệnh sẽ thực hiện d (destination): d=1 chỉ thị toán hạng ghi Reg là toán hạng đích d=0 chỉ thị toán hạng ghi Reg là toán hạng nguồn w (word): w=1 toán hạng lệnh bao gồm hai byte w=0 toán hạng lệnh bao gồm 01 byte Định dạng lệnh - Instruction Format opcode low addr mod high addr reg d w r/m optional Low Displacement or Immediate optional High Displacement or Immediate optional Low Immediate optional High Immediate mod is 2-bit chỉ thị chế độ địa chỉ (tuỳ theo giá trị của r/m) reg là 3-bit chỉ thị toán hạng ghi (bảng kế) r/m là 3-bit chỉ thị vị trí của toán hạng là ghi hay bộ nhớ (r/m : register/memory) reg w=1 w=0 000 ax al 001 cx cl 010 dx dl 011 bx bl 100 sp ah 101 bp ch 110 si dh 111 di bh Định dạng lệnh - Instruction Format Mod M/R 000 001 010 011 100 101 110 111 00 [BX]+[SI] [BX]+[DI] [BP]+[SI] [BP]+[DI] [SI] [DI] [BP] [BX] 01 [BX]+[SI] + d8 [BX]+[DI] + d8 [BP]+[SI] + d8 [BP]+[DI] + d8 [SI] + d8 [DI] + d8 [BP] + d8 [Bx] + d8 10 [BX]+[SI] + d16 [BX]+[DI] + d16 [BP]+[SI] + d16 [BP]+[DI] + d16 [SI] + d16 [DI] + d16 [BP] + d16 [Bx] + d16 11 W=0 W=1 AL CL DL BL AH CH DH BH AX CX DX BX SP BP SI DI Định dạng lệnh - Instruction Format opcode low addr mod high addr reg d w r/m optional Low Displacement or Immediate optional High Displacement or Immediate optional Low Immediate optional High Immediate Displacement có thể hoặc 16 bit - Là giá trị Hex được mã hoá lệnh - Sử dụng để tính toán giá trị địa chỉ của toán hạng Immediate có thể 8, 16 hoặc 32 bit - là số hex - Sử dụng làm toán hạng lệnh Định dạng lệnh - Instruction Format opcode low addr mod high addr reg r/m optional Low Displacement or Immediate optional High Displacement or Immediate optional Low Immediate optional High Immediate Ví dụ xét lệnh: Mã lệnh sẽ là: opcode là: d là: w là: mod là: reg là: r/m là: d w mov 100010 1 11 000 011 ax, bx 8B C3 = 1000101111000011 mov ghi là toán hạng đích toán hạng đích là word chỉ thị giá trị r/m trỏ tới a ghi ghi toán hạng đích là ax ghi toán hạng nguồn là bx Các loại toán hạng -Operand types 1) Register - Được mã hoá lệnh • Lệnh thực hiện nhanh • Khơng có truy cập Bus (in instr queue) • Chiều dài lệnh ngắn 2) Immediate - Hằng sớ mã hoá lệnh • hoặc 16 bit • Không truy cập BUS (in instr queue) • Chỉ có thể là toán hạng nguồn 3) Memory – Nằm bợ nhớ, u cầu truy cập BUS • Có thể cần tính toán địa chỉ • Địa chỉ của toán hạng lệnh là địa chỉ Offset hay: EFFECTIVE ADDRESS Effective Address • Tính toán bởi EU • Thơng thường, Effective address = displacement + [base register]+ [index register] (if any) (if any) (if any) • Có thể tính toán từ 03 giá trị – Có một số chế đợ địa chỉ khác nhau: • Displacement – hoặc 16 bit là hằng số lệnh – Thanh ghi sở “base register” cần là BX hoặcBP – Thanh ghi chỉ số “index register” cần là SI hoặc DI Các chế độ địa chỉ- addressing mode  Tức thời (Immediate)  Thanh ghi (Register)  Trực tiếp (Direct)  Gián tiếp ghi (Indirect register)  Tương đối Cơ sở (Based relative)  Tương đối Chỉ số (Indexed Relative)  Cơ sở chỉ số (Based Index) CÁC CẤU TRÚC LẬP TRÌNH CƠ BẢN    Cấu trúc IF – THEN – ELSE Ngữ pháp: IF Điều kiện THEN Công việc1 ELSE Công việc Giải thuật của cấu trúc trình bày hình 4.2 cấu trúc này nếu thỏa điều kiện thì công việc được thực hiện, nếu không thì công việc được thực hiện Trong hợp ngữ điều này tương đương với việc sử dụng các lệnh nhảy có điều kiện và không điều kiện đến các nhãn khác CÁC CẤU TRÚC LẬP TRÌNH CƠ BẢN  Cấu trúc IF – THEN – ELSE Sai Đúng Điều kiện Công việc Công việc Hình 4.2 Giải thuật cấu trúc IF – THEN – ELSE  Ví dụ : Tìm số nhỏ hai số chứa AH và BH gán cho AL CMP AH,BH ;AH

Ngày đăng: 12/11/2019, 13:33

TỪ KHÓA LIÊN QUAN

w