Chương 3: Tập lệnh của vi xử lý

144 719 2
Chương 3: Tập lệnh của vi xử lý

Đ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

Chương 3: Tập lệnh của Vi Xử Lý Phạm Thế Duy ptduy@yahoo.com Khái niệm lệnh  Là chuỗi bit 0, 1 cung cấp để vi xử lý thực hiện một chức năng cơ bản.  Bao gồm hai phần:  OP CODE: chọn chức năng thực hiện.  Operand: Chọn dữ liệu cho lệnh. Định dạng lệnh - Instruction Format opcode d w mod reg r/m optional optional optional optional 07 low addr high addr Low Displacement or Immediate High Displacement or Immediate Low Immediate 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 thanh ghi Reg là toán hạng đích d=0 chỉ thị toán hạng thanh ghi Reg là toán hạng nguồn w (word): w=1 toán hạng trong lệnh bao gồm hai byte w=0 toán hạng trong lệnh bao gồm 01 byte opcode d w mod reg r/m optional optional optional optional 07 low addr high addr Low Displacement or Immediate High Displacement or Immediate Low Immediate 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 thanh ghi (bảng kế) r/m là 3-bit chỉ thị vị trí của toán hạng là trong thanh 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 Định dạng lệnh - Instruction Format Mod M/R 00 01 10 11 W=0 W=1 000 001 010 011 100 101 110 111 [BX]+[SI] [BX]+[DI] [BP]+[SI] [BP]+[DI] [SI] [DI] [BP] [BX] [BX]+[SI] + d8 [BX]+[DI] + d8 [BP]+[SI] + d8 [BP]+[DI] + d8 [SI] + d8 [DI] + d8 [BP] + d8 [Bx] + d8 [BX]+[SI] + d16 [BX]+[DI] + d16 [BP]+[SI] + d16 [BP]+[DI] + d16 [SI] + d16 [DI] + d16 [BP] + d16 [Bx] + d16 AL CL DL BL AH CH DH BH AX CX DX BX SP BP SI DI opcode d w mod reg r/m optional optional optional optional 07 low addr high addr Low Displacement or Immediate High Displacement or Immediate Low Immediate High Immediate Displacement có thể 8 hoặc 16 bit - Là giá trị Hex được mã hoá trong 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 trong lệnh Định dạng lệnh - Instruction Format opcode d w mod reg r/m optional optional optional optional 07 low addr high addr Low Displacement or Immediate High Displacement or Immediate Low Immediate High Immediate Ví dụ xét lệnh: mov ax, bx Mã lệnh sẽ là: 8B C3 = 1000101111000011 opcode là: 100010 mov d là: 1 thanh ghi là toán hạng đích w là: 1 toán hạng đích là 1 word mod là: 11 chỉ thị giá trị r/m trỏ tới a thanh ghi reg là: 000 thanh ghi toán hạng đích là ax r/m là: 011 thanh ghi toán hạng nguồn là bx Định dạng lệnh - Instruction Format Các loại toán hạng -Operand types 1) Register - Được mã hoá trong 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á trong lệnh • 8 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 trong bộ nhớ, yê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 trong 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ó trong một số chế độ địa chỉ khác nhau: • Displacement – 8 hoặc 16 bit là hằng số trong lệnh – Thanh ghi cơ 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 thanh ghi (Indirect register)  Tương đối Cơ sở (Based relative)  Tương đối Chỉ số (Indexed Relative)  Cơ sở chỉ số (Based Index) [...]... AL,AX,EAX cho dữ liệu cổng Tập lệnh của 80286   Các lệnh truyền dữ liệu Các lệnh xử lý dữ liệu     Các lệnh điều khiển chương trình    Các lệnh số học Các lệnh logic Các lệnh quay dịch Các lệnh nhảy Các lệnh chương trình con Các lệnh xử lý chuỗi dữ liệu Các lệnh truyền dữ liệu - MOVE     - Cú pháp: MOV Dest,Source - Thực hiện: Dest... Mem Reg Mem Source Reg Mem Reg Imm Imm Vi dụ ADD AX,BX ADD BX,VAR ADD SUM,DX ADD CL,09 ADD SUM,10 Các lệnh cộng Cộng có nhớ – ADC (Add with Carry)  Cộng (ADC):     - Cú pháp: ADC Dest,Source - Thực hiện: Dest ← Dest+Source+CF CF ← Bit tràn của kết quả Các toán hạng sử dụng trong lệnh: Dest Reg Reg Mem Reg Mem Source Reg Mem Reg Imm Imm Vi dụ ADD AX,BX ADD BX,VAR ADD SUM,DX... [di+bp] ;ax gets 16 bits at DS:BP+DI mov eax, [bx+si+10h] ;eax gets 32 bits at DS:BX+SI+10h mov cx, [bp+si-7] ;cx gets 16 bits at SS:BP+SI-7 opcode mod r/m displacement DI SI BX BP + + effective address Vi dụ về các chế độ địa chỉ Addressing Mode Examples mov mov mov mov mov mov mov mov mov mov mov mov mov mov mov mov mov mov mov al, di, eax, al, cx, ebx, al, ch, ds, al, ah, ax, eax, al, ax, al,... liệu giữa hai thanh ghi đoạn Không dùng thanh ghi CS làm toán hạng đích Các toán hạng sử dụng trong lệnh MOV Dest Reg Reg Reg Mem Mem Seg.Reg Seg.Reg Source Reg Mem Imm Reg Imm Reg16 Mem16 Vi dụ MOV AH,BH MOV CL,[1000H] MOV DH,10 MOV Table,BX MOV X1,25H MOV DS,AX MOV ES,X2 Các lệnh truyền dữ liệu - EXCHANGE    - Cú pháp: XCHG Dest,Source - Thực hiện: Dest ↔ Source Dữ liệu... đỉnh ngăn xếp sử dụng lệnh PUSHF - Thực hiện: Cất dữ liệu chỉ thị bởi toán hạng nguồn vào đỉnh ngăn xếp và tự động giảm con trỏ ngăn xếp tuỳ theo số byte của toán hạng nguồn Vi dụ : PUSH AX sẽ thực hiện các thao tác sau (với 8088) [SS*10H+(SP-1)] ← AH [SS*10H+(SP-2)] ← AL SP ← SP-2 Lệnh lấy dữ liệu ra khỏi ngăn xếp     - Cú pháp: POP Dest Toán hạng đích... [DX],Acc Với: Port là địa chỉ cổng vào ra truy xuất dữ liệu [DX] là toán hạng gián tiếp thanh ghi chứa địa chỉ cổng Acc là thanh ghi chứa (AX nếu truy xuất từ, AL nếu truy xuất byte) Vi dụ: IN AL,80H ; Lấy vào AL dữ liệu tại cổng 80H TỔNG KẾT CÁC LỆNH TRUYỀN DỮ LIỆU  MOV, XCHG, XLAT, LEA, LDS, LES, PUSH, POP, IN, OUT           MOV AH,BH XCHG AH,AL XLAT LEA... after Subtraction ;dx:ax ax * cx (unsigned) ;dx:ax ax * cx (2’s complement) ;ASCII Adjust after Multiplication ;alax/cl Quot AND ahax/cl Rem ;ax(dx:ax)/cx Quot AND dx  Rem ;ASCII Adjust after Division Các lệnh cộng Addition Instruction Types add adc inc aaa daa ax, ax, ax Addition add al, add bx, add [bx], add cl, add al, add bx, add bx, bx bx ;axax+bx and set flags ;axax+bx+CF(lsb) and... bits stored at DS:(BX-4) ;al . Chương 3: Tập lệnh của Vi Xử Lý Phạm Thế Duy ptduy@yahoo.com Khái niệm lệnh  Là chuỗi bit 0, 1 cung cấp để vi xử lý thực. là 3-bit chỉ thị toán hạng thanh ghi (bảng kế) r/m là 3-bit chỉ thị vi trí của toán hạng là trong thanh ghi hay bộ nhớ. (r/m : register/memory)

Ngày đăng: 27/10/2013, 19:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan