1. Trang chủ
  2. » Giáo án - Bài giảng

Tổ chức cấu trúc máy tính C4B

43 278 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

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 471,98 KB

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

Nội dung

Xây dựng tập lệnh opcode địa chỉ toán hạng 1 địa chỉ kết quả địa chỉ lệnh kế địa chỉ toán hạng hiểu ngầm để bỏ vùng này quá dài Các phương pháp định địa chỉ toán hạng... - làm ngắn câu l

Trang 1

CHƯƠNG 4

Tổ chức CPU

Trang 2

ACC ← ACC - toán hạng

ACC ← ACC - toán hạng - CF

Tăng

Toán hạng ← Toán hạng + 1

Giảm

Toán hạng ← Toán hạng - 1 (không ảnh hưởng CF)

So sánh Nhân Chia

ACC ← ACC / toán hạng R2 ← ACC mod toán hạng

R2,ACC ← ACC * toán hạng

Trang 4

0 0 0 1 1 1 1

Kết quả = 00000000

Xét các bit của số 0011 từ trái sang

Dịch trái kết quả 1 bit

Nếu bit = 1 thì kết quả = kết quả + 0101

ngược lại không làm gì cả

Hết bit của số 0011 thì ngưng

Kết quả chính là tích số

Giải thuật

bắt đầu : kết quả = 00000000

dịch trái 1 bit = 00000000 b3 = 0 : kết quả = 00000000

dịch trái 1 bit = 00000000 b2 = 0 : kết quả = 00000000

dịch trái 1 bit = 00000000 b1 = 1 : kết quả = 00000000+0101

dịch trái 1 bit = 00001010 b0 = 1 : kết quả = 00001010+0101

hết bit : kết quả = 00001111

Trang 5

Xây dựng tập lệnh

opcode

(địa chỉ) toán hạng

1

địa chỉ kết quả

địa chỉ lệnh kế

(địa chỉ) toán hạng

hiểu ngầm để bỏ vùng này

quá dài

Các phương pháp định địa chỉ toán hạng

Trang 6

- làm ngắn câu lệnh

- đơn giản hóa câu lệnh

- truy xuất toán hạng nhanh

- làm câu lệnh có tính linh động

Dựa vào một trong các đặc tính sau

8

phương pháp

Trang 7

dấu ( ) cho biết dùng phương pháp trực tiếp

ACC ← (7000) giải thích

Địa chỉ trong lệnh là địa chỉ ô nhớ chứa toán hạng

Trang 8

2 dấu ( ) cho biết dùng

phương pháp gián tiếp

R1 ← R1 + ((7000)) giải thích

Địa chỉ trong lệnh là địa chỉ ô nhớ chứa địa chỉ toán hạng

Trang 9

tức thời

R1

bộ nhớ lệnh

R1 ← 23 giải thích

Toán hạng nằm trong lệnh

13

15

23

Trang 10

IX và dấu + cho biết dùng

phương pháp chỉ số

ACC ← (IX + 10) giải thích

Địa chỉ toán hạng là tổng của nội dung thanh ghi chỉ số với độ dời trong lệnh

Trang 11

tương đối

bộ nhớ lệnh

PC và dấu + cho biết dùng

phương pháp tương đối

ACC ← (PC + 6) giải thích

Địa chỉ toán hạng là tổng của nội dung thanh ghi PC với độ dời trong lệnh

Trang 12

thanh ghi

ACC

bộ nhớ lệnh

ACC ← R1 giải thích

Toán hạng nằm trong thanh ghi

Trang 13

gián tiếp qua thanh ghi

ACC

bộ nhớ lệnh

ACC ← (R1) giải thích

Thanh ghi chứa địa chỉ ô nhớ chứa toán hạng

dấu () cho biết dùng

phương pháp gián tiếp

thanh ghi để truy xuất

toán hạng bộ nhớ

Trang 14

stack

ACC

stack lệnh

ACC ← (SP) giải thích

Thanh ghi SP chứa địa chỉ ô nhớ chứa toán hạng

Trang 15

Các nhóm lệnh của tập lệnh Chuyển dữ liệu

Xử lý dữ liệu Chuyển điều khiển

Quản lý trạng thái

Bên trong

Bộ nhớ Xuất nhập

Số học Luận lý Dịch, quay

IO

IO mapped

IO

Nhảy Gọi

Tuyệt đối (Địa chỉ) Tương đối (PC+n) Không điều kiện (Luôn luôn nhảy)

Có điều kiện (Lúc nhảy lúc không) Trực tiếp (PC = địa chỉ)

Gián tiếp (PC = M/R)

Tác động

cờ

Trở về Ngắt quãng

Nhảy nhưng có lưu địa chỉ trở

về vào stack

Lập xóa cờ Đặc biệt

Trang 16

Memory mapped

IO

IO mapped

+ Dùng chung mạch giải mã địa chỉ với bộ nhớ

+ Truy xuất cổng xuất nhập bằng lệnh bộ nhớ

mapped

mapped mapped

mapped

Trang 17

Mã hóa lệnh

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Opcode Địa chỉ 1 Địa chỉ 2 Địa chỉ 3

Chỉ được tối đa 16 lệnh 3 địa chỉ (0000 ÷ 1111)

Trang 18

(thêm được 32 lệnh 1 địa chỉ) 61 lệnh

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Opcode Địa chỉ 1

1 1 1 1 1 1 1 ××××

Bớt tiếp tổ hợp cuối của lệnh 1 địa chỉ (1111 1111 1111) còn 31 lệnh 1 địa chỉ

(thêm được 16 lệnh 0 địa chỉ)

Trang 19

CPU 8086/88 :

Vi xử lý 16 bit

Tuyến địa chỉ : A19 ÷÷÷÷ A0 Quản lý 1MB bộ nhớ (100 000H)

địa chỉ bộ nhớ 00000 ÷÷÷÷ FFFFF Tuyến dữ liệu : D15 ÷÷÷÷ D0 (8086) / D7 ÷÷÷÷ D0 (8088)

Thực tế sử dụng tuyến địa chỉ dữ liệu chung : AD 7 ÷÷÷÷ AD 0 Cần mạch tách tuyến

DT/R DEN

Trang 20

Bộ thanh ghi tổng quát (8 từ 16 bit)

Khối điều khiển và định thì (Execution Unit)

ALU

16 bit

Thanh ghi cờ

Bộ thanh ghi đoạn và IP (5 từ 16 bit)

Khối giao tiếp BUS

Tuyến địa chỉ Tuyến dữ liệu

INTA, RD, WR DT/R, DEN ALE, M/IO

INTR, NMI, TEST CLK, RESET, READY

MN/MX HOLD HLDA

Trang 21

Thanh ghi trạng thái (cờ)

Bộ thanh ghi đa dụng Bộ thanh ghi đoạn

Accumuator Base

Counter Data Source index Destination index Base pointer Stack pointer

Code segment Data segment Stack segment Extra segment

Trang 22

* Dùng thanh ghi đoạn chứa segment

* Dùng thanh ghi đa dụng chứa offset

Trang 23

*Đổi địa chỉ luận lý ra địa chỉ vật lý :

Địa chỉ vật lý = (Segment * 16) + Offset

0FFFF 1000F 1001F

Trang 24

C¾c cặp thanh ghi mặc ½ịnh :

CS : IP địa chỉ lệnh kế

SS : SP địa chỉ đỉnh stack

DS : SI địa chỉ đầu chuỗi nguồn (chỉ trong lệnh xử lý chuỗi)

ES : DI địa chỉ đầu chuỗi đích (chỉ trong lệnh xử lý chuỗi)

Truy xuất biến bộ nhớ : địa chỉ hiệu dụng (Effective Address)

Offset : là tổ hợp của 3 thành phần trong ngoặc vuông [ ]

Trang 25

CLK M/IO

A 19 -A 16

ALE

AD15-AD0

RD DT/R DEN

Trang 26

Chu kỳ máy đọc bộ nhớ

CLK M/IO

A19-A16

ALE

AD 15 -AD 0

RD DT/R

DEN

Dữ liệu Địa chỉ

Địa chỉ

Chu kỳ máy nhập

Trang 27

Chu kỳ máy ghi bộ nhớ

CLK M/IO

A 19 -A 16

ALE

AD 15 -AD 0

WR DT/R

DEN

Dữ liệu Địa chỉ

Địa chỉ

Chu kỳ máy xuất

Trang 28

Bảng vector ngắt 00024h

36 09 7C 00 2A E4 00 F0 5B E0 00 F0

76 2A 00 30 5B E8 00 F0

Truy xuất vector ngắt

Trang 29

Lệnh MOV (chuyæn)

Thanh ghi/bî nhð ½än/t÷ thanh ghi

1 0 0 0 1 0 d w mod reg r/m Töc thñi ½än thanh ghi/bî nhð

1 1 0 0 0 1 1 w mod 0 0 0 r/m dữ liệu dữ liệu nếu w=1 Töc thñi ½än thanh ghi

1 0 0 0 1 1 0 0 mod 0 reg r/m

Nếu d = 1 thì "đến"; nếu d = 0 thì "từ"

Nếu w = 1 thì hoạt động 2 byte; nếu w = 0 thì hoạt động 1 byte

Mã hóa các byte lệnh

Trang 30

16-Bit ( w=1 ) 8-Bit ( w=0 ) đoạn

Trang 31

trong đó

00 DISP = 0 (*), không có độ dời thấp và độ dời cao

01 DISP = độ dời thấp mở rộng dấu đến 16 bit, không có độ dời cao

10 DISP = độ dời cao : độ dời thấp

11 r/m xem như vùng "reg"

Trang 32

-a 159E:0100 mov word ptr [2000],1234 159E:0106 mov cl,ah

159E:0108 mov dx,[bp-10]

159E:010B mov [si+1000],bx 159E:010F mov cx,2000 159E:0112 mov ax,es 159E:0114 mov [1000],ds 159E:0118

-u

159E:0100 C70600203412 MOV WORD PTR [2000],1234

159E:0106 88E1 MOV CL,AH

159E:0108 8B56F0 MOV DX,[BP-10]

159E:010B 899C0010 MOV [SI+1000],BX

159E:010F B90020 MOV CX,2000

159E:0112 8CC0 MOV AX,ES

159E:0114 8C1E0010 MOV [1000],DS

159E:0118 DF8B440A3400 ESC 39,[BP+DI+0A44]TBYTE PTR [BP+DI+0034] 159E:011E 8D15 LEA DX,[DI]

-q

Trang 34

CMP b,t,r/m

CMP w,t,r/m

CMP b,i

CMP w,i

JMP si,d

IN v,b

IN v,w

OUT v,b

OUT v,w

f = từ thanh ghi của CPU

Trang 35

reg16 : thanh ghi 16 bit

segreg : thanh ghi đoạn

accum : thanh ghi bộ tích lũy AX hoặc AL

mem16 : bộ nhớ 2 byte liên tiếp (địa chỉ hiệu dụng)

mem32 : bộ nhớ 4 byte liên tiếp (địa chỉ hiệu dụng)

immed : số tức thời

immed8 : số tức thời 8 bit

shortlabel : nhãn ngắn (-128 byte ÷ +127 byte)

nearlabel : nhãn trong đoạn (2 byte offset)

farlabel : nhãn ngoài đoạn (4 byte : 2 byte segment và 2 byte offset)

Các chữ viết tắt dùng trong các nhóm lệnh

Trang 36

MOV reg,reg MOV mem,reg MOV segreg,reg16

MOV reg,immed MOV mem,immed (*)

MOV reg16,segreg MOV mem16,segreg

Trang 37

ADD reg,reg ADD mem,reg SUB reg,reg SUB mem,reg

ADD reg,immed ADD mem,immed SUB reg,immed SUB mem,immed

ADC reg,reg ADC mem,reg SBB reg,reg SBB mem,reg

ADC reg,immed ADC mem,immed SBB reg,immed SBB mem,immed

ADC accum,immed SBB accum,immed

INC reg INC mem DEC reg DEC mem

NEG reg NEG mem CMP reg,immed CMP mem,immed

CMP accum,immed

AAM AAD

Nhóm lệnh số học

Trang 38

NOT reg NOT mem

AND reg,reg AND mem,reg OR reg,reg OR mem,reg

AND reg,immed AND mem,immed OR reg,immed OR mem,immed

AND accum,immed OR accum,immed

TEST reg,reg TEST mem,reg XOR reg,reg XOR mem,reg

TEST reg,immed TEST mem,immed XOR reg,immed XOR mem,immed

TEST accum,immed XOR accum,immed

SHL reg,1 SHL mem,1 SHR reg,1 SHR mem,1

SHL reg,CL SHL mem,CL SHR reg,CL SHR mem,CL

SAR reg,1 SAR mem,1

SAR reg,CL SAR mem,CL

ROL reg,1 ROL mem,1 ROR reg,1 ROR mem,1

ROL reg,CL ROL mem,CL ROR reg,CL ROR mem,CL

RCL reg,1 RCL mem,1 RCR reg,1 RCR mem,1

RCL reg,CL RCL mem,CL RCR reg,CL RCR mem,CL

Nhóm lệnh luận lý

Trang 39

Cờ DF = 0 : tăng SI hoặc DI sau khi làm xong lệnh

Cờ DF = 1 : giảm SI hoặc DI sau khi làm xong lệnh

< Khởi động các thanh ghi DS, SI, ES, DI, CX, AL, AX và cờ DF trước khi dùng lệnh >

Trang 40

CALL nearlabel CALL farlabel

JMP shortlabel JMP nearlabel JMP farlabel

Jcond shortlabel (xem slide kế)

JCXZ shortlabel

LOOP shortlabel

LOOPE/LOOPZ shortlabel LOOPNE/LOOPNZ shortlabel

INT immed8 INT 3 INTO

IRET

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

Ngày đăng: 12/08/2015, 09:32

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối - Tổ chức cấu trúc máy tính C4B
Sơ đồ kh ối (Trang 20)
Bảng vector ngắt 00024h - Tổ chức cấu trúc máy tính C4B
Bảng vector ngắt 00024h (Trang 28)

TỪ KHÓA LIÊN QUAN