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

Lập trình hợp ngữ họ MCS-51_chương 3

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 (211.97 KB, 22 trang )

Bài giảng VI XỬ LÝ Chương 3: Lập trình hợp ngữ họ MCS-51
1
CHƯƠNG 3: LẬP TRÌNH HP NGỮ HỌ MCS-51

Tại phần trước chúng ta đã chỉ ra cấu trúc 3-bus chung cho tất cả các họ vi xử lý. Với cấu trúc
này, tất cả các họ vi xử lý khác nhau có thể thực hiện được mọi công việc mà ta có thể thấy
trong cuộc sống, từ điều khiển các quá trình phức tạp, truyền thông, trò chơi điện tử… Một câu
hỏi đặt ra là: vậy thì cái gì đặc trưng cho bộ vi xử lý để nó có thể thực hiện chức năng riêng biệt
của vi xử lý. Đó chính là phần mềm (software), hay chương trình.
I. CÁC KHÁI NIỆM CƠ BẢN VỀ LẬP TRÌNH CHO VI XỬ LÝ VÀ VI ĐIỀU KHIỂN
1. Chương trình
- Chương trình (program) là chuỗi các câu lệnh hay phát biểu được viết trong một dạng đặc
thù (ngôn ngữ lập trình). Các lệnh này khi được thực hiện bởi vi xử lý sẽ thực hiện những
thao tác nhất đònh với kết quả đoán trước được.
- Có nhiều loại ngôn ngữ lập trình:
+ Ngôn ngữ máy (machine language)
Mã nhò phân
Mã bát phân hoặc thập lục phân
+ Hợp ngữ (assembly language) [cần có assembler – trình dòch hợp ngữ]
Mã kí hiệu
+ Ngôn ngữ cấp cao [cần có compiler – trình biên dòch]
Pascal, Fortran, Basic, C, C++, …
2. Lưu đồ chương trình
- Bước đầu tiên của việc lập trình là xác đònh rõ ràng mục đích của chương trình và trình tự
cần thiết để đạt mục đích đó. Một trong những công cụ quan trọng trong việc phát triển
chương trình là lưu đồ chương trình.
- Lưu đồ chương trình là biểu diễn bằng hình ảnh thứ tự các thao tác cần làm để giải quyết
một vấn để cụ thể. Lưu đồ chương trình không phụ thuộc ngôn ngữ lập trình hoặc loại vi xử
lý cụ thể nào. Lưu đồ chương trình chỉ phụ thuộc vào công việc mà người lập trình muốn
hoàn thành.
- Các khối cơ bản dùng trong lưu đồ chương trình:


Khối bắt đầu và
kết thúc
Khối thực hiện
Khối quyết đònh (khối rẽ
nhánh có điều kiện)
Gọi chương trình con Khối nhập/xuất
Đầu nối
(khi qua trang mới)
Chỗ nối chung

Rất nhiều người lập trình khi mới bắt đầu với việc lập trình thường không thích sử dụng lưu
đồ chương trình vì nghó rằng việc vẽ lưu đồ là tốn thời gian. Điều này chỉ đúng với các
chương trình ngắn và đơn giản, nhưng trường hợp chương trình dài hơn thì nếu không có lưu
đồ sẽ rất dễ bò rối rắm. Lưu đồ chương trình giúp sắp xếp các ý tưởng và lời giải của từng
vấn đề riêng biệt. Sau khi hoàn thành lưu đồ, ta có thể trao đổi với người khác về ý tưởng
Bài giảng VI XỬ LÝ Chương 3: Lập trình hợp ngữ họ MCS-51
2
của mình. Có lưu đồ chương trình thì dù sau một thời gian dài ta vẫn có thể quay lại với
chương trình của mình một cách dễ dàng mà không bò “lạc” trong các dòng lệnh vốn rất chi
tiết của chương trình hợp ngữ.
3. Khuôn dạng của chương trình hợp ngữ
Một chương trình hợp ngữ có thể bao gồm:
- Các lệnh (instruction) của vi xử lý/vi điều khiển
- Các chỉ dẫn (directive) của trình dòch hợp ngữ
- Các điều khiển (control) của trình dòch hợp ngữ
- Các chú thích (comment)
Các lệnh là các mã gợi nhớ quen thuộc và sẽ được dòch ra mã máy tương ứng với vi xử lý/vi
điều khiển. Các chỉ dẫn của trình dòch hợp ngữ là các lệnh của trình dòch hợp ngữ dùng để
đònh nghóa cấu trúc chương trình, các ký hiệu, dữ liệu, các hằng số… Các điều khiển của
trình dòch hợp ngữ thiết lập các chế độ trình dòch hợp ngữ và các luồng hợp dòch trực tiếp.

Các chú thích giúp cho chương trình dễ đọc bằng cách đưa ra các giải thích về mục đích và
hoạt động của các chuỗi lệnh.
Các dòng chứa các lệnh và các chỉ dẫn phải được viết theo các qui luật mà trình dòch hợp
ngữ hiểu được. Mỗi dòng được chia thành các trường cách biệt nhau bởi khoảng trắng hay
khoảng tab. Khuôn dạng tổng quát của mỗi dòng như sau:
Tên (Nhãn) Mã gợi nhớ Các toán hạng Chú thích
trong đó chỉ có trường mã gợi nhớ là bắt buộc. Với trình dòch hợp ngữ ASM51, trường mã
gợi nhớ không cần ở trên cùng một dòng với trường nhãn. Tuy nhiên, trường toán hạng phải
ở trên cùng một dòng với trường mã gợi nhớ. Có thể viết các dòng này bằng chữ hoa hay
chữ thường và chúng sẽ được coi là tương đương vì trình dòch hợp ngữ không phân biệt kiểu
chữ.
a. Trường tên
Trường này có thể chứa các nhãn, tên biến, hay tên chương trình con (thủ tục). Các tên
và nhãn này sẽ được trình dòch hợp ngữ gán bằng các đòa chỉ cụ thể của lệnh (hoặc dữ
liệu) theo sau. Tên và nhãn có thể có độ dài từ 1 đến 31 ký tự, không chứa khoảng trắng,
phải bắt đầu bằng ký tự chữ, dấu ‘?’ hay dấu ‘_’ và tiếp theo phải là các ký tự chữ, các
ký số, dấu ‘?’ hay dấu ‘_’. Các tên và nhãn không được trùng với các từ khóa (các mã
gợi nhớ, các chỉ dẫn, các toán tử hay các ký hiệu đònh nghóa trước). Nói chung, ta cứ đặt
các tên bình thường và có ý nghóa là sẽ ít bò lỗi. Một nhãn được kết thúc bằng dấu ‘:’.
b. Trường mã gợi nhớ
Trường này chứa mã gợi nhớ (mnemonic) cho biết chức năng của lệnh (ví dụ như ADD,
MOV, DIV, MUL, INC…) hay chỉ dẫn của trình dòch hợp ngữ (ví dụ như ORG, END,
EQU, DB…)
.
Các chỉ dẫn không được dòch ra mã máy.
c. Trường toán hạng (operand)
Trường này chứa đòa chỉ hay dữ liệu mà lệnh sẽ sử dụng. Tùy theo từng loại lệnh mà có
thể có 0, 1, 2 hay 3 toán hạng. Các toán hạng cách nhau bởi dấu phẩy.
d. Trường chú thích (comment)
Các chú thích để làm rõ chương trình được đặt trong trường chú thích ở cuối dòng lệnh.

Điều này giúp cho người đọc chương trình dễ hiểu các thao tác của chương trình hơn.
Các chú thích cần phải được bắt đầu bằng dấu ‘;’. Các chú thích có thể chiếm nhiều
dòng riêng và cũng phải bắt đầu bằng dấu chấm ‘;’.
Bài giảng VI XỬ LÝ Chương 3: Lập trình hợp ngữ họ MCS-51
3
Khi ta viết chương trình bằng kí tự của bảng chữ cái, ta gọi đây là dạng mnemonic (mã gợi
nhớ). Vi xử lý/vi điều khiển không hiểu được các chữ cái này. Chúng đòi hỏi các lệnh phải
được viết dưới dạng đặc biệt gọi là object code (mã đối tượng, mã lệnh). Mnemonic được
dùng trong chương trình gốc dưới dạng source code (mã nguồn) do người lập trình viết bằng
hợp ngữ hoặc (ngôn ngữ lập trình khác). Còn object code là ngôn ngữ chỉ bao gồm các số 1
và 0, đây là ngôn ngữ mà vi xử lý/vi điều khiển sẽ làm việc được. Vi xử lý/vi điều khiển đọc
object code từ bộ nhớ dưới dạng các byte và biên dòch các dữ liệu thành lệnh cần thực thi.
 Một số chỉ dẫn của trình dòch hợp ngữ thường dùng:
• ORG
Dạng: ORG bieuthuc
Chỉ dẫn ORG thay đổi nội dung bộ đếm chương trình theo giá trò của bieuthuc để thiết
lập nơi bắt đầu mới của chương trình cho các phát biểu theo sau nó.
• END
Dạng: END
END là phát biểu cuối cùng của chương trình nguồn. Nhãn không được sử dụng trên
dòng này.
• EQU
Dạng: kyhieu EQU bieuthuc
Chỉ dẫn EQU gán giá trò của bieuthuc cho kyhieu. Kyhieu phải là tên hợp lệ.
• DB
Dạng: nhan: DB bieuthuc{, bieuthuc][…]
Chỉ dẫn DB thường được dùng để đònh nghóa các giá trò byte tương ứng với các bieuthuc
trong bộ nhớ chương trình bắt đầu từ đòa chỉ tương ứng với nhan.
4. Biên dòch chương trình
- Chương trình phải được chuyển sang thành dạng object code trước khi vi xử lý/vi điều

khiển có thể thực hiện chương trình. Quá trình chuyển từ chương trình dạng source code
sang object code gọi là biên dòch/hợp dòch (assembling).
- Sau đó ta nạp object code này vào bộ nhớ vi xử lý/vi điều khiển và vi xử lý/vi điều khiển
chạy chương trình.
Việc chuyển đổi mnemonic sang object code thường thực hiện bằng máy tính. Trước hết ta
dùng một chương trình gọi là editor để viết và lưu mã nguồn vào bộ nhớ. Ta có thể sử dụng
editor quen thuộc của Window như Notepad hoặc trong môi trường DOS ta sử dụng lệnh edit
trong Norton Commandor. Sau đó ta cho chạy chương trình biên dòch gọi là assembler,
chương trình này sẽ lấy mã lệnh trong bộ nhớ và biên dòch sang tập tin dưới dạng object
code. Cuối cùng, ta dùng một chương khác để nạp object code từ bộ nhớ của máy tính vào
bộ nhớ của vi xử lý/vi điều khiển.
5. Nạp chương trình vào bộ nhớ
Khi vi xử lý/vi điều khiển được cấp nguồn điện lần đầu hay được khởi động lại bằng cách
kích hoạt vào chân RST thì vi xử lý/vi điều khiển thực hiện một số lệnh bên trong. Một
trong các lệnh đó là xuất một đòa chỉ đặc biệt lên bus đòa chỉ và đọc opcode đầu tiên tại đòa
chỉ đó. Đối với Z80, 8080, 8085 và họ MCS-51 thì đó là đòa chỉ 0000H. Do đó, opcode đầu
tiên của chương trình cần thực hiện phải được đặt ở vò trí 0000H trong bộ nhớ chương trình
và khi viết chương trình nên sử dụng chỉ dẫn ORG 0000H ở dòng đầu tiên của chương trình
chính để báo cho trình dòch hợp ngữ biết chương trình được bắt đầu ở đòa chỉ 0000H.
Chương trình được nạp vào bộ nhớ thực chất chỉ là các số nhò phân hay hex. Trong các số
này, có số sẽ là opcode, có số sẽ là dữ liệu được sử dụng bởi các lệnh. Việc nhầm lẫn thứ tự
Bài giảng VI XỬ LÝ Chương 3: Lập trình hợp ngữ họ MCS-51
4
lệnh sẽ dẫn đến các kết quả không lường trước được. Phương pháp duy nhất để phân biệt
giữa opcode và dữ liệu là cần phải biết đòa chỉ chính xác của opcode đầu tiên tring chương
trình và nạp chương trình đúng vò trí và theo thứ tự.
II. CÁC KIỂU ĐỊNH ĐỊA CHỈ
Các kiểu đònh đòa chỉ là phần cần thiết cho toàn bộ tập lệnh của mỗi một bộ vi xử lý hay vi điều
khiển. Các kiểu đònh đòa chỉ cho phép xác đònh rõ nguồn và đích của dữ liệu theo nhiều cách
khác nhau mà vi xử lý hay vi điều khiển sử dụng trong quá trình thực thi lệnh.

Có 8 kiểu đònh đòa chỉ đối với họ MCS-51:
- Thanh ghi (register)
- Trực tiếp (direct)
- Gián tiếp (indirect)
- Tức thời (immediate)
- Tương đối (relative)
- Tuyệt đối (absolute)
- Dài (long)
- Chỉ số (index)
1. Đònh đòa chỉ thanh ghi
- Trong lệnh truy xuất đến các thanh ghi R0 ÷ R7 của bank thanh ghi tích cực. Các lệnh này
được mã hóa dài 1 byte, trong đó dùng 3 bit thấp nhất để chỉ thanh ghi được truy xuất.
- Ngoài ra, trong lệnh cũng có thể truy xuất đến các thanh ghi đặc biệt như: thanh ghi tích
lũy (ký hiệu A), con trỏ dữ liệu (ký hiệu DPTR), bộ đếm chương trình (ký hiệu PC), cờ nhớ
(ký hiệu C) và cặp thanh ghi AB (ký hiệu AB). Các lệnh này không cần các bit đòa chỉ, bản
thân opcode của lệnh đã chỉ ra thanh ghi được dùng.
Ví dụ: INC R1 ; tăng nội dung thanh ghi R1 lên 1
INC A ; tăng nội dung thanh ghi A lên 1
INC DPTR ; tăng nội dung thanh ghi DPTR lên 1
2. Đònh đòa chỉ trực tiếp
- Dùng để truy xuất các ô nhớ trong RAM nội (đòa chỉ từ 00H ÷ 7FH) hay các thanh ghi chức
năng đặc biệt (đòa chỉ từ 80H ÷ FFH). Một byte được thêm vào tiếp theo opcode để xác đònh
đòa chỉ.
- Trình dòch hợp ngữ cho phép sử dụng tên các thanh ghi chức năng đặc biệt (thay cho đòa
chỉ).

Ví dụ:
INC ACC ; tăng nội dung thanh ghi A lên 1
Lệnh này cùng chức năng với lệnh INC A ở trên nhưng khác kiểu đònh
đòa chỉ → các byte mã lệnh khác nhau.

MOV P0,A ; chuyển nội dung của thanh ghi A vào Port 0
(≡ MOV 80H,A)
INC 30H ; tăng nội dung ô nhớ 30H lên 1
Nội dung 30H ban đầu là 06H, sau lệnh trên (30H) = 07H


06H 30H



Opcode n
2
n
1
n
0

Opcode Đòa chỉ trực tiếp
Bài giảng VI XỬ LÝ Chương 3: Lập trình hợp ngữ họ MCS-51
5
3. Đònh đòa chỉ gián tiếp
- Trong lệnh dùng các thanh ghi R0 và R1 làm con trỏ để chỉ ra đòa chỉ ô nhớ trong RAM nội
mà lệnh tác động đến. Bit thấp nhất trong mã lệnh sẽ xác đònh thanh ghi nào được dùng.
- Quy ước: dùng dấu @ trước R0 và R1 cho kiểu đònh đòa chỉ này.
Ví dụ: (R1) = 30H, (30H) = 52H
INC @R1 ; tăng nội dung ô nhớ được trỏ bởi R1


(R1) = 30H, (30H) = 53H









- Kiểu đònh đòa chỉ này thường dùng khi truy xuất tới một vùng nhớ liên tiếp.
Ví dụ: Các bước sau được thực hiện để xóa 50 ô nhớ trong RAM nội bắt đầu từ đòa chỉ 30H:
4. Đònh đòa chỉ tức thời
- Các dữ liệu tức thời được dùng trực tiếp trong lệnh có thể là một hằng số, một ký số, một
biểu thức toán học… Trình dòch hợp ngữ sẽ tự động tính toán và thay thế dữ liệu tức thời vào
mã lệnh.

- Quy ước: dùng dấu # trước các toán hạng tức thời.
Ví dụ: MOV A,#7 ; nạp giá trò 7 vào thanh ghi A, (A) = 7H
MOV A,#7+8 ; nạp giá trò 15 vào thanh ghi A, (A) = 0FH
MOV A,#‘B’ ; nạp giá trò 66 (mã ASCII của ký tự B) vào thanh ghi A, (A) = 42H
5. Đònh đòa chỉ tương đối
- Được dùng trong các lệnh nhảy ngắn.






52H 30H 30H R1

53H 30H 30H R1








Opcode Dữ liệu tức thời

Opcode i
(R0) = 30H
Đủ 50 byte ?
- (@R0) = 0
- Tăng R0
N
Y
Tiếp tục
Bài giảng VI XỬ LÝ Chương 3: Lập trình hợp ngữ họ MCS-51
6
- Một đòa chỉ tương đối (hay còn gọi là offset) là một giá trò 8 bit có dấu (từ –128 đến +127)
cho biết độ lệch từ vò trí lệnh theo ngay sau lệnh nhảy đến đích. Giá trò này được cộng thêm
vào thanh ghi bộ đếm chương trình (PC) để tạo ra đòa chỉ của lệnh tiếp theo cần được thực
thi.

Ví dụ: Tính offset cho kiểu đònh đòa chỉ tương đối trong hai trường hợp nhảy tới và nhảy lùi.
- Thông thường các đích nhảy được xác đònh bằng các nhãn và trình dòch hợp ngữ sẽ xác
đònh offset tương đối tương ứng.
Ví dụ: Nếu nhãn THERE được đặt ở đòa chỉ 1040H và lệnh:
SJMP THERE
ở trong bộ nhớ chương trình tại đòa chỉ 1000H và 1001H → đòa chỉ của lệnh kế tiếp sẽ là
1000H + 02H = 1002H, nên offset tương đối sẽ là: offset = 1040H – 1002H = 3EH. Trình

dòch hợp ngữ sẽ gán offset tương đối là 3EH cho byte 2 của lệnh SJMP THERE.
- Có ưu điểm là không phụ thuộc vào vò trí nhưng bò giới hạn về tầm nhảy.
6. Đònh đòa chỉ tuyệt đối
- Chỉ dùng trong các lệnh AJMP và ACALL.
- Cho phép rẽ nhánh chương trình trong trang 2K hiện hành của bộ nhớ chương trình (tức
tầm nhảy của lệnh là trong trang 2K hiện hành của bộ nhớ chương trình).
- 11 bit thấp của đòa chỉ đích, trong đó 3 bit cao (A8 ÷ A10) được đưa vào cùng với opcode
tạo thành byte thứ 1 của lệnh và 8 bit thấp (A0 ÷ A7) tạo thành byte thứ 2 của lệnh. 5 bit cao
của đòa chỉ đích là 5 bit cao hiện hành của bộ đếm chương trình (PC)

lệnh theo ngay sau
lệnh rẽ nhánh và đích đến phải ở trong cùng 1 trang 2K.

- Kiểu đònh đòa chỉ này có tầm nhảy bò hạn chế và cung cấp mã phụ thuộc vò trí.


010A
0109
0108
0107 5
0106 4
0105 3
0104 2
0103 1
0102
0101 05
0100 80
00FF

Code

memory
SJMP 0107H
Offset tương
đối từ đòa chỉ
0102H là “5”
(a) Nhảy ngắn tới

2043
2042
2041 F6 -1
2040 80 -2
203F -3
203E -4
203D -5
203C -6
203B -7
203A -8
2039 -9
2038 -10
Code
memory
SJMP 2038H
Offset tương
đối từ đòa chỉ
2042H là “-10”
(b) Nhảy ngắn lùi
Hình 3.1

A10 A9 A8
Opcode

A7 A0

Opcode Đòa chỉ tương đối
Bài giảng VI XỬ LÝ Chương 3: Lập trình hợp ngữ họ MCS-51
7
Ví dụ: Nếu nhãn THERE đặt tại đòa chỉ 0F46H và lệnh:
AJMP THERE
ở trong bộ nhớ tại đòa chỉ 0900H và 0901H

lệnh theo ngay sau lệnh nhảy bắt đầu ở đòa chỉ
0902H sẽ có 5 bit cao đòa chỉ trùng với đòa chỉ nhãn THERE là 00001 (trang 1).

Mã hoá lệnh:
7. Đònh đòa chỉ dài
- Chỉ dùng trong các lệnh LCALL và LJMP.
- Đây là các lệnh rẽ nhánh 3 byte, với 2 byte sau (byte 2 và byte 3) là đòa chỉ đích của lệnh
(16 bit).
- Ưu điểm là có thể sử dụng toàn bộ vùng nhớ chương trình 64K, nhưng lệnh lại dài đến 3
byte và phụ thuộc vào vò trí.
8. Đònh đòa chỉ chỉ số
- Dùng một đòa chỉ nền (chứa trong thanh ghi PC hay DPTR) và một offset (chứa trong thanh
ghi A) để tạo đòa chỉ được tác động cho các lệnh JMP hoặc MOVC.
(Đòa chỉ được tác động) = (PC) hoặc (DPTR) + (A)
- Thường dùng khi truy xuất dữ liệu trong một bảng dữ liệu đã được đònh nghóa trước. Khi
đó, thanh ghi PC hay DPTR sẽ giữ đòa chỉ đầu bảng và thanh ghi A
giữ đòa chỉ offset của dữ liệu cần truy xuất trong bảng.
Ví dụ: Bảng các giá trò bình phương của số nguyên.
Nếu DPTR chứa đòa chỉ đầu bảng (tương ứng nhãn TABLE)
và (A) = 3, thì sau khi thực hiện lệnh:
MOVC A, @A+DPTR

→ (A) = 09H.




1 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0
Hình 3.2
FFFF

F800
2K trang 31



1800
……….
17FF

1000
2K trang 2
0FFF

0800
2K trang 1
07FF

0000
2K trang 0
32 x 2K = 64K
Trong một trang

2K bất kỳ, chỉ có
11 bit thấp thay
đổi
(a) Bộ nhớ được chia thành nhiều trang 2K

A15 A10 A0
5 bit xác đònh
trang 2K
11 bit xác đònh đòa chỉ
trong một trang 2K
(b) Bên trong một trang 2K

Đòa chỉ A15 ÷ A8
Đòa chỉ A7 ÷ A0

Opcode
……
10H
09H
04H
01H
00H

TABLE
3
Bài giảng VI XỬ LÝ Chương 3: Lập trình hợp ngữ họ MCS-51
8
III. TẬP LỆNH (tham khảo thêm “Tóm tắt tập lệnh” và “Mô tả lệnh”)
Tập lệnh của 8051 được chia làm 5 nhóm:
- Nhóm lệnh số học

- Nhóm lệnh logic
- Nhóm lệnh chuyển dữ liệu
- Nhóm lệnh rẽ nhánh (chuyển điều khiển)
- Nhóm lệnh xử lý bit
IV. CÁC KỸ THUẬT LẬP TRÌNH
Lập trình cấu trúc (structured programming) là một kỹ thuật tổ chức và mã hóa các chương trình
nhằm giảm sự phức tạp, dễ dàng gỡ rối và hiệu chỉnh chương trình. Lập trình cấu trúc nhấn
mạnh đến các nhiệm vụ lập trình. Người lập trình phân tích một nhiệm vụ lớn thành nhiều công
việc nhỏ hơn, sau đó dần dần chi tiết, cụ thể hóa để được các vấn đề đơn giản. Qua đó, tìm ra
cách giải quyết vấn đề dưới dạng những thuật giải cụ thể rõ ràng, để có thể minh họa bằng
ngôn ngữ giải thuật. Trong lập trình cấu trúc, các thuật giải này được gọi là các chương trình
con. Cách thức phân tích và thiết kế như vậy ta gọi là nguyên lý lập trình từ trên xuống (top-
down), để thể hiện quá trình suy diễn từ cái chung nhất cho đến cái cụ thể nhất.
Tất cả các vấn đề lập trình đều có thể được giải quyết chỉ dựa trên 3 cấu trúc:
* Các phát biểu
* Các vòng lặp
* Các lựa chọn
1. Các phát biểu
- Các phát biểu là một cách thức cơ bản để thực hiện một công việc nào đó.
- Các phát biểu còn bao gồm cả việc gán giá trò cho 1 biến hoặc gọi chương trình con.
2. Cấu trúc vòng lặp
- Được sử dụng để thực hiện một hoặc một số công việc lặp đi lặp lại nhiều lần.
- Có hai dạng vòng lặp cơ bản:
a.WHILE/DO
+ Cú pháp:
WHILE [điều kiện] DO
[các phát biểu]
+ Lưu đồ:
Statement
Enter

Condition
true?
Exit
No
Yes

Ví dụ: Viết chương trình con SUM tính tổng của một chuỗi các số. Các thông số truyền
vào chương trình con là chiều dài của chuỗi số (được chứa trong thanh ghi R7) và đòa chỉ
bắt đầu của chuỗi số đó trong RAM nội (được chứa trong thanh ghi R0). Kết quả trả về
được chứa trong thanh ghi A.

×