Tải bản đầy đủ (.pdf) (14 trang)

Vi Xử Lý và Cấu Trúc Máy Tính chương 03 pptx

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 (1.64 MB, 14 trang )

VI XỬ LÝ &
CẤU TRÚC MÁY TÍNH
ĐH CNKT ĐIỆN TỬ TRUYỀN THÔNG K5
Giảng viên: Kiều Xuân Thực
Khoa Điện tử
Đại học công nghiệp Hà Nội
CHƯƠNG 3
LẬP TRÌNH ASSEMBLY CHO 8086
Nội dung:
1. Giới thiệu
2. Các chế độ địa chỉ của 80x86
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
3. Một số hàm của ngắt 21h
4. Tập lệnh của 8086
5. Ngăn xếp và thủ tục
1. Giới thiệu
 Hợp ngữ (Assembly): ngôn ngữ lập trình bậc thấp, sử
dụng chính các câu lệnh trong tập lệnh của VXLđể viết
nên một chương trình
 Ưu điểm của lập trình hợp ngữ: chương trình viết
bằng hợp ngữ chạy nhanh và chiếm ít bộ nhớ hơn so
với các chương trình viết bằng các ngôn ngữ bậc cao
do
:
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
do
:
 Trình dịch chỉ cần qua một bước là có thể biên dịch các chương trình
này ra mã máy


 Lập trình hợp ngữ cho phép đọc hoặc ghi trực tiếp vào các ô nhớ,
thanh ghi hay các cổng vào/ra dễ dàng.
 Nhược điểm:
 Chương trình dài nên khó kiểm soát lỗi, khó bảo trì hơn so với chương
trình tương tự viết bằng ngôn ngữ bậc cao
 Chương trình viết bằng hợp ngữ chỉ chạy được trên hệ thống tương
ứng, không thể thực thi trên hệ thống có kiến trúc và tập lệnh khác.
4
Printed with FinePrint trial version - purchase at www.fineprint.com
Cú pháp của hợp ngữ
 Một chương trình hợp ngữ bao gồm các dòng lệnh,
mỗi lệnh được viết trên một dòng.
 Một dòng lệnh có thể là:
 Lệnh thật:được hợp ngữ dịch ra mã máy
 Hướng dẫn biên dịch: không được dịch ra mã máy

Mỗi một lệnh bao gồm có
4
trường:
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering

Mỗi một lệnh bao gồm có
4
trường:
Tên: Mã_lệnh Toán_hạng; Chú_giải
 Các trường phải được cách nhau ít nhất một ký tự
trống hoặc TAB.
 Một lệnh không nhất thiết phải có đủ 4 trường, VD
trường tên hoặc trường chú giải có thể bỏ qua nhưng

các trường phải xuất hiện theo đúng theo thứ tự.
 Ví dụ: NHAP: MOV AX,0; Chuyển 0 vào thanh ghi AX
5
 Trường tên: sử dụng làm nhãn lệnh, tên các thủ tục và
tên biến. Tên sẽ được chương trình dịch gán bằng các
địa chỉ cụ thể của ô nhớ.
 Trường tên cách với trường mã lệnh bởi dấu (:)
 Các quy định khi đặt tên:

Không được dài quá 31 ký tự.
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering

Không được dài quá 31 ký tự.
 Bao gồm các chữ cái, chữ số và một số ký tự đặc biệt (!@% _$).
 Không được bắt đầu bằng một chữ số.
 Không chứa khoảng trống hoặc dấu gạch ngang.
 Nếu có dấu (.) thì phải đặt ở vị trí đầu tiên của tên.
 Không phân biệt chữ thường, chữ hoa.
6
 Trường mã lệnh: các ký hiệu gợi nhớ biểu thị chức năng
thao tác như MOV, ADD, SHL
 Trường toán hạng: toán hạng xác định dữ liệu sẽ được các
lệnh tác động lên. Một lệnh có thể không có, có 1 hoặc có 2
toán hạng. Ví dụ:
NOP
DEC CX
MOV AX,1
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering

MOV AX,1
 Chú ý:
• Lệnh có 2 toán hạng phải cách nhau bởi dấu phảy (,). Toán
hạng đầu là toán hạng đích (nơi chứa kết quả), toán hạng
thứ hai là toán hạng nguồn, các lệnh thường không làm thay
đổi toán hạng nguồn.
• Các toán hạng của lệnh phải có cùng độ lớn hay cùng kiểu thì
mới hợp lệ
 Ví dụ: MOV AX,BX MOV AX,BL
7
 Trường chú giải: sử dụng để giải thích mục đích sử
dụng lệnh của chương trình giúp người đọc dễ hiểu.
Lời giải thích cách với trường toán hạng dấu chấm
phảy (;) Chương trình dịch bỏ qua khi dịch đến dấu ;
 VD:
; MOV CX,DX
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
MOV CX,5; Khởi tạo đếm bằng 5
8
Printed with FinePrint trial version - purchase at www.fineprint.com
Dữ liệu chương trình
 Qui ước:
 1 số thuộc hệ nhị phân là 1 chuỗi các bit kết thúc bằng chữ ‘B’
hay ‘b’
 1 số thuộc hệ hexa là một chuỗi các số bắt đầu là một số thập
phân và kết thúc bằng chữ ‘H’ hay ‘h’. Ví dụ: 0AH hoặc 12C5H.
Nếu một số bắt đầu bằng một chữ cái thì phải thêm 0 vào
trước số đó để chương trình dịch không nhầm sang một tên
HANOI UNIVERSITY OF INDUSTRY

Faculty of Electronic Engineering
trước số đó để chương trình dịch không nhầm sang một tên
hay một nhãn.
 Riêng đối với một số thuộc hệ thập phân có thể kết thúc số đó
bằng chữ ‘D’ hay ‘d’ (hoặc không có). Ví dụ: 12 hay 12D là
như nhau.
 Các ký tự hoặc chuỗi ký tự phải được đặt trong dấu nháy đơn
hoặc nháy kép. Ví dụ: ‘a’, “Chao ban”.
Các ký tự sẽ được dịch ra mã ASCII của chúng, chương trình
dịch sẽ không phân biệt giữa “A” với 41H, 1000001B hoặc 65.
9
 Biến: một biến được định nghĩa như sau
Tên_biến Kiểu_biến G iá_trị_khởi_tạo
 Tên biến: đặt theo qui ước
 Kiểu biến:
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
 Giá trị khởi tạo: đặt giá trị ban đầu cho biến, nếu
không muốn đặt giá trị đầu cho biếnđể ?
 VD: Khoa DB 5;
Lop DB ‘DHDT1$’
10
 Hằng: Các hằng trong hợp ngữ có thể là kiểu số hay
kiểu ký tự và được gán tên bởi toán tử EQU (equate)
Tên_hằng_số EQU Giá_trị
 VD:
CR EQU 0DH
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
CR EQU 0DH

PI EQU 3.14159
11
Khung của một chương trình hợp ngữ
title Tên_chương_trình (có thể bỏ qua)
.model Kiểu_bộ_nhớ
.stack Dung_lượng_ngăn_xếp
.data
; khai báo các hằng, biến

.code
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
.code
main proc
; các lệnh chương trình chính

main endp
; các hàm và thủ tục

end main
12
Printed with FinePrint trial version - purchase at www.fineprint.com
.model Kiểu_bộ_nhớ
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
.stack Dung_lượng_ngăn_xếp
 VD: .stack 100h tạo ngăn xếp kích thước 256byte
 Nếu không khai báo thì chương trình tự gán 1Kbyte cho ngăn
xếp
13

.model small
.stack 100H
.data
message DB "I am student!$“
.code
main proc
mov
AX,@data
Hiển thị dòng chữ
“I am student!"
lên màn hình bằng
hàm
số
9
của
ngắt
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
mov
AX,@data
mov DS,AX
mov AH,9
mov DX,message
int 21H
mov AH,4CH
int 21H
main endp
end main
14
hàm

số
9
của
ngắt
21h
2. Các chế độ địa chỉ của 80x86
1. Chế độ địa chỉ thanh ghi (Register Addressing Mode)
2. Chế độ địa chỉ tức thời (Immediate Addressing Mode)
3. Chế độ địa chỉ trực tiếp (Direct Addressing Mode)
4. Chế độ địa chỉ gián tiếp qua thanh ghi (Register Direct
Addressing Mode)
5.
Chế
độ
địa
chỉ
tương
đối

sở
(Based Relative Addressing
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
5.
Chế
độ
địa
chỉ
tương
đối


sở
(Based Relative Addressing
Mode)
6. Chế độ địa chỉ tương đối chỉ số (Indexed Relative Addressing
Mode)
7. Chế độ địa chỉ tương đối chỉ số cơ sở (Based Indexed Relative
Addressing Mode)
15
Chế độ địa chỉ thanh ghi
MOV AX,BX ;Chuyển nội dung của BX vào AX
MOV DL,AL ;Chuyển nội dung của AL vào DL
MOV SI,DX ;Chuyển nội dung của DX vào SI
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
MOV SP,BP ;Chuyển nội dung của BP vào SP
ADD AL,BH ;Cộng nội dung của BH với AL,kết quả lưu trong AL
MOV CL,BX ;Lệnh này sẽ báo lỗi vì đích và nguồn không cùng kiểu
16
Printed with FinePrint trial version - purchase at www.fineprint.com
Chế độ địa chỉ tức thời
MOV AH,12; chuyển 12 vào thanh ghi AH
MOV DL,0AH; chuyển 10 (0AH) vào thanh ghi DL
MOV AH,01000010B; chuyển 66 vào thanh ghi AH
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
MOV CL,A ; chuyển 65 vào thanh ghi CL
MOV [BX],100; chuyển 100 vào ô nhớ có địa chỉ DS:BX
17
Chế độ địa chỉ trực tiếp

MOV AL, [012H];chuyển nội dung ô nhớ DS:[012H]vào AL
MOV AL, ES:[22];chuyển nội dung ô nhớ ES:[012H]vào AL
MOV [16H], AX ;chuyển nội dung của AX vào hai ô nhớ
;
liên
tiếp

địa
chỉ
DS:[16H]

DS:[17H]
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
;
liên
tiếp

địa
chỉ
DS:[16H]

DS:[17H]
MOV BX,[5678H]; chuyển nội dung của hai ô nhớ có địa
;chỉ DS:[5678H]và DS:[5679h]vào BX
18
Chế độ địa chỉ gián tiếp qua thanh ghi
MOV AX,[BX]; Chuyển nội dung của hai ô nhớ có địa chỉ ;DS:[BX]và
DS:[BX+1]vào AX
MOV AL,[BX]; Chuyển nội dung của ô nhớ có địa chỉ DS:[BX] vào AL

MOV [BP],AL; Chuyển nội dung của AL vào ô nhớ có địa chỉ SS:[BP]
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
19
Chế độ địa chỉ tương đối cơ sở
MOV [BP+2],AL; Chuyển nội dung của AL vào ô nhớ có địa
; chỉ SS:[BP+2]
MOV AX,[BX+4]; Chuyển nội dung của hai ô nhớ có địa chỉ
; DS:[BX+4]và DS:[BX+5]vào AL và AH
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
Lệnh này có thể viết như sau:
MOV AX,[BX]+4
20
Printed with FinePrint trial version - purchase at www.fineprint.com
Chế độ địa chỉ tương đối chỉ số
Ví dụ: MOV AX,[DI+4];
Ý nghĩa: chuyển nội dung của hai ô nhớ có địa chỉ
DS:[DI+4]và DS:[DI+5]vào AX
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
21
Chế độ địa chỉ tương đối chỉ số cơ sở
Ví dụ:
MOV AH,[BX+SI+disp]; disp là hằng số
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
22
3. Một số hàm của ngắt 21h
 Cách gọi một hàm của ngắt 21h của DOS:

MOV AH, Số_hiệu_hàm;
INT 21H
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
23
Hàm 4C
 Cách gọi:
MOV AH,4CH
INT 21H

Chức
năng
:
thoát
khỏi
chương
trình
,
trở
về
DOS
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering

Chức
năng
:
thoát
khỏi
chương

trình
,
trở
về
DOS
24
Printed with FinePrint trial version - purchase at www.fineprint.com
Hàm 01
 Chức năng: nhập 1 ký tự từ bàn phím
 Cách gọi:
MOV AH,1
INT 21H
 Trả về: AL chứa mã ASCII của ký tự nhập vào; AL = 0
nếu
một
phím
điều
khiển
hay
một
phím
chức
năng
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
nếu
một
phím
điều
khiển

hay
một
phím
chức
năng
được nhấn.
25
Hàm 02
 Chức năng: xuất 1 ký tự ra màn hình
 Cách gọi:
MOV DL,Mã_ASCII_của_ký_tự;
MOV AH,2
INT 21H

Trả
về
: AL
chứa

ASCII
của

tự
.
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering

Trả
về
: AL

chứa

ASCII
của

tự
.
 Chú ý: Nếu DL chứa mã ASCII của ký tự điều khiển,
hàm 2 sẽ thi hành các chức năng điều khiển
 Ví dụ:
mov AH,2
mov DL,’A’
; mov DL,7
int 21H
26
Ví dụ minh họa
.model small
.stack 100H
.data
.code
main proc
mov AH,2
mov DL,0AH
int 21H
mov DL,0DH
int 21H
Nhập vào một ký
tự rồi hiển thị ký
tự đó ở đầu dòng
tiếp

theo
!
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
mov AH,1
int 21H
mov BL,AL
27
mov DL,BL
int 21H
mov AH,4CH
int 21H
main endp
end main
tiếp
theo
!
Hàm 09
 Chức năng: hiểm thị 1 chuỗi ký tự ra màn hình, địa chỉ
của chuỗi ký tự DS:DX
 Cách gọi:
MOV AX,@DATA
MOV DS,AX; nhập địa chỉ đoạn dữ liệu vào DS
LEA
DX,Tên_của_chuỗi_ký_tự
;
nhập
địa
chỉ
lệch

của
chuỗi
vào
DX
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
LEA
DX,Tên_của_chuỗi_ký_tự
;
nhập
địa
chỉ
lệch
của
chuỗi
vào
DX
MOV AH,9
INT 21H
 Chú ý: @data trả về địa chỉ đoạn dữ liệu được định
nghĩa bởi .data ở đầu chương trình.
28
Printed with FinePrint trial version - purchase at www.fineprint.com
Ví dụ
.model small
.stack 100H
.data
tb1 DB “Moi ban nhap vao 1 ky tu thuong:$”
tb2 DB 10,13,“Doi thanh chu hoa la:$”
.code

mov AH,1
int 21H
mov BL,AL
sub BL,20h
mov AH,9
LEA DX,tb2
int 21H
mov
AH,2
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
.code
main proc
mov AX,@data
mov DS,AX
mov AH,9
LEA DX,tb1
int 21H
29
mov
AH,2
mov DL,BL
int 21H
mov
AH,4CH
int 21H
main endp
end main
4. Tập lệnh của 8086
1. Nhóm lệnh dịch chuyển dữ liệu

2. Nhóm lệnh số học
3. Nhóm lệnh điều khiển rẽ nhánh
4.
Nhóm
lệnh
xử

bit
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
4.
Nhóm
lệnh
xử

bit
5. Nhóm lệnh xử lý điều khiển
6. Nhóm lệnh xử lý chuỗi
30
Nhóm lệnh dịch chuyển dữ liệu
 Lệnh MOV (MOVE):
MOV đích, nguồn
Toán hạng đích
Toán hạng nguồn
Thanh
ghi đa
năng
Thanh ghi
đoạn
Ô nhớ Hằng số

Thanh
ghi
đa
năng
Có thể
Có thể
Có thể
Không thể
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
MOV DS,ES
MOV DS,0AH
31
Thanh
ghi
đa
năng
Có thể
Có thể
Có thể
Không thể
Thanh ghi đoạn Có thể Không thể Có thể Không thể
Ô nhớ Có thể Có thể Không thể Không thể
Hằng số Có thể Không thể Có thể Không thể
 Lệnh OUT
Dạng lệnh: OUT cổng,thanh_ghi_chứa
Thao tác: Lệnh OUT xuất dữ liệu từ thanh ghi chứa
(AL) ra cổng
 Lệnh IN
Dạng

lệnh
:
IN
thanh_ghi_chứa
,
cổng
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
Dạng
lệnh
:
IN
thanh_ghi_chứa
,
cổng
Thao tác: Lệnh IN đọc dữ liệu từ cổng vào thanh
ghi (AL).
32
Printed with FinePrint trial version - purchase at www.fineprint.com
Nhóm lệnh số học
 Lệnh ADD, SUB
 Dạng lệnh: ADD đích, nguồn
SUB đích, nguồn
 Lệnh ADD/SUB thực hiện cộng/trừ nội dung của toán
hạng đích với toán hạng nguồn, kết quả lưu vào toán
hạng
đích
,
nguồn
không

thay
đổi
.
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
hạng
đích
,
nguồn
không
thay
đổi
.
33
Toán hạng đích
Toán hạng nguồn
Thanh ghi
đa năng
Ô nhớ Hằng số
Thanh ghi đa năng Có thể Có thể Không thể
Ô nhớ Có thể Không thể Không thể
Hằng số Có thể Có thể Không thể
 Lệnh DEC (DECrement)
 Dạng lệ nh: DEC đích
 Thao tác: Giảm đích đi 1.
 Tương đương với lệnh SUB đích,1.

Lệnh
INC (
INCrement

)
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering

Lệnh
INC (
INCrement
)
 Dạng lệ nh: INC đích
 Thao tác: Tăng đích thêm 1.
 Tương đương với lệnh ADD đích,1.
34
 Lệnh MUL (MULtiply)
 Dạng lệnh: MUL nguồn
 Thao tác: Lệnh MUL nguồn thực hiện nhân nội dung của AL với
nguồn nếu nguồn là một byte, tích mặc định chứa trong AX;
hoặc nhân nội dung của AX với nguồn nếu toán hạng nguồn là
một word, tích mặc định chứa trong DX: AX.

Nguồn
không
được

hằng
số
.
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering

Nguồn

không
được

hằng
số
.
 Ví dụ: mov AL,3
mov BL,5
mul BL
mov DX,AX
mov AL,6
mov Bl,8
mul BL
add AX,DX
35
 Lệnh DIV (DIVide)
 Thực hiện phép chia không dấu.
 Dạng lệnh: DIV nguồn
 Thao tác: Số chia là nguồn có thể là một ô nhớ hay
thanh ghi.
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
 Trong phép chia cho byte (nguồn là 8 bit), số bị chia
là chứa trong AX, kết quả thương số chứa trong AL
và số dư trả về trong AH.
 Khi thực hiện phép chia cho word (nguồn là 16 bit),
số bị chia 32 bit chứa trong DX:AX. Kết quả thương
số chứa trong AX và số dư trả về trong DX.
36
Printed with FinePrint trial version - purchase at www.fineprint.com

Nhóm lệnh điều khiển rẽ nhánh
 Lệnh nhảy không có điều kiện: JMP Nhãn_lệnh
 Nhảy ngay đến Nhãn_lệnh mà không cần điều kiện gì
 Nhóm lệnh nhảy có điều kiện
 Với các lệnh nhảy có điều kiện thì khi gặp lệnh nhảy, nếu như
điều kiện của lệnh nhảy được thoả mãn thì Nhãn_lệnh được thi
hành còn nếu ngược lại thì thực hiện lệnh nằm ngay sau lệnh
nhảy
.
Nhãn_lệnh

thể
đặt
trước
hoặc
sau
lệnh
nhảy
.
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
nhảy
.
Nhãn_lệnh

thể
đặt
trước
hoặc
sau

lệnh
nhảy
.
 Phạm vi của lệnh nhảy có điều kiện trong khoảng 128 byte trước
lệnh nhảy và 127 byte sau lệnh nhảy
 Dạng lệnh: Lệnh_nhảy Nhãn_lệnh
 Điều kiện: dùng lệnh so sánh CoMPare:
CMP đích, nguồn
CMP: Trừ đích cho nguồn và thiết lập các cờ theo kết quả của
phép tính, 2 toán hạng vẫn thay đổi giá trị.
37
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
38
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
39
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
40
Hiển thị các số từ 0 đến 8 trên
màn hình!
Hiển thị các số từ 0 đến 9 trên
màn hình?
Printed with FinePrint trial version - purchase at www.fineprint.com
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
41
Bài tập
 Tính tổng: 1+2+…+100, lưu kết quả ở BX

 Tính tổng: 1+3+…+101, lưu kết quả ở DX
 Tính 7!, lưu kết quả ở BX
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
42
Nhóm lệnh xử lý bit
 Các lệnh logic: AND, OR, XOR
 Ứng dụng: xóa bit, thiết lập bit, đảo giá trị bit
trong 1 byte/word bằng cách AND, OR, XOR với
mặt nạ
 Ví dụ:
and AL,0DFH;
xoá
bit 5
của
AL
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
and AL,0DFH;
xoá
bit 5
của
AL
OR AH,81H; thiết lập bit 0 và bit 3 của AH
XOR AH,81H; đảo bit 0 và bit 3 của AH
43
 Các lệnh dịch: SHL và SHR
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
44

Printed with FinePrint trial version - purchase at www.fineprint.com
VD: nhập 16 bit, lưu vào BX
Dùng hàm 01 của ngắt 21h để đọc bàn phím.
Nhập 0: Al chứa 30H; Nhập 1: AL chứa 31H
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
45
Bài tập
 Nhập tối đa 16 bit để lưu vào BX, dừng
nhập khi nhấn Enter.
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
46
 Các lệnh quay: ROL và ROR
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
47
 Các lệnh quay qua cờ CF: RCL và RCR
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
48
Printed with FinePrint trial version - purchase at www.fineprint.com
BT: xuất 16 bit của BX ra màn hình
Dùng hàm 02 của ngắt 21h để xuất ra màn hình.
Xuất 0: DL chứa 30H; xuất 1: DL chứa 31H
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
49
5. Ngăn xếp & thủ tục
 Ngăn xếp: lưu trữ dữ liệu tạm thời kiểu LIFO

 Cất vào ngăn xếp: PUSH
 Lấy ra: POP
 Ví dụ
Mov ax, 3
Mov
bx,5
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
Mov
bx,5
Mul bl
Push ax
Mov ax, 4
Mov bx,6
Mul bl
Pop bx
Add ax,bx
50
VD nhập 4 số có 1 chữ số, tính tổng
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
51
Thủ tục
HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
52
Printed with FinePrint trial version - purchase at www.fineprint.com
HOMEWORK
 Làm các BT cuối chương 3 của Giáo trình.
 Đọc trước Chương 4 của Giáo trình.

HANOI UNIVERSITY OF INDUSTRY
Faculty of Electronic Engineering
54
Printed with FinePrint trial version - purchase at www.fineprint.com

×