Tải bản đầy đủ (.doc) (21 trang)

Tài liệu ky thuat vi xy ly doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (355.88 KB, 21 trang )

Đồ án môn học: Kỹ Thuật Vi Xử Lý
MỤC LỤC
CHƯƠNG I : GIỚI THIỆU VỀ HỆ VI XỬ LÝ 8088 3
1.1 Sơ đồ khối của bộ vi xử 3
1.2 Nguyên lý hoạt động 4
CHƯƠNG II: CÁC THANH GHI VÀ CÁC CHẾ ĐỘ ĐỊA CHỈ 5
2.1 Các thanh ghi 5
2.1.1 Thanh ghi đoạn. 5
2.1.2 Các thanh ghi đa năng 7
2.1.3 Thanh ghi con trỏ và chỉ số 7
2.1.4 Thanh ghi cờ (Flag Register) 8
2.2 Cách mã hóa lệnh của bộ vi xử lý 8088. 9
2.3 Các chế độ địa chỉ dữ liệu 9
2.3.1 Chế độ địa chỉ thanh ghi 10
2.3.2 Chế độ địa chỉ tức thì 10
2.3.3 Chế độ địa chỉ trực tiếp 10
2.3.4 Chế độ địa chỉ gián tiếp qua thanh ghi 10
2.3.5 Chế độ địa chỉ tương đối cơ sở 10
2.3.6 Chế độ địa chỉ tương đối chỉ số 11
2.3.7 Chế độ địa chỉ tương đối chỉ số cơ sở 11
CHƯƠNG III: CÁC LỆNH DÙNG TRONG BỘ VI XỬ LÝ 8088 12
3.1 Các lệnh di chuyển 12
3.1.1 Lệnh MOV 12
3.1.2 Lệnh PUSH 12
3.1.3 Lệnh POP 12
3.2 Các lệnh số học và logic 12
SVTH: …………… Trang 1
Đồ án môn học: Kỹ Thuật Vi Xử Lý
3.2.1 Lệnh ADD 12
3.2.2 Lệnh MUL 13
3.2.3 Lệnh DIV 13


3.2.4 Lệnh DEC 13
3.2.5 Lệnh SUB 13
3.2.6 Lệnh XOR 14
3.2.7 Lệnh CMP 14
3.3 Các lệnh điều khiển chương trình 14
3.3.1 Lệnh JMP 14
3.3.2 Lệnh JNE 15
3.3.3 Lệnh JE/JZ 15
3.3.4 Lệnh JB 15
3.4 Lệnh tính địa chỉ lệch LEA 15
CHƯƠNG IV: VIẾT CHƯƠNG TRÌNH THỰC HIỆN CÔNG VIỆC NHẬP SỐ
N (N<9, NGUYÊN DƯƠNG) TỪ BÀN PHÍM. TÍNH S =
222
21 N
+++
16
4.1 Chương trình tính S = 16
4.2 Giao diện chương trình 18
SVTH: …………… Trang 2
222
21 N
+++
Đồ án môn học: Kỹ Thuật Vi Xử Lý
CHƯƠNG I : GIỚI THIỆU VỀ HỆ VI XỬ LÝ 8088
1.1 Sơ đồ khối của bộ vi xử.
Nhìn vào sơ đồ ta thấy, bên trong CPU 8088 có hai khối chính: khối phối ghép bus
(Bus Interface Unit, BIU) và khối thực hiện lệnh (Execution Unit, EU). Trong khối
BIU có các thanh ghi đoạn và thanh ghi con trỏ lệnh IP, khối logic điều khiển bus, bộ
cộng, bus dữ liệu 8 bit và bus địa chỉ 20 bit. Trong khối EU có các thanh ghi đa năng,
các thanh ghi con trỏ và chỉsố, khối tính toán số học và logic ALU, khối điều khiển

CU, bus dữ liệu 16 bit của ALU, bus tín hiệu điều khiển. Việc chia CPU thành hai
phần làm việc đồng thời có liên hệ với nhau qua hàng đợi lệnh làm tăng tốc độ đáng kể
của CPU.
SVTH: …………… Trang 3
Hình 1.1 Sơ đồ khối của bộ vi xử lý.
Đồ án môn học: Kỹ Thuật Vi Xử Lý
1.2 Nguyên lý hoạt động .
BIU có nhiệm vụ đưa ra địa chỉ, đọc mã lệnh từ bộ nhớ, đọc/ghi dữ liệu từ/vào
cổng hoặc bộ nhớ. Bên trong BIU còn có bộ nhớ đệm lệnh (còn gọi là hàng đợi lệnh)
với dung lượng 4 byte dùng để chứa các lệnh đã đọc được nằm sẵn chờ EU xử lý. Đây
là một cấu trúc mới được cấy vào bộ vi xử lý 8086/88 để thực hiện cơ chế xử lý liên
tục dòng mã lệnh (instruction pipelining). Pipeline là một cơ chế đã được ứng dụng từ
những năm 60 trong các máy tính lớn.
EU có nhiệm vụ cung cấp địa 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. Mã lệnh đọc vào từ bộ nhớ được đưa
đến đầu vào của bộ giải mã (nằm trong khối điều khiển CU), các thông tin thu được từ
đầu ra của bộ giải mã sẽđược đưa đến mạch tạo xung điều khiển để tạo ra các dãy
xung khác nhau (tùy từng 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. Trong EU còn có khối tính toán số học và logic ALU dùng để thực
hiện các thao tác khác nhau với các toán hạng của lệnh.
SVTH: …………… Trang 4
Đồ án môn học: Kỹ Thuật Vi Xử Lý
CHƯƠNG II: CÁC THANH GHI VÀ CÁC CHẾ ĐỘ ĐỊA CHỈ
2.1 Các thanh ghi.
Bên trong CPU có một số ô nhớ được gọi là thanh ghi (register). Các thanh ghi
có độ dài 16 bit và được chia thành: thanh ghi đoạn, thanh ghi đa năng, thanh ghi con
trỏ và chỉ số, thanh ghi cờ.
2.1.1 Thanh ghi đoạn.
Bộ vi xử lý 8086/88 làm việc ở chế độ thực, với 20 bit địa chỉ bộ vi xử lý này
có khả năng đánh địa chỉ cho

20
2
= 1 M ô nhớ = 1 MB. Trong 1 MB bộ nhớ người ta
chia thành các đoạn 64 KB khác nhau để:
+ Chứa mã chương trình.
+ Chứa dữ liệu và kết quả trung gian của chương trình và tạo ra một đoạn nhớ
đặc biệt gọi là ngăn xếp (STACK) dùng vào việc quản lý các thông số của vi xử lý khi
gọi CTC con hoặc trở về từ CTC.
Để quản lý các đoạn nhớ trên, bộ vi xử lý 8088 có 4 thanh ghi đoạn xác định
địa chỉ bắt đầu của 4 đoạn nhớ 64 KB:
+ CS (Code Segment): thanh ghi đoạn mã, xác định địa chỉ bắt đầu của đoạn
nhớ chứa mã chương trình.
+ DS (Data Segment): thanh ghi đoạn dữ liệu, xác định địa chỉ bắt đầu của
đoạn nhớ chứa hầu hết dữ liệu của chương trình.
+ ES (Extra Segment): thanh ghi đoạn dữ liệu phụ, xác định địa chỉ bắt đầu của
đoạn nhớ chứa dữ liệu phụ. Đoạn nhớ này được các lệnh về chuỗi sử dụng để chữ dữ
liệu đích.
+ SS (Stack Segment): thanh ghi đoạn ngăn xếp, xác định địa chỉ bắt đầu của
đoạn nhớ ngăn xếp.
Nội dung của các thanh ghi đoạn xác định địa chỉ của ô nhớ nằm ở đầu đoạn
tương ứng. Vì địa chỉ của ô nhớ là 20 bit mà các thanh ghi đoạn chỉ có 16 bit nên bộ vi
xử lý phải thêm 0H vào bên phải nội dung của thanh ghi đoạn để có địa chỉ 20 bit của
ô nhớ nằm ở đầu đoạn. Địa chỉ này gọi là địa chỉ cơ sở hay địa chỉ đoạn. Địa chỉ của
SVTH: …………… Trang 5
Đồ án môn học: Kỹ Thuật Vi Xử Lý
các ô nhớ khác trong đoạn được tính bằng cách cộng thêm vào địa chỉ đoạn một giá trị
gọi là độ lệnh (offset) hay địa chỉ lệch. Địa chỉ lệch có độ dài 16 bit và thường đặt
trong các thanh ghi 16 bit khác đóng vai trò thanh ghi
lệch. Cụ thể, để xác định địa chỉ vật lý 20 bit của một ô nhớ nào đó trong một đoạn
nhớ bất kỳ, CPU 8088 phải dùng đến hai thanh ghi 16 bit: một thanh ghi đoạn và một

thanh ghi lệch.
Từ nội dung của hai thanh ghi này tạo ra địa chỉ vật lý theo công thức sau:
Địa chỉ vật lý = Nội dung thanh ghi đoạn x
4
2
+ Nội dung thanh ghi lệch
= Địa chỉ đoạn + Địa chỉ lệch .
Việc dùng hai thanh ghi để ghi nhớ thông tin về địa chỉ tạo ra một loại địa chỉ
gọi là địa chỉ logic, được ký hiệu như sau:
Thanh ghi đoạn:Thanh ghi lệch (địa chỉ lệch)
Segment:Offset
Segment:Offset là địa chỉ logic vì nó tồn tại dưới dạng giá trị của các thanh ghi,
và khi cần truy nhập ô nhớ nào thì nó phải được đổi ra địa chỉ vật lý của ô nhớ đó.
Địa chỉ logic có tính đa trị vì ứng với một địa chỉ vật lý có rất nhiều địa chỉ
logic khác nhau. Điều này cho 8086/88 linh hoạt trong việc định địa chỉ. Ví dụ, địa chỉ
vật lý 12345H có thể tạo ra từ các địa chỉ logic sau:
1000H:2345H
1200H:0345H
1004H:2305H
0300H:E345H
……
Vì các thanh ghi đoạn được thêm 0H vào bên phải để xác định địa chỉ bắt đầu của
đoạn nên các đoạn chỉ có thể bắt đầu tại các ranh giới 16 byte. Hơn nữa, vì các đoạn
có độ dài 64 KB nên khi biết địa chỉ bắt đầu của đoạn thì ta cũng biết được địa chỉ kết
thúc đoạn bằng cách cộng thêm vào địa chỉ bắt đầu đoạn FFFFH.
SVTH: …………… Trang 6
Đồ án môn học: Kỹ Thuật Vi Xử Lý
2.1.2 Các thanh ghi đa năng .
Bộ vi xử lý 8088 có 4 thanh ghi đa năng 16 bit: AX, BX, CX, DX. Khi cần
chứa dữ liệu 8 bit thì mỗi thanh nghi này có thể tách ra thành hai thanh ghi 8 bit cao và

8 bit thấp, đó là các cặp AH và AL, BH và BL, CH và CL, DH và DL. Các thanh ghi
đa năng có thể chứa các loại dữ liệu khác nhau song chúng cũng có những chức năng
chuyên dụng được dùng đến trong những công việc đặc biệt. Vì vậy các thanh ghi đa
năng này được gán cho những cái tên nói lên chức năng chuyên dụng của chúng.
+ AX (Accumulator): thanh ghi chứa, thường dùng để chứa kết quả của các
thao tác chẳng hạn như lệnh nhân, chia và một số lệnh hiệu chỉnh dữ liệu.
+ BX (Base): thanh ghi cơ sở, thường chứa địa chỉ lệch của ô nhớ trong đoạn
DS.
+ CX (Count): thanh ghi đếm, CX thường chứa số lần lặp trong các lệnh lặp,
CL thường chứa số lần dịch hoặc quay trong lệnh dịch và quay thanh ghi.
+ DX (Data): thanh ghi dữ liệu, DX cùng với AX tham gia vào phép nhân hoặc
chia các số 16 bit. DX còn dùng để chứa địa chỉ của các cổng vào/ra trong các lệnh
vào ra dữ liệu trực tiếp.
2.1.3 Thanh ghi con trỏ và chỉ số.
Bộ vi xử lý 8088 có 3 thanh ghi con trỏ (IP, BP, SP) và 2 thanh ghi chỉ số (SI,
DI). Các thanh ghi này ngầm định được sử dụng làm các thanh ghi lệch cho các đoạn
tương ứng. Cụ thể:
+ IP (Instruction Pointer): thanh ghi 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ỉ của lệnh này là CS:IP
+ BP (Base Pointer): con trỏ cơ sở, BP luôn trỏ vào dữ liệu nằm trong đoạn
ngăn xếp. Địa chỉ logic của ô nhớ ngăn xếp do BP trỏ tới là SS:BP
+ SP (Stack Ponter): con trỏ ngăn xếp, SP luôn trỏ vào đỉnh hiện thời của ngăn
xếp. Địa chỉ logic của đỉnh ngăn xếp là SS:SP
+ SI (Source Index): chỉ số nguồn, SI trỏ vào dữ liệu trong đoạn dữ liệu DS.
Địa chỉ logic của ô nhớ do SI trỏ tới là DS:SI
SVTH: …………… Trang 7
Đồ án môn học: Kỹ Thuật Vi Xử Lý
+ DI (Destinaton Index): chỉ số đích, DI trỏ vào dữ liệu trong đoạn dữ liệu DS.
Địa chỉ logic của ô nhớ do DI trỏ tới là DS:DI
Riêng trong các lệnh về chuỗi thì ES:DI luôn ứng với địa chỉ của một phn tử

thuộc chuỗi đích, DS:SI luôn ứng với địa chỉ của một phần tử thuộc chuỗi nguồn.
Bảng tóm tắt sự kết hợp ngầm định giữa thanh ghi đoạn và thanh ghi lệch:
Thanh ghi đoạn Thanh ghi lệch Địa chỉ
CS IP Địa chỉ lệnh sắp thực hiện
DS BX, DI, SI Địa chỉ trong đoạn dữ liệu
SS SP hoặc BP Địa chỉ trong đoạn ngăn xếp
ES DI Địa chỉ chuỗi đích
2.1.4 Thanh ghi cờ (Flag Register) .
Bên trong bộ vi xử lý 8088 có một thanh ghi đặc biệt gọi là thanh ghi cờ hay
thanh ghi trạng thái. Mỗi bit của thanh ghi này đượ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
CPU. Thanh ghi cờ có 16 bit nhưng chỉ dùng hết 9 bit làm bit cờ.
Các bit cờ chia thành hai loại:
- Các cờ trạng thái: có 6 cờ trạng thái là C, P, A, Z, S và O. Các cờ trạng thái
này được
thiết lập bằng 1 hoặc xóa bằng 0 sau hầu hết các lệnh toán học và logic.
+ C (Carry): cờ nhớ, C = 1 khi cớ nhớ hoặc mượn.
+ P (Parity): cờ chẵn lẻ, P = 1 khi tổng số bit 1 trong kết quả là chẵn, P = 0 khi
tổng số bit 1 trong kết quả là lẻ.
+ A (Auxiliary): cờ nhớ phụ, A = 1 khi có nhớ hoặc mượn từ một số BCD thấp
sang một số BCD cao.
+ Z (Zero): cờ rỗng, Z = 1 khi kết quả của phép tính số học bằng 0, Z = 0 khi
kết quả của phép tính số học khác 0.
SVTH: …………… Trang 8
Đồ án môn học: Kỹ Thuật Vi Xử Lý
+ S (Sign): cờ dấu, S = 1 kết quả âm.
+ O (Overflow): cờ tràn, O = 1 khi kết quả vợt ra ngoài giới hạn biểu diễn dành
cho nó.
- Các cờ điều khiển: có 3 cờ T, I, D. Các cờ này được thiết lập bằng 1 hoặc
xóa bằng 0 thông qua các lệnh để điều khiển chế độ làm việc của bộ vi xử lý.

+ T (Trap): cờ bẫy, T = 1 thì bộ vi xử lý làm việc ở chế độ chạy từng lệnh.
+ I (Interrupt): cờ ngắt, I = 1 thì bộ vi xử lý cho phép các yêu cầu ngắt được tác
động. Cờ này được thiết lập bằng lệnh STI và xóa bằng lệnh CLI.
+ D (Direction): cờ hướng, D = 1 thì bộ vi xử lý làm việc với chuỗi ký tự theo
thứ tự từ phải sang trái.
2.2 Cách mã hóa lệnh của bộ vi xử lý 8088.
Các lệnh của bộ vi xử lý được ghi bằng các ký tự dưới dạng gợi nhớ
(mnemonic) để người sử dụng dễ nhận biết. Tuy nhiên đối với bản thân bộ vi xử lý thì
các lệnh cho nó được mã hoá dưới dạng các số 0 và 1 (còn gọi là mã máy), vì đây là
dạng biểu diễn thông tin duy nhất mà máy hiểu được. Bởi vậy các lệnh dưới dạng các
ký tự gợi nhớ phải được dịch ra mã máy. Việc dịch này được thực hiện bằng các
chương trình dịch hợp ngữ như MASM, TASM.
Vì lệnh cho bộ vi xử lý được cho dưới dạng mã máy nên sau khi nhận lệnh bộ vi xử lý
phải thực hiện giải mã lệnh rồi sau đó mới thực hiện lệnh. Một lệnh vi xử lý có thể dài
một vài byte tuỳ theo bộ vi xử lý. Đối với bộ vi xử lý 8088 một lệnh có độ dài từ 1 - 6
byte.
Nói chung một lệnh của bộ vi xử lý gồm 2 phần: mã lệnh và địa chỉ của toán
hạng.
2.3 Các chế độ địa chỉ dữ liệu .
Chế độ địa chỉ (Addressing mode) là cách để CPU tìm thấy toán hạng cho các
lệnh của nó. Để viết được chương trình cho CPU ta phải nắm vững các chế độ địa chỉ
mà các lệnh của nó sử dụng. Các chế độ địa chỉ được xác định ngay từ khi chế tạo ra
bộ vi xử lý và không thểthay đổi được. Bộ vi xử lý 8088 và họ 80x86 nói chung đều có
7 chế độ địa chỉ dữ liệu.
SVTH: …………… Trang 9
Đồ án môn học: Kỹ Thuật Vi Xử Lý
2.3.1 Chế độ địa chỉ thanh ghi.
Trong chế độ địa chỉ này các lệnh sử dụng các thanh ghi bên trong CPU làm
các toán hạng để chứa dữ liệu cần thao tác. Các thanh ghi sử dụng trong lệnh phải
cùng kích cỡ, trừ một số lệnh như lệnh SHL DX, CL.

2.3.2 Chế độ địa chỉ tức thì.
Trong chế độ này toán hạng đích là một thanh ghi hay ô nhớ, còn toán hạng
nguồn là một hằng số. Vì là hằng số nên toán hạng đích được tìm thấy ngay sau mã
lệnh. Hầu hết các chương trình dịch quy định cách viết các hằng số như sau:
+ Số hex: thêm chữ H vào cuối, riêng các số bắt đầu bằng chữ thì phải thêm cả
số 0 đằng trước. Ví dụ: 1234H, 0A231H
+ Số thập phân: viết bình thường. Ví dụ: 123, 22
+ Số nhị phân: thêm chữ B vào cuối, ví dụ: 10011B
+ Ký tự và chuỗi ký tự: phải đặt trong hai dấu phẩy trên. Ví dụ: ‘A’, ‘AB’.
2.3.3 Chế độ địa chỉ trực tiếp.
Trong chế độ địa chỉ này một toán hạng là địa chỉ lệch của ô nhớ trong đoạn dữ
liệu, còn toán hạng kia chỉ có thể là thanh ghi không được là ô nhớ. Địa chỉ lệch của ô
nhớ có thể cho dưới dạng tên hoặc một số hex (số hex 16 bit đặt trong ngoặc vuông).
2.3.4 Chế độ địa chỉ gián tiếp qua thanh ghi.
Trong chế độ địa chỉ này một toán hạng là một trong các thanh ghi BP, BX, DI
và SI chứa địa chỉ lệch của ô nhớ, còn toán hạng kia chỉ có thể là thanh ghi không
được là ô nhớ. Các thanh ghi đặt trong ngoặc vuông. BX, SI, DI chứa địa chỉ lệch của
ô nhớ trong đoạn dữ liệu DS, còn BP chứa địa chỉ lệch của ô nhớ trong đoạn ngăn xếp
SS.
2.3.5 Chế độ địa chỉ tương đối cơ sở.
Trong chế độ địa chỉ này một toán hạng là một ô nhớ được chỉ ra bởi một thanh
ghi cơ sở(BX, BP) cộng với một giá trị dịch chuyển (giá trị hằng), còn toán hạng kia
chỉ có thể là thanh ghi không được là ô nhớ.
SVTH: …………… Trang 10
Đồ án môn học: Kỹ Thuật Vi Xử Lý
Giá trị dịch chuyển có thể bằng số hoặc bằng tên. Nếu bằng số thì giá trị dịch
chuyển cộng với thanh ghi cơ sở đặt trong ngoặc vuông, ví dụ MOV AL,[BX+2]. Nếu
bằng tên thì tên này đặt trước ngoặc vuông, ví dụ MOV AL,DATA1[BX]. Cả hai dạng
giá trị dịch chuyển có thểxuất hiện đồng thời, ví dụ MOV AL,DATA1[BX+2].
Trong bộ vi xử lý 8088, giá trị dịch chuyển nếu là số thì là một số có dấu 16 bit

nằm trong khoảng -32768 đến 32767.
BX xác định địa chỉ trong đoạn dữ liệu DS còn BP xác định địa chỉ trong đoạn
ngăn xếp SS.
2.3.6 Chế độ địa chỉ tương đối chỉ số.
Tương tự như chế độ địa chỉ tương đối cơ sở, chỉ khác là trong chế độ địa chỉ
này sử dụng các thanh ghi chỉ số SI hoặc DI. Ô nhớ chỉ ra thanh ghi chỉ số cộng với
giá trị dịch chuyển nằm trong đoạn dữ liệu.
2.3.7 Chế độ địa chỉ tương đối chỉ số cơ sở.
Kết hợp hai chế độ địa chỉ tương đối chỉ số và tương đối cơ sở ta có chế độ
địa chỉ tương đối chỉ số cơ sở. Chế độ địa chỉ này dùng cả thanh ghi chỉ số và thanh
ghi cơ sở để xác định địa chỉ.
Chú ý: Các thanh ghi đoạn và thanh ghi lệch được ngầm định đi kèm với nhau
để xác định địa chỉcủa các toán hạng trong các đoạn nhớ khác nhau. Vì tính ngầm định
này nên trong các lệnh ta chỉ viết các thanh ghi lệch là đủ cơ sở để tính địa chỉ của
toán hạng. Tuy nhiên, bộ vi xử lý 8088 còn cho phép ta phá vỡ sự ngầm định này để
làm việc với các cặp thanh ghi đoạn và thanh ghi lệch khác. Để loại bỏ sự ngầm định
khi viết lệnh ta phải viết tên thanh ghi đoạn muốn dùng kèm theo dấu hai chấm trước
thanh ghi lệch. Cụm ký hiệu này gọi là cụm tiếp đầu ngữ để loại bỏ thanh ghi đoạn
ngầm định.
SVTH: …………… Trang 11
Đồ án môn học: Kỹ Thuật Vi Xử Lý
CHƯƠNG III: CÁC LỆNH DÙNG TRONG BỘ VI XỬ LÝ 8088
3.1 Các lệnh di chuyển.
3.1.1 Lệnh MOV.
Dùng để chuyển giữa các thanh ghi, giữa 1 thanh ghi và 1 ô nhớ hoặc chuyển 1
số vào thanh ghi hoặc ô nhớ.
Cú pháp: MOV đích, nguồn.
Lệnh này không tác động đến các cờ.
3.1.2 Lệnh PUSH.
Dùng để cất 1 từ từ thanh ghi hoặc ô nhớ vào đỉnh ngăn xếp

Cú pháp: PUSH nguồn
Mô tả: SP=SP-2, nguồn ->{SP}.
Giới hạn thanh ghi 16 bit hoặc là 1 từ nhớ
Lệnh này không tác động đến cờ
3.1.3 Lệnh POP.
Dùng để lấy lại 1 từ vào thanh ghi hoặc ô nhớ từ đỉnh ngăn xếp.
Cú pháp: POP Đích
Mô tả: {SP}=> Đích, SP=SP+2
Giới hạn: Thanh ghi 16 bit (trừ CS) hoặc là 1 từ nhớ
Lệnh này không tác động đến các cờ
3.2 Các lệnh số học và logic.
3.2.1 Lệnh ADD.
Lệnh cộng hai toán hạng
Cú pháp: ADD Đích, nguồn
Thực hiện: Đích= Đích + Nguồn
Giới hạn: toán hạng không được là 2 ô nhớ và thanh ghi đoạn
Lệnh này thay đổi cờ: AF, CF, OF, PF, SF, ZF.
SVTH: …………… Trang 12
Đồ án môn học: Kỹ Thuật Vi Xử Lý
3.2.2 Lệnh MUL.
Lệnh nhân số không dấu
Cú pháp: MUL nguồn
Thực hiện: AX= AL*nguồn 8 bit.
DXAX=AX* nguồn 16 bit.
Lệnh này thay đổi cờ: CF, OF.
3.2.3 Lệnh DIV.
Lệnh chia 2 số không dấu
Cú pháp: DIV nguồn
Thực hiện: AL=thương (AX/nguồn 8 bit); AH= dư(AX/nguồn 8 bit)
AX= thương (DXAX/nguồn 16bit); DX=dư (DXAX/nguồn 16 bit)

Lệnh này không thay đổi cờ.
3.2.4 Lệnh DEC.
Lệnh trừ 1 từ nội dung thanh ghi hoặc ô nhớ
Cú pháp: DEC Đích
Thực hiện: Đích= Đích -1
Lệnh này thay đổi các cờ: AF, OF, PF, SF, ZF.
3.2.5 Lệnh SUB.
Trừ hai toán hạng.
Cú pháp: SUB Đích, Nguồn
Thực hiện: Đích = Đích – Nguồn
Giới hạn: Toán hạng không được là 2 ô nhớ và thanh ghi đoạn
Lệnh này thay đổi cờ: AF, CF, OF, PF, SF, ZF.
SVTH: …………… Trang 13
Đồ án môn học: Kỹ Thuật Vi Xử Lý
3.2.6 Lệnh XOR.
Lệnh hoặc loại trừ hai toán hạng.
Cú pháp: AND Đích, Nguồn
Thực hiện: Đích = Đích Nguồn
Giới hạn: Toán hạng không được là 2 ô nhớ hoặc thanh ghi đoạn
Lệnh này thay đổi cờ: PF, SF, ZF và xóa cờ CF, OF.
3.2.7 Lệnh CMP.
Lệnh so sánh 2 byte hoặc 2 từ
Cú pháp: CMP Đích, Nguồn
Thực hiện: Đích = Nguồn : CF=0 ZF=1
Đích > Nguồn: CF=0 ZF=0
Đích < Nguồn: CF=1 ZF=0
Giới hạn: Toán hạng phải cùng độ dài và không được là 2 ô nhớ.
3.3 Các lệnh điều khiển chương trình.
3.3.1 Lệnh JMP.
Dùng để nhảy tới một địa chỉ trong bộ nhớ

Có 3 loại: nhảy ngắn, gần và xa
Lệnh nhảy ngắn:
Phạm vi nhảy: -128 đến 127 bytes so với lệnh tiếp theo lệnh JMP
Lệnh nhảy gần:
Phạm vi nhảy: -32768 đến 32767 bytes so với lệnh tiếp theo lệnh JMP
Lệnh nhảy xa:
Phạm vi nhảy: Đoạn max khác.
Nhảy được thực hiện phụ thuộc vào các cờ.
SVTH: …………… Trang 14
Đồ án môn học: Kỹ Thuật Vi Xử Lý
3.3.2 Lệnh JNE.
Nhảy nếu không bằng hoặc nhảy nếu kết quả không rỗng.
Cú pháp: JNE NHAN.
Thực hiện: IP <= IP + Dịch chuyển.
3.3.3 Lệnh JE/JZ.
Nhảy nếu bằng nhau hoặc nhảy nếu kết quả bằng không.
Cú pháp: JE NHAN.
JZ NHAN.
Thực hiện: IP <= IP + Dịch chuyển.
3.3.4 Lệnh JB.
Nhảy nếu thấp hơn, nhảy nếu có hoặc nhảy nếu không cao hơn hoặc bằng.
Cú pháp: JB NHAN.
Thực hiện: IP <= IP + Dịch chuyển.
3.4 Lệnh tính địa chỉ lệch LEA.
Nạp địa chỉ hiệu dụng vào thanh ghi.
Cú pháp: LEA Đích, nguồn.
Thực hiện: Đích <= Địa chỉ lệnh gốc hoặc địa chỉ hiệu dụng của gốc.
Lệnh này không tác động đến các cờ.

SVTH: …………… Trang 15

Đồ án môn học: Kỹ Thuật Vi Xử Lý
CHƯƠNG IV: VIẾT CHƯƠNG TRÌNH THỰC HIỆN CÔNG VIỆC
NHẬP SỐ N (N

9, NGUYÊN DƯƠNG) TỪ BÀN PHÍM. TÍNH
S =
222
21 N
+++
4.1 Chương trình tính S =
222
21 N
+++
.model small
.stack 100h
.data
msg1 db 'nhap so N : $'
msg2 db 13,10,'Tong S la : $'
.code
main proc
mov ax,@data
mov ds,ax
mov ah,9
lea dx,msg1
int 21h
mov ah,1
int 21h
sub al,30h
xor bx,bx
lap:

xor ah,ah
push ax
mul al
add bx,ax
pop ax
dec al
cmp al,0
jne lap
mov ah,9
lea dx,msg2
SVTH: …………… Trang 16
Đồ án môn học: Kỹ Thuật Vi Xử Lý
int 21h
xor ax,ax
mov ax,bx
push ax
mov bx,100
mov cx,1 ;
mov dx,0
begin_print:
cmp bx,0
jz end_print
cmp cx,0
je calc
cmp ax,bx
jb giulai
calc:
mov cx,0
mov dx,0
div bx

push dx
add al,30h
xor dx,dx
mov dl,al
mov ah,2
int 21h
pop dx
mov ax,dx
giulai:
push ax
mov dx,0
mov ax,bx
div cs:muoi
mov bx,ax
SVTH: …………… Trang 17
Đồ án môn học: Kỹ Thuật Vi Xử Lý
pop ax
jmp begin_print
muoi dw 10
end_print:
pop ax
pop cx
pop bx
pop dx
mov ah,4ch
int 21h
main endp
END MAIN
4.2 Giao diện chương trình.
SVTH: …………… Trang 18

Hình 4.1: Giao diện chương trình EMU8086 lúc mới mở lên.
Đồ án môn học: Kỹ Thuật Vi Xử Lý
SVTH: …………… Trang 19
Hình 4.2: Giao diện chương trình EMU8086 lúc đã viết xong chương trình.
Đồ án môn học: Kỹ Thuật Vi Xử Lý
SVTH: …………… Trang 20
Hình 4.3: Giao diện chương trình EMU8086 lúc bắt đầu chạy.
Đồ án môn học: Kỹ Thuật Vi Xử Lý
SVTH: …………… Trang 21
Hình 4.4: Giao diện chương trình EMU8086 lúc chạy.
Hình 4.5: Giao diện chương trình EMU8086 lúc chạy xong.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×