1. Trang chủ
  2. » Cao đẳng - Đại học

BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)

48 95 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 48
Dung lượng 2,26 MB

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

Nội dung

BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)BÀI GIẢNG VẬT LIỆU XÂY DỰNG (THẦY LINH)

Trang 2

mã lệnh Mã lệnh đọc vào từ bộ nhớ đưa đến đầu

của bộ giải mã, các thông tin thu được từ đầu ra củc

nó sẽ được đưa đến mạch tạo xung điều khiển, kết

quả là thu được các dãy xung khác nhau (tùy theo

mã lệnh) để điều khiển hoạt động của các bộ phận

bên trong và bên ngoài CPU.

• Khối logic và số học (Arithmetic and Logic Unit ALU):

dùng để thực hiện các thao tác khác nhau với các

toán hạng cuả lệnh.

Trang 3

Khối phối ghép bus BIU

• Khối BIU có nhiệm vụ đưa ra điạ chỉ, đọc mã lệnh từ

bộ nhớ Nói cách khác BIU chiu trách nhiệm đưa điạ

chỉ ra bus và trao đổi dữ liệu với bus.

• Trong BIU còn có bộ nhớ đệm lệnh với dung lượng 4

byte dùng để đưa các mã lệnh đọc được nằm sẵn

sàng chờ EU xử lý (bộ lệnh này còn được gọi là hàng

đợi lệnh )

về điạ chỉ cho BIU để khối này đọc lệnh và dữ liệu,

còn bản thân nó thì giải mã lệnh và thực hiện lệnh

2 Hoạt động

• Khi CPU 8088 hoạt động, EU sẽ cung cấp các thông tin về địa chỉ cho BIU

đọc lệnh và dữ liệu đưa về giải mã lệnh và thực hiện lệnh Khối EU gồm

các bộ tính toán số học ALU (Arithmetical Logical Unit), bộ điều khiển CS

(Control System) và các thanh ghi (Register) Tại CU có mạch giải mã lệnh

sẽ nhận mã lệnh đọc vào từ bộ nhớ, xử lý và đưa ra mạch tạo xung điều

khiển Tuz theo mã lệnh ta sẽ thu được các dãy xung khác nhau để điều

khiển các hoạt động khác nhau bên trong và bên ngoài của CPU Khối ALU

có nhiệm vụ thực hiện các thao tác khác nhau với các toán hạng của lệnh

Tóm lại EU duy trì trạng thái của CPU, kiểm soát các thanh ghi đa năng và

Trang 4

3 Các thanh ghi

8

Các thanh ghi đa năng (chung)

• Trong khối EU có bốn thanh ghi đa năng 16 bitAX, BX, CX, DX Mỗi thanh ghi

có thể tách ra thành hai thanh ghi 8 bit cao và thấp để làm việc độc lập, đó

là các tập thanh ghi AH và AL, BH và BL, CH và CL, DH và DL ( trong đó H chỉ

phần cao, L chỉ phần thấp ) Mỗi thanh ghi có thể dùng một cách vạn năng

để chứa các tập dữ liệu khác nhau nhưng cũng có công việc đặc biệt nhất

định chỉ thao tác với một vài thanh ghi nào đó và chính vì vậy các thanh ghi

thường được gán cho những cái tên đặc biệt rất có ý nghĩa

• AX ( accumulator, acc ): thanh chứa Các kết qủa của các thao tác thường

được chứa ở đây ( kết quả của phép nhân, chia ) Nếu kết quả là 8 bit thì

thanh ghi AL được coi là acc

• BX ( base ):thanh ghi cơ sở thường chứa địa chỉ cơ sở của một bảng dùng

trong lệnh XLAT

• CX ( count ):bộ đếm CX thường được dùng để chứa số lần lặp trong trường

hợp các lệnh LOOP ( lặp ), còn CL thường cho ta số lần dịch hoặc quay trong

các lệnh dịch hoặc quay thanh ghi

• DX ( data ):thanh ghi dữ liệu DX cùng BX tham gia các thao tác của phép

nhân hoặc chia các số 16 bit DX thường dùng để chứa địa chỉ của các cổng

trong các lệnh vào/ ra dữ liệu trực tiếp

Trang 5

Các thanh ghi đoạn

Trong thực tế bộ vi xử lý 8088 có các thanh ghi 16 bit liên quan

đến địa chỉ đầu của các vùng (các đoạn) và chúng được gọi là

các thanh ghi đoạn (Segment Registers) Đó là:

• Thanh ghi đoạn mã CS(Code-Segment)

• Thanh ghi đoạn dữ liệu DS(Data Segment).

• Thanh ghi đoạn ngăn xếp SS(Stack Segment)

• Thanh ghi đoạn dữ liệu phụ ES(Extra Segment).

Các thanh ghi đoạn 16 bit này chỉ ra địa chỉ đầu của bốn đoạn

trong bộ nhớ, dung lượng lớn nhất của mỗi đoạn nhớ này là

64 Kbyte.

Các thanh ghi đoạn(tt)

• Nội dung các thanh ghi đoạn sẽ xác định địa chỉ của ô

được bằng cách cộng thêm vào địa chỉ cơ sở một giá

vì nó ứng với khoảng lệch của toạ độ một ô nhớ cụ

Trang 6

Segment:

64KB (16 bit offset) và có thể bắt đầu tại các địa chỉ

chia chẵn cho 16 (10h) trên toàn bộ vùng nhớ 1MB

(20 bit).

segment được xác định gián tiếp qua các thanh ghi

segment DS , ES , SS , CS Khi cần sử dụng segment

nào , phải gán giá trị tương ứng cho các thanh ghi

segment Lúc đó các địa chỉ được thể hiện thành

dạng Segment:offset

12

Địa chỉ logic và địa chỉ vật lý

• Để xác định địa chỉ vật lý 20 bit của một ô nhớ nào đó trong một đoạn bất kz CPU 8088 phải dùng đến 2 thanh ghi 16

bit ( một thanh ghi để chứa địa chỉ cơ sở, còn thanh kia chứa độ lệch ) và từ nội dung của cặp thanh ghi đó tạo ra địa

chỉ vật lý theo công thức sau:

Địachỉvậtlý=Thanhghiđoanx16 (16D=10H)+Thanhghilệch

• Việc dùng 2 thanh ghi để ghi nhớ thông tin về địa chỉ thực chất để tạo ra một loại địa chỉ gọi là địa chỉ logic và được ký

hiệu như sau:

Thanhghiđoạn: Thanhghilệch hay segment: offset

• Địa chỉ kiểu ‘‘segment : offset’’ là logic vì nó tồn tại dưới dạng giá trị của các thanh ghi cụ thể bên trong CPU và khi cần

thiết truy cập ô nhớ nào đó thì nó phải được đổi ra địa chỉ vật lý để rồi được đưa lên bus địa chỉ Việc chuyển đổi này

Trang 7

Hằng số 16 bit và các thanh ghi chỉ mục BX, BP, SI, DI

Trong đó các cặp BX và BP , SI và DI không được

phép cùng xuất hiện

Các thanh ghi con trỏ và chỉ số

• Trong 8088 còn có ba thanh ghi con trỏ và hai thanh

ghi chỉ số 16 bit Các thanh ghi này ( trừ IP ) đều có

thể được dùng như các thanh ghi đa năng, nhưng

ứng dụng chính của mỗi thanh ghi là chúng được

ngầm định như là thanh ghi lệch cho các đoạn tương

Trang 8

Nhóm thanh ghi chỉ mục và con trỏ (Index & Pointer

registers): SI,DI,BP,SP

• Có thể sử dụng như các thanh ghi đa dụng,

ngoài ra còn đóng vai trò làm chỉ mục khi xác

dịnh địa chỉ theo offset của bộ xử lý:

16

Các thanh ghi con trỏ và chỉ số(tt)

• IP ( Instruction pointer ):con trỏ lệnh IP luôn trỏ vào lệnh tiếp theo sẽ được thực

hiện nằm trong đoạn mã CS Địa chỉ đầy đủ của lệnh tiếp theo này ứng vớiCS:IPvà

được xác định theo cách đã nói ở trên

• BP ( base pointer ):con trỏ cơ sở BP luôn trỏ vào một dữ liệu nằm trong đoạn

ngăn xếp SS Địa chỉ đầy đủ của một phần tử trong đoạn ngăn xếp ứng vớiSS:BPvà

được xác định theo cách đã nói ở trên

• SP ( stack pointer ):con trỏ ngăn xếp SP luôn trỏ vào đỉnh hiện thời của ngăn xếp

nằm trong đoạn ngăn xếp SS Địa chỉ đỉnh ngăn xếp ứng vớiSS:SPvà được xác định

theo cách đã nói ở trên

• SI ( source index ):chỉ số gốc hay nguồn SI chỉ vào dữ liệu trong đoạn dữ liệu DS

mà địa chỉ cụ thể đầy đủ ứng vớiDS:SIvà được xác định theo cách đã nói ở trên

• DI ( destination index ):chỉ số đích DI chỉ vào dữ liệu trong đoạn dữ liệu DS mà địa

chỉ cụ thể đầy đủ ứng vớiDS:DIvà được xác định theo cách đã nói ở trên

• Riêng trong các lệnh thao tác với dữ liệu kiểu chuổi thì cặp ES:DI luôn ứng với địa

chỉ của phần tử thuộc chuỗi đích còn cặp DS:SI ứng với địa chỉ của phần tử thuộc

chuỗi gốc

Trang 9

Thanh ghi cờ FR ( Flag Register )

• Đây là thanh ghi khá đặc biệt trong CPU, mỗi

bit của nó được dùng để phản ánh một trạng

thái nhất định của kết quả phép toán do ALU

thực hiện hoặc một trạng thái hoạt động của

EU Dựa vào các cờ này người lập trình có thể

có các lệnh thích hợp tiếp theo cho bộ vi xử lý

(các lệnh nhảy có điều kiện) Thanh ghi cờ

gồm 16 bit nhưng người ta chỉ dùng hết 9 bit

của nó để làm các bit cờ.

Thanh ghi cờ FR (Flag Register)(tt)

• 6 bit cờ trạng thái: AF,CF,SF,PF,ZF,OF.

• AF ( auxilialyry carry flag )

• CF ( carry flag )

• SF ( sign flag )

• PF ( parity flag )

Trang 10

II Mô tả tập lệnh của bộ vi xử lý 8086/88.

• 1 Nhóm lệnh chuyển:MOV, PUSH, POP, XCHG, XLAT, LEA, LDS, LES, IN, INC,

OUT,

• 2 Nhóm lệnh xử lý số học:ADD, ADC, INC, DAA, AAA, SUB, SBB, DEC, NEG,

DAS,…

• 3 Các lệnh logic:AND, OR, XOR, NOT,

• 4 Dịch chuyển và quay:SAL, SHL, SHR, SAR, ROL, ROR, RCL, RCR,

• 5 Nhóm lệnh xử lý chuỗi:MOVS, CMPS, SCAS, LODS, STOS,

• 6 Nhóm lệnh chuyển điều khiển chương trình:JA, JAE, JB, JBE, JC, JCXZ, JE,

JGE, JL, JLE, JNA, JNAE, JNB, JNBE, JNC,

• 7 Các lệnh xử lý ngắt (interrupt):INT, INTO, INT n, IRET

• 8 Các lệnh điều khiển quay vòng thực hiện chương trình: LOOP, LOOPE,

LOOPZ, LOOPNE, LOOPNZ,…

được giữ lại, các cờ hiệu bị thay đổi.

được giữ lại, các cờ hiệu bị thay đổi.

chuyển điều khiển theo điều kiện.

Trang 11

Các lệnh chuyển điều khiển theo điều kiện

• Lệnh chuyển điều khiển theo điều kiện có

dạng thức chung như sau :

<Jump_command> <Label>

• <Label> là một tên nhãn đánh dấu một vị trí

trong chương trình Khi điều kiện kiểm tra là

đúng, CPU sẽ chuyển đến thực hiện lệnh tại vị

trí <Label> , nếu điều kiện kiểm tra là sai CPU

Trang 12

Lệnh chuyển điều khiển theo cờ hiệu Lệnh làm thay đổi cờ hiệu trực tiếp

Các lệnh chuyển điều khiển theo điều kiện thường đi theo sau lệnh CMP

Các lệnh chuyển điều khiển không làm thay đổi giá trị của các cờ hiệu.

24

III Cách mã hoá lệnh

• Để tìm hiểu cách mã hoá lệnh, ta xét lệnh MOV des,src dùng để chuyển dữ

liệu giữa hai thanh ghi hay một ô nhớ và một thanh ghi

• Đối với các lệnh MOV Để chuyển dữ liệu kiểu:

o Thanh ghi  thanh ghi ( trừ thanh ghi đoạn )

o hoặc Bộ nhớ  thanh ghi ( trừ thanh ghi đoạn )

thì 6 bit đầu này luôn là 100010 Đối với các thanh ghi đoạn thì điều này lại

khác

Trang 13

III Cách mã hoá lệnh(tt)

• Để mã hóa lệnh MOV, ta cần dùng ít nhất là 2

byte trong đó 6 bit dùng cho mã lệnh

• Bit D xác định hướng truyền của dữ liệu, D = 0

xác định dữ liệu sẽ đi từ thanh ghi cho bởi 3

bit Reg, D = 1 xác định dữ liệu sẽ đi đến thanh

ghi cho bởi 3 bit Reg.

• Bit W xác định sẽ truyền 1 byte (W = 0) hay 1

word (W = 1).

III Cách mã hoá lệnh(tt)

• 3 bit REG dùng để chọn thanh ghi sử dụng:

Trang 14

III Cách mã hoá lệnh(tt)

• 2 bit MOD ( chế độ ) cùng với 3 bit R/M ( thanh ghi/bộ nhớ ) tạo ra 5 bit

dùng để chỉ ra chế độ địa chỉ cho các toán hạng của lệnh Bảng sau cho ta

thấy cách mã hoá các chế độ địa chỉ :

28

III Cách mã hoá lệnh(tt)

Đối với các lệnh MOV Để chuyển dữ liệu kiểu:

•Thanh ghi  thanh ghi ( trừ thanh ghi đoạn )

•hoặc Bộ nhớ  thanh ghi ( trừ thanh ghi đoạn )

thì 6 bit đầu này luôn là 100010 Đối với các thanh ghi đoạn thì điều này lại khác

Trang 15

• Ví dụ 1: Xét lệnhMOV AL, BL; copy nội dung thanh ghi cho thanh ghi

• Trong tr-ờng hợp, nếu ta lấy AL là thanh ghi cho trong byte 2 là REG =

000 thì trong byte 1 bit D =1 Và nh- vậy toán hạng còn lại là thanh ghi

BL sẽ t-ơng ứng với MOD = 11 và R/M = 011 Các byte lệnh là:

• Còn nếu lấy BL là thanh ghi cho trong byte 2 là REG =011, thì trong byte

1 bit D = 0 Toán hạng còn lại là AL t-ơng ứng với MOD =11 và R/M

=000 Khi đó, giá trị của nó là:

• Ví dụ 2: Xét lệnhMOV [BX], CL

• Trong tr-ờng hợp này, ta chỉ có CL là thanh ghi cho trong byte 2 là REG

=001 và trong byte 1 bit D=0 Toán hạng còn lại là ô nhớ địa chỉ trong

BX sẽ t-ơng ứng với MOD = 00 và R/M =111 Các byte lệnh là

– Địa chỉ của một phần tử của mảng cú thể được xỏc định bằng cỏch cộng một hằng

số với địa chỉ cơ sở Giả sử A là một mảng và S chỉ ra số byte của một phần tử của

mảng ( S=1 đối với mảng byte và S=2 đối với mảng từ ) Vị trớ của cỏc phần tử của

mảng A cú thể tớnh như sau :

Trang 16

Các chế độ địa chỉ (addressing modes)

Cách thức chỉ ra toán hạng trong lệnh gọi là chế độ địa chỉ Các chế

độ địa chỉ thường dùng là :

• Chế độ địa chỉ bằng thanh ghi ( register mode) : toán hạng là thanh ghi

• Chế độ địa chỉ tức thời ( immediate mode) : toán hạng là hằng số

• Chế độ địa chỉ trực tiếp ( direct mode) : toán hạng là biến

Ví dụ :

MOV AX,0 ; AX là register mode còn 0 là immediate mode

ADD ALPHA,AX ; ALPHA là direct mode

Ngoài ra còn có 4 chế độ địa chỉ khác là :

• Chế độ địa chỉ gián tiếp bằng thanh ghi ( register indirect mode )

• Chế độ địa chỉ cơ sở ( based mode)

• Chế độ địa chỉ chỉ số ( indexed mode)

• Chế độ địa chỉ chỉ số sơ sở ( based indexed mode)

Trang 17

Các chế độ địa chỉ(tt)

Ví dụ: chế độ địa chỉ thanh ghi

MOV BX, DX ; chuyển nội dung DX vào BX

MOV DX,AX ; chuyển nội dung AX vào DX

ADD AL,DL ; cộng nội dung AL và DL rồi đưa vào AL

Chế độ địa chỉ gián tiếp bằng thanh ghi.

• Trong chế độ địa chỉ gián tiếp bằng thanh ghi , địa chỉ

Chúng ta nói rằng thanh ghi là con trỏ ( pointer) của vị trí

các thanh ghi BX, SI, DI, BP Đối với các thanh ghi BX, SI,

Trang 18

Ví dụ 2:Giả sử rằng nội dung các thanh ghi và nội dung của bộ nhớ tương ứng là như sau : Hãy

cho biết lệnh nào sau đây là hợp l{, offset nguồn và kết qủa của các lệnh hợp l{ ?

• c illegal source register ( must be BX,SI,DI)

• d illegal memory-memory add

• e 3000h 031Eh

36

Ví dụ 3 : Viết đoạn mã để cộng vào AX 10 phần tử của một mảng

W định nghĩa như sau :

W DW 10,20,30,40,50,60,70,80,90,100

• Giải :

XOR AX,AX ; xoá AX

LEA SI,W ; SI trỏ tới địa chỉ cơ sở ( base)

;của mảng W MOV CX,10 ; CX chưá số phần tử của mảng

ADDITION:

ADD AX,*SI+ ; AX=AX + phần tử thứ nhất

LOOP ADDITION ; lặp

Trang 19

Ví dụ 3: Viết thủ tục để đảo ngược một mảng n từ có nghĩa là phần tử thứ 1 sẽ đổi thành

phần tử thứ n , phần tử thứ hai sẽ thành phần tử thứ n-1 Chúng ta sẽ dùng SI như là con

trỏ của mảng còn BX chứa số phần tử của mảng ( n từ )

Giải : Số lần trao đổi là N/2 lần Nhớ rằng phần

tử thứ N của mảng có địa chỉ A+2x(N-1) Đoạn

mã như sau :

REVERSE PROC

; input: SI= offset of array

; BX= number of elements

; output : reverse array

PUSH AX ; cất các thanh ghi

MOV AX,[SI] ; lấy 1 phần tử ở nửa thấp của

;mảng XCHG AX,[DI] ; đưa nó lên nửa cao của

;mảng MOV [SI],AX ; hoàn thành trao đổi ADD SI,2 ; SI chỉ tới phần tử tiếp theo của

;mảng SUB DI,2 ; DI chỉ tới phần tử thứ n-1 LOOP XCHG_LOOP

POP DI POP SI POP CX POP BX POP AX RET REVERSE ENDP

Chế độ địa chỉ chỉ số và Chế độ địa chỉ cơ sở

Trong các chế độ địa chỉ này , địa chỉ offset của toán hạng có được bằng cách

cộng một số gọi làdisplacementvới nội dung của một thanh ghi

Displacement có thể là :

– địa chỉ offset của một biến , ví dụ A

– một hằng ( âm hoặc dương ), ví dụ -2

– địa chỉ offset của một biến cộng với một hằng số , ví dụ A+4

Cú pháp của một toán hạng có thể là một trong các kiểu tương đương sau :

– [ register + displacement]

Trang 20

Chế độ địa chỉ chỉ số và Chế độ địa chỉ cơ

sở (tt)

• Chế độ địa chỉ được gọi là cơ sở ( based) nếu thanh ghi BX( base register)

hoặc BP ( base pointer) được dùng

• Chế độ địa chỉ được gọi là chỉ số ( indexed) nếu thanh ghi SI( source index) hoặc DI (

destination index) được dùng

Ví dụ :Giả sử rằng W là mảng từ và BX chưá 4 Trong lệnh MOV AX,W*BX+

displacementlà địa chỉ offset của biến W Lệnh này sẽ di chuyển phần tử có điạ chỉ W+4

vào thanh ghi AX Lệnh này cũng có thể viết dưới các dạng tương đương sau :

Ví dụ 1: Viết đoạn mã để cộng vào AX 10 phần tử của một

W DW 10,20,30,40,50,60,70,80,90,100

tính tổng 10 phần tử của mảng như sau :

Trang 21

Ví dụ 2: Với chế độ địa chỉ chỉ số có thể viết lại

code cho bài toán tính tổng 10 phần tử

• Giải :

XOR AX,AX ; xoá AX

LEA SI,W ; SI trỏ tới địa chỉ cơ sở ( base)

;của mảmg W MOV CX,10 ; CX chưá số phần tử của mảng

ADDITION:

ADD AX,*SI+ ; AX=AX + phần tử thứ nhất

ADD SI,2 ; tăng con trỏ lên 2

LOOP ADDITION ; lặp

Chế độ địa chỉ chỉ số cơ sở

• Trong chế độ này , địa chỉ offset của toán hạng là tổng của :

1 nội dung của thanh ghi cơ sở ( BX or BP)

2 nội dung của thanh ghi chỉ số ( SI or DI)

3 địa chỉ offset của 1 biến ( tuz chọn)

4 một hằng âm hoặc dương ( tuz chọn)

• Nếu thanh ghi BX được dùng thì DS chứa số đoạn của địa chỉ toán hạng Nếu BP được dùng

thì SS chưá số đoạn Toán hạng được viết theo 4 cách dưới đây:

1 variable[base_register][index_register]

2 [base_register + index_register + variable + constant ]

Trang 22

44

Trang 23

V Hệ thống ngắt

• Ngắt là việc CPU dừng phục vụ chương trình chính để

chuyển sang phục vụ chương trình con để thực hiện

một chức năng nào đó khi có một yêu cầu ngắt Và

sau khi thực hiện xong chương trình con xử lý ngắt

đó thì CPU quay về phục vụ tiếp cho chương trình

chính ngay tại điểm bị ngắt.

• Các loại ngắt chính:

– Các ngắt bên trong là các ngắt được xắp đặt ở trong CPU

– Các ngắt bên ngoài là các ngắt được tạo bởi phần cứng bên

ngoài.

– Các ngắt mềm là các ngắt được khởi tạo bởi 1 lệnh INT hay

INTO.

Ví dụ: Các ngắt của DOS

Trang 24

Ví dụ : INT 21H - Các chức năng của DOS

• Cách thức:gán AH là số hiệu(hàm) chức năng cần sử dụng, sau đó gọi ngắt INT

INT 21h ; AL chứa mã ASCII của k{ tự nhập

• Hàm 02h:xuất một k{ tự trong thanh ghi DL ra màn hình tại vị trí con trỏ

Một số chức năng hệ thống đơn giản của BIOS:

• Chờ đọc một phím, không in lại phím này ra màn hình

• Sau khi thực hiện AL = mã ASCII của phím được gõ vào

• AH = scan code của phím

• AL bằng 0 khi một số các phím chức năng được bấm

Ngày đăng: 23/09/2019, 23:57

TỪ KHÓA LIÊN QUAN

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

w