1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài giảng lý thuyết vi xử lý - Chương 3: Lập trình hợp ngữ cho 8051(tiếp theo) ppt

69 547 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lập Trình Hợp Ngữ Cho 8051 (Tiếp Theo)
Tác giả Phạm Quang Trí
Trường học Trường Đại Học Công Nghiệp TP. Hồ Chí Minh
Chuyên ngành Khoa Cơ Điện Tử
Thể loại Bài giảng
Năm xuất bản 2009
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 69
Dung lượng 676,3 KB

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

Nội dung

Low--level programming language level programming languageGIỚI THIỆU CHUNG Ngôn ngữ lập trình cấp cao High High--level programming language level programming language Hợp ngữ Assembly la

Trang 1

BÀI GIẢNG LÝ THUYẾT

VI XỬ LÝ

TP HỒ CHÍ MINH THÁNG 09

THÁNG 09 2009 2009

VI XỬ LÝ

Giáo Giáo viên: PHẠM QUANG TRÍ viên: PHẠM QUANG TRÍ

Trang 2

KHOA CÔNG NGHỆ ðIỆN TỬ

BỘ MÔN ðIỆN TỬ CÔNG NGHIỆP

CHƯƠNG 3

LẬP TRÌNH HỢP NGỮ

CHO 8051

Trang 3

 NgônNgôn ngữngữ lậplập trìnhtrình cấpcấp caocao

Trang 4

(Low level programming language) level programming language)

GIỚI THIỆU CHUNG

Ngôn ngữ lập trình cấp cao

(High

(High level programming language) level programming language)

Hợp ngữ (Assembly language)

Hợp Hợp ngữ ngữ::

Trang 5

 Sử Sử dụng dụng các các từ từ và và phát phát biểu biểu gần gần giống giống với với ngôn ngôn ngữ

ngữ con con người người

 Mỗi Mỗi câu câu lệnh lệnh tương tương ứng ứng với với nhiều nhiều chỉ chỉ lệnh lệnh trong trong ngôn

ngôn ngữ ngữ cấp cấp thấp thấp

 So So với với ngôn ngôn ngữ ngữ cấp cấp thấp thấp:: chương chương trình trình viết viết dễ, dễ, nhanh

nhanh và và ít ít lệnh lệnh hơn hơn

 So So với với ngôn ngôn ngữ ngữ cấp cấp thấp thấp:: câu câu lệnh lệnh dài, dài, chương chương trình

trình hoạt hoạt ñộng ñộng tốc tốc ñộ ñộ chậm chậm hơn, hơn, hiệu hiệu suất suất không

không cao cao và và chiếm chiếm nhiều nhiều bộ bộ nhớ nhớ

không không cao cao và và chiếm chiếm nhiều nhiều bộ bộ nhớ nhớ

(Low

(Low level programming language) level programming language)

Ngôn ngữ máy (Machine language)

Trang 6

GIỚI THIỆU CHUNG

Ngôn ngữ lập trình cấp cao (High

(High level programming language) level programming language)

CPU thực thi chương trình

Các công ñoạn ñể thực thi một chương trình

Trang 7

Ngôn ngữ lập trình cấp thấp

Hợp ngữ (Assembly language)

Ngôn ngữ lập trình cấp thấp (Low

(Low level programming language) level programming language)

CPU thực thi chương trình

Các công ñoạn ñể thực thi một chương trình

Trang 8

Ngôn ngữ lập trình cấp thấp

GIỚI THIỆU CHUNG

Ngôn ngữ lập trình cấp cao (High

(High level programming language) level programming language)

Hợp ngữ (Assembly language)

Ngôn ngữ lập trình cấp thấp (Low

(Low level programming language) level programming language)

Ngôn ngữ máy (Machine language)

CPU thực thi chương trình

Các công ñoạn ñể thực thi một chương trình

Trang 9

[[Label Label::]] Mnemonic Mnemonic [[Operand Operand][ ][,Operand ,Operand][ ][,Operand ,Operand]] [[Comment Comment]]

 NhãnNhãn (Label)(Label):: BiểuBiểu thịthị ñịañịa chỉchỉ củacủa dòngdòng lệnhlệnh ((hoặchoặc dữdữ liệuliệu)) theotheo sau,sau,ñược

ñược dùngdùng trongtrong trườngtrường toántoán hạnghạng củacủa lệnhlệnh rẽrẽ nhánhnhánh



 Ví Ví dụ dụ::

MAIN MAIN::

MOV A, A, # #20 20H H LOOP

LOOP::

LOOP LOOP::

ADD A, A, # #01 01H H CJNE A, A, # #35 35H, H, LOOP LOOP SJMP $



 Lưu Lưu ý ý về về nhãn nhãn::

 Do Do người người lập lập trình trình tự tự ñặt ñặt (không (không ñược ñược trùng trùng với với từ từ khoá, khoá, mã mã gợi gợi nhớ, nhớ, chỉ

chỉ dẫn, dẫn, toán toán tử tử hoặc hoặc ký ký hiệu hiệu tiền tiền ñịnh ñịnh nghĩa) nghĩa)

 Bắt Bắt ñầu ñầu bằng bằng ký ký tự tự chữ, chữ, dấu dấu chấm chấm hỏi hỏi (?), (?), dấu dấu gạch gạch dưới dưới (_) (_)

 Dài Dài tối tối ña ña 31 31 ký ký tự tự

 Kết Kết thúc thúc bằng bằng dấu dấu hai hai chấm chấm ((::))

 Ký Ký hiệu hiệu $ $ dùng dùng ñể ñể tham tham chiếu chiếu ñến ñến vị vị trí trí hiện hiện tại tại của của dòng dòng lệnh lệnh

Trang 10

 Khuông Khuông dạng dạng của của một một dòng dòng lệnh lệnh::

[[Label Label::]] Mnemonic Mnemonic [[Operand Operand][ ][,Operand ,Operand][ ][,Operand ,Operand]] [[Comment Comment]]

•• MãMã gợigợi nhớnhớ (Mnemonic)(Mnemonic):: BiểuBiểu diễndiễn cáccác lệnhlệnh hoặchoặc cáccác chỉchỉ dẫndẫn củacủachương

chương trìnhtrình dịchdịch hợphợp ngữngữ



 Ví Ví dụ dụ::

ORG 0000 0000H H PAR EQU 100

KHUÔNG DẠNG CỦA CHƯƠNG TRÌNH

ACALL ACALL BBB BBB CJNE A, A, # #35 35H, H, LOOP LOOP JNB P P3 3 1 1,, TEST_ TEST_1 1

Trang 11

[[Label Label::]] Mnemonic Mnemonic [[Operand Operand][ ][,Operand ,Operand][ ][,Operand ,Operand]] [[Comment Comment]]

•• ToánToán hạnghạng (Operand)(Operand):: ChứaChứa ñịañịa chỉchỉ hoặchoặc dữdữ liệuliệu màmà lệnhlệnh sẽsẽ sửsử dụngdụng Số

Số lượnglượng toántoán hạnghạng trongtrong mộtmột dòngdòng lệnhlệnh phụphụ thuộcthuộc vàovào từngtừng dòngdòng lệnhlệnh



 Ví Ví dụ dụ::

RET – – không không toán toán hạng, hạng, INC A – – một một toán toán hạng, hạng, ADD A A,, R R0 0 – – hai hai toán toán hạng, hạng, CJNE A A,, # #12 12H H,, ABC ABC – – ba ba toán toán hạng hạng



 Lưu Lưu ý ý về về toán toán hạng hạng::

 Nếu Nếu lệnh lệnh có có nhiều nhiều toán toán hạng hạng thì thì các các toán toán hạng hạng này này cách cách nhau nhau bằng bằng dấu dấu phẩy

Trang 12

 Khuông Khuông dạng dạng của của một một dòng dòng lệnh lệnh::

[[Label Label::]] Mnemonic Mnemonic [[Operand Operand][ ][,Operand ,Operand][ ][,Operand ,Operand]] [[Comment Comment]]

•• ChúChú thíchthích (Comment)(Comment):: LàmLàm chocho rõrõ nghĩanghĩa chocho chươngchương trìnhtrình



 Ví Ví dụ dụ::

SJMP AAA ;; Lenh Lenh nhay nhay khong khong dieu dieu kien kien den den AAA AAA ACALL

ACALL BBB BBB ;; Lenh Lenh goi goi chuong chuong trinh trinh con con BBB BBB

CJNE A, A, # #35 35H, H, LOOP LOOP ;; Lenh Lenh so so sanh sanh

KHUÔNG DẠNG CỦA CHƯƠNG TRÌNH

JNB P P3 3 1 1,, TEST_ TEST_1 1 ;; Lenh Lenh kiem kiem tra tra gia gia tri tri bit bit P P3 3 1 1



 Lưu Lưu ý ý về về chú chú thích thích::

 Bắt Bắt ñầu ñầu bằng bằng dấu dấu chấm chấm phẩy phẩy ((;;))

 Các Các chú chú thích thích phải phải nằm nằm trên trên cùng cùng một một dòng dòng

 Các Các chú chú thích thích nếu nếu nằm nằm trên trên nhiều nhiều dòng dòng thì thì mỗi mỗi dòng dòng cũng cũng phải phải bắt bắt ñầu ñầu bằng

bằng dấu dấu chấm chấm phẩy phẩy ((;;))

Trang 14

 Cơ Cơ số số cho cho các các hằng hằng số số::

•• SốSố nhịnhị phânphân (Binary)(Binary):: phảiphải kèmkèm theotheo kýký hiệuhiệu BB

CÁC QUI LUẬT CHO VIỆC ðÁNH GIÁ BIỂU THỨC

•• SốSố thậpthập lụclục phânphân (Hexa(Hexa Decimal)Decimal):: phảiphải kèmkèm theotheo kýký hiệuhiệu HH



 Ví Ví dụ dụ::

MOV A, A, # #9 9D DH H

Trang 15

MOV A, #F9H ;Thiếu số 0 ;Thiếu số 0 → → gây lỗi khi biên dịch.

MOV A, # MOV A, #0 0F9H F9H ;Thêm số 0 ;Thêm số 0 → → ñúng.

MOV A, # MOV A, #0 0F9H F9H ;Thêm số 0 ;Thêm số 0 → → ñúng.

Trang 16

 Các Các chuỗi chuỗi ký ký tự tự::

•• ChuỗiChuỗi kýký tựtự ñượcñược ñặtñặt trongtrong dấudấu nháynháy ñơnñơn (‘(‘……‘)‘)

•• ChuỗiChuỗi cócó 11 kýký tựtự ((88 bit)bit) hoặchoặc 22 kýký tựtự ((1616 bit)bit) ñượcñược sửsử dụngdụng làmlàm toántoánhạng

Trang 17

•• CộngCộng +

•• TrừTrừ

•• NhânNhân **

•• ChiaChia // (Phép(Phép chiachia lấylấy thươngthương số)số)

•• ModuloModulo MOD (Phép(Phép chiachia lấylấy sốsố dư)dư)



 Ví Ví dụ dụ::

MOV A, A, # #10 10 + + 10 10H H ⇔ MOV A, A, # #1 1AH AH MOV A, A, # #10 10H H 10 10 ⇔ MOV A, A, # #06 06H H MOV A, A, # #20 20 ** 2 2 ⇔ MOV A, A, # #28 28H H MOV A, A, # #25 25 // 7 7 ⇔ MOV A, A, # #03 03H H MOV A, A, # #25 25 MOD MOD 7 7 ⇔ MOV A, A, # #04 04H H

Trang 18

 Các Các toán toán tử tử logic logic::

•• CácCác toántoán tửtử gồmgồm:: AND,AND, OR,OR, XORXOR vàvà NOTNOT

•• CácCác thaothao táctác ñượcñược thựcthực hiệnhiện trêntrên từngtừng bitbit củacủa toántoán hạnghạng



 Ví Ví dụ dụ::

MOV MOV A, A, # # ‘‘9 9’’ AND AND 0 0FH FH ⇔ MOV A, A, # #09 09H H MOV

MOV A, A, # # ‘‘9 9’’ OR OR 0 0FH FH ⇔ MOV A, A, # #3 3FH FH MOV

MOV A, A, # # ‘‘9 9’’ XOR XOR 0 0FH FH ⇔ MOV A, A, # #36 36H H MOV

MOV A, A, # #NOT NOT 5 5CH CH ⇔ MOV A, A, # #0 0A A3 3H H

CÁC QUI LUẬT CHO VIỆC ðÁNH GIÁ BIỂU THỨC

MOV MOV A, A, # #NOT NOT 5 5CH CH ⇔ MOV A, A, # #0 0A A3 3H H MOV

MOV A, A, # #NOT NOT 3 3 ⇔ MOV A, A, # #0 0FCH FCH

Trang 19

•• DịchDịch phảiphải SHR (Thêm(Thêm bitbit 00 vàovào bênbên tráitrái sausau khikhi dịch)dịch)

•• DịchDịch tráitrái SHL (Thêm(Thêm bitbit 00 vàovào bênbên phảiphải sausau khikhi dịch)dịch)

•• LấyLấy bytebyte caocao HIGH

•• LấyLấy bytebyte thấpthấp LOW

•• ðượcðược ñánhñánh giágiá trướctrước ()



 Ví Ví dụ dụ::

MOV MOV A, A, # #08 08H H SHL SHL 1 1 ⇔ MOV A, A, # #10 10H H MOV

MOV A, A, # #08 08H H SHR SHR 1 1 ⇔ MOV A, A, # #04 04H H MOV

MOV A, A, # #HIGH HIGH 1234 1234H H ⇔ MOV A, A, # #12 12H H MOV

MOV A, A, # #LOW LOW 1234 1234H H ⇔ MOV A, A, # #34 34H H

Trang 20

 Các Các toán toán tử tử quan quan hệ hệ::

•• KếtKết quảquả trảtrả vềvề làlà 0000HH (quan(quan hệhệ SAISAI)) hoặchoặc FFHFFH (quan(quan hệhệ ðÚNGðÚNG))

MOV A, A, # #5 5 NE NE 4 4 MOV

MOV A, A, # # ’X’ ’X’ LT LT ‘Z’ ‘Z’

MOV MOV A, A, # # ’X’ ’X’ >= >= ‘Z’ ‘Z’

MOV MOV A, A, # #100 100 GE GE 50 50 Các

Các lệnh lệnh trên trên ñều ñều trả trả về về kết kết quả quả ñúng ñúng nên nên sẽ sẽ tương tương ñương ñương với với lệnh lệnh

MOV A,#0FFH

Trang 21

HIGH ‘A’ ‘A’ SHL SHL 8 8 Kết Kết quả quả là là 00 00H H NOT

NOT ‘A’ ‘A’ – – 1 1 Kết Kết quả quả là là BFH BFH

‘A’

‘A’ OR OR ‘A’ ‘A’ SHL SHL 8 8 Kết Kết quả quả là là 41 41H H

Trang 22

 Chỉ Chỉ dẫn dẫn ñiều ñiều khiển khiển trạng trạng thái thái::

•• ORG,ORG, END,END, USINGUSING

 Chỉ Chỉ dẫn dẫn ñịnh ñịnh nghĩa nghĩa ký ký hiệu hiệu::

•• SEGMENT,SEGMENT, EQU,EQU, SET,SET, DATA,DATA, IDATA,IDATA, XDATA,XDATA, BIT,BIT, CODECODE

 Chỉ Chỉ dẫn dẫn dành dành trước trước vùng vùng nhớ nhớ // khởi khởi ñộng ñộng vùng vùng nhớ nhớ::

•• DS,DS, DBIT,DBIT, DB,DB, DWDW

 Chỉ Chỉ dẫn dẫn liên liên kết kết chương chương trình trình::

CÁC CHỈ DẪN TRONG LẬP TRÌNH

 Chỉ Chỉ dẫn dẫn liên liên kết kết chương chương trình trình::

•• PUBLIC,PUBLIC, EXTRN,EXTRN, NAMENAME

 Chỉ Chỉ dẫn dẫn lựa lựa chọn chọn phân phân ñoạn ñoạn::

•• PSEG,PSEG, CSEG,CSEG, DSEG,DSEG, ISEG,ISEG, BSEG,BSEG, XSEGXSEG

Trang 23

•• ORGORG,, ENDEND,, USINGUSING

 Chỉ Chỉ dẫn dẫn ñịnh ñịnh nghĩa nghĩa ký ký hiệu hiệu::

•• SEGMENT,SEGMENT, EQUEQU,, SET,SET, DATA,DATA, IDATA,IDATA, XDATA,XDATA, BITBIT,, CODECODE

 Chỉ Chỉ dẫn dẫn dành dành trước trước vùng vùng nhớ nhớ // khởi khởi ñộng ñộng vùng vùng nhớ nhớ::

•• DS,DS, DBIT,DBIT, DBDB,, DWDW

 Chỉ Chỉ dẫn dẫn liên liên kết kết chương chương trình trình::

 Chỉ Chỉ dẫn dẫn liên liên kết kết chương chương trình trình::

•• PUBLIC,PUBLIC, EXTRN,EXTRN, NAMENAME

 Chỉ Chỉ dẫn dẫn lựa lựa chọn chọn phân phân ñoạn ñoạn::

•• PSEG,PSEG, CSEG,CSEG, DSEG,DSEG, ISEG,ISEG, BSEG,BSEG, XSEGXSEG

Trang 24

 Chỉ Chỉ dẫn dẫn ORG ORG::

•• CúCú pháppháp:: ORGORG expressionexpression (expression(expression:: biểubiểu thức)thức)

•• ThiếtThiết lậplập mộtmột gốcgốc mớimới củacủa chươngchương trìnhtrình chocho cáccác phátphát biểubiểu theotheo sausau

•• LàLà phátphát biểubiểu kếtkết thúcthúc củacủa chươngchương trìnhtrình nguồnnguồn

•• MọiMọi phátphát biểubiểu theotheo sausau phátphát biểubiểu ENDEND ñềuñều khôngkhông hợphợp lệlệ

Trang 25

•• CúCú pháppháp:: USINGUSING expressionexpression

•• ThôngThông báobáo chocho trìnhtrình dịchdịch vềvề dãydãy thanhthanh ghighi tíchtích cựccực hiệnhiện tạitại

•• ChoCho phépphép dùngdùng kýký hiệuhiệu tiềntiền ñịnhñịnh ARAR00 –– ARAR77 thaythay thếthế chocho kýký hiệuhiệu thanhthanhghi

Trường Trường hợp hợp không không dùng dùng USING USING::

Nếu Nếu dãy dãy thanh thanh ghi ghi tích tích cực cực là là Dãy Dãy 3 3,, ta ta dùng dùng lệnh lệnh:: PUSH 1 1FH FH Nếu

Nếu dãy dãy thanh thanh ghi ghi tích tích cực cực là là Dãy Dãy 1 1,, ta ta dùng dùng lệnh lệnh:: PUSH 0 0FH FH Trường

Trường hợp hợp dùng dùng USING USING::

Nếu Nếu dãy dãy thanh thanh ghi ghi tích tích cực cực là là Dãy Dãy 3 3,, ta ta dùng dùng lệnh lệnh::

USING USING 3 3 PUSH AR AR7 7 Nếu

Nếu dãy dãy thanh thanh ghi ghi tích tích cực cực là là Dãy Dãy 1 1,, ta ta dùng dùng lệnh lệnh::

USING USING 1 1 PUSH AR AR7 7

Trang 26

 Chỉ Chỉ dẫn dẫn EQU EQU::

•• CúCú pháppháp:: symbolsymbol EQUEQU expressionexpression (symbol(symbol:: kýký hiệu)hiệu)

•• GánGán giágiá trịtrị sốsố chocho têntên củacủa kýký hiệuhiệu ñượcñược ñịnhñịnh nghĩanghĩa



 Ví Ví dụ dụ::

SPEED SPEED EQU EQU 100 ;; SPEED SPEED có có giá giá trị trị 100 100 LED EQU P P0 0 ;; LED LED có có giá giá trị trị 80 80H H (Port (Port 0 0)) TIME EQU 0 0D D8 8F F0 0H H ;; TIME TIME có có giá giá trị trị D D8 8F F0 0H H Với

Với ví ví dụ dụ như như trên trên thì thì::

CÁC CHỈ DẪN TRONG LẬP TRÌNH

Với Với ví ví dụ dụ như như trên trên thì thì::

MOV A, A, #SPEED #SPEED ⇔ MOV A, A, # #100 100 MOV LED, LED, # #12 12H H ⇔ MOV P P0 0,, # #12 12H H MOV TH TH0 0,, #HIGH(TIME) #HIGH(TIME) ⇔ MOV TH TH0 0,, # #0 0D D8 8H H MOV TL TL0 0,, #LOW(TIME) #LOW(TIME) ⇔ MOV TL TL0 0,, # #0 0F F0 0H H

Trang 27

•• CúCú pháppháp:: symbolsymbol BITBIT expressionexpression

•• GánGán giágiá trịtrị sốsố (loại(loại bit)bit) chocho têntên củacủa kýký hiệuhiệu ñượcñược ñịnhñịnh nghĩanghĩa



 Ví Ví dụ dụ::

FLAG FLAG BIT BIT 05 05H H ;; FLAG FLAG có có giá giá trị trị 05 05H H (Bit (Bit 5 5 của của ô ô nhớ nhớ 20 20H) H) KEY

KEY BIT BIT P P0 0 1 1 ;; KEY KEY có có giá giá trị trị 81 81H H (Bit (Bit 1 1 của của Port Port 0 0)) Với

Với ví ví dụ dụ như như trên trên thì thì::

SETB FLAG ⇔ SETB 05 05H H SETB FLAG ⇔ SETB 05 05H H JNB KEY, KEY, LOOP LOOP ⇔ JNB P P0 0 1 1,, LOOP LOOP

•• LuLu ýý:: ChỉChỉ dẫndẫn EQUEQU cócó thểthể thaythay thếthế chocho chỉchỉ dẫndẫn BIT,BIT, tuytuy nhiênnhiên nếunếu sửsửdụng

dụng chỉchỉ dẫndẫn BITBIT sẽsẽ chocho tata phươngphương tiệntiện kiểmkiểm tratra loạiloại (type)(type)



 Ví Ví dụ dụ::

FLAG FLAG1 1 EQU EQU 06 06H H FLAG

FLAG2 2 BIT BIT 05 05H H

SETB FLAG FLAG1 1 SETB FLAG FLAG2 2 MOV FLAG FLAG1 1,, # #0 0 MOV FLAG FLAG2 2,, # #0 0 ;; Không Không hợp hợp lệ lệ

Trang 28

 Chỉ Chỉ dẫn dẫn DB DB::

•• CúCú pháppháp:: [[labellabel]] DBDB expressionexpression[[,, expressionexpression][][,, expressionexpression][][,, ……]]

•• KhởiKhởi ñộngñộng vùngvùng nhớnhớ mãmã cùngcùng vớivới cáccác giágiá trịtrị củacủa bytebyte

•• DùngDùng ñểñể ñặtñặt cáccác hằnghằng sốsố 88 bitbit vàovào bộbộ nhớnhớ chươngchương trìnhtrình

•• NếuNếu cócó mộtmột nhãnnhãn ñượcñược dùng,dùng, thìthì nhãnnhãn ñượcñược gángán ñịañịa chỉchỉ củacủa bytebyte ñầuñầutiên

SQUARES::

DB 0 0,, 1 1,, 4 4,, 9 9,, 16 16,, 25 25 MESSAGE

MESSAGE::

DB ‘Login ‘Login::’, ’, 0 0 Với

Với ví ví dụ dụ như như trên trên thì thì:: ðịa ðịa chỉ chỉ Nội Nội dung dung 100

100H H – – 00 00H H 101 101H H – – 01 01H H 102 102H H – – 04 04H H 103 103H H – – 09 09H H 104

104H H – – 10 10H H 105 105H H – – 19 19H H 106 106H H – – 4 4CH CH 107 107H H – – 6 6FH FH 108

108H H – – 67 67H H 109 109H H – – 69 69H H 10 10AH AH – – 6 6EH EH 10 10BH BH – – 3 3AH AH 10

10CH CH – – 00 00H H

Trang 29

•• CúCú pháppháp:: [[labellabel]] DWDW expressionexpression[[,, expressionexpression][][,, expressionexpression][][,, ……]]

•• KhởiKhởi ñộngñộng vùngvùng nhớnhớ mãmã cùngcùng vớivới cáccác giágiá trịtrị củacủa từtừ (word)(word)

•• DùngDùng ñểñể ñặtñặt cáccác hằnghằng sốsố 1616 bitbit vàovào bộbộ nhớnhớ chươngchương trìnhtrình

•• NếuNếu cócó mộtmột nhãnnhãn ñượcñược dùng,dùng, thìthì nhãnnhãn ñượcñược gángán ñịañịa chỉchỉ củacủa bytebyte ñầuñầutiên

tiên



 Ví Ví dụ dụ::

ORG 200 200H H ORG 200 200H H MESSAGE

MESSAGE ::

DW $ $,, ‘A’, ‘A’, 1234 1234H, H, 2 2,, ‘BC’ ‘BC’

Với Với ví ví dụ dụ như như trên trên thì thì:: ðịa ðịa chỉ chỉ Nội Nội dung dung 200

200H H – – 02 02H H 201 201H H – – 00 00H H 202 202H H – – 00 00H H 203 203H H – – 41 41H H 204

204H H – – 12 12H H 205 205H H – – 34 34H H 206 206H H – – 00 00H H 207 207H H – – 02 02H H 208

208H H – – 42 42H H 209 209H H – – 43 43H H

Trang 30

 Ý Ý nghĩa nghĩa của của việc việc lập lập trình trình có có cấu cấu trúc trúc::

•• GiảmGiảm ñộñộ phứcphức tạptạp củacủa việcviệc lậplập trìnhtrình bằngbằng hợphợp ngữngữ

•• CảiCải thiệnthiện tínhtính rõrõ ràngràng củacủa chươngchương trìnhtrình

•• DễDễ dàngdàng trongtrong việcviệc gỡgỡ rối,rối, sửasửa chữachữa vàvà thaythay ñổiñổi chươngchương trìnhtrình

•• GiúpGiúp chocho việcviệc lậplập trìnhtrình hợphợp ngữngữ ñạtñạt ñượcñược nhữngnhững thuậnthuận lợilợi rấtrất lớnlớn

 Các Các cấu cấu trúc trúc thường thường dùng dùng::

•• CácCác phátphát biểubiểu (Statement)(Statement)

CẤU TRÚC CHƯƠNG TRÌNH

•• CácCác phátphát biểubiểu (Statement)(Statement)

•• CácCác vòngvòng lặplặp (Loop)(Loop)

•• CácCác lựalựa chọnchọn (Choice)(Choice)

 Phương Phương pháp pháp thực thực hiện hiện::

•• LưuLưu ñồñồ (Flowchart)(Flowchart)

•• GiảGiả mãmã (Pseudo(Pseudo code)code)

•• HợpHợp ngữngữ (Assembly(Assembly language)language)

Trang 31

•• KhốiKhối quyếtquyết ñịnhñịnh (so(so sánh,sánh, kiểmkiểm tra)tra)

•• ðườngðường ñiñi củacủa chươngchương trìnhtrình

•• HộpHộp xửxử lýlý

•• HộpHộp xửxử lýlý

•• KhốiKhối xuấtxuất // nhậpnhập

•• BắtBắt ñầuñầu // KếtKết thúcthúc chươngchương trìnhtrình

•• KếtKết nốinối quaqua trangtrang chươngchương trìnhtrình

•• XửXử lýlý tiềntiền ñịnhñịnh nghĩanghĩa (chương(chương trìnhtrình con)con)

Trang 32

 Ưu Ưu ñiểm ñiểm của của lập lập trình trình có có cấu cấu trúc trúc::

•• DễDễ dàngdàng vạchvạch rara chuỗichuỗi cáccác hoạthoạt ñộng,ñộng, thuậnthuận tiệntiện chocho việcviệc gỡgỡ rốirối

•• CácCác cấucấu trúctrúc ñãñã ñượcñược chuẩnchuẩn hóahóa

•• GiúpGiúp chocho việcviệc xâyxây dựngdựng cáccác chươngchương trìnhtrình concon ñượcñược thuậnthuận tiệntiện

•• MọiMọi chươngchương trìnhtrình ñềuñều cócó thểthể ñượcñược viếtviết bằngbằng cáchcách sửsử dụngdụng baba cấucấu trúctrúc

•• CácCác cấucấu trúctrúc giúpgiúp tata dễdễ dàngdàng mômô tảtả bằngbằng lưulưu ñồ,ñồ, giảngiản ñồñồ cúcú pháp,pháp, giảgiảmã,

mã, ……

CẤU TRÚC CHƯƠNG TRÌNH

•• TăngTăng năngnăng suấtsuất củacủa ngườingười viếtviết lậplập trìnhtrình dodo chươngchương trìnhtrình ñượcñược viếtviếtnhanh

nhanh hơnhơn

 Khuyết Khuyết ñiểm ñiểm của của lập lập trình trình có có cấu cấu trúc trúc::

•• ChỉChỉ cócó mộtmột sốsố ngônngôn ngữngữ cấpcấp caocao (Pascal,(Pascal, C,C,……)) chấpchấp nhậnnhận trựctrực tiếptiếp cáccáccấu

cấu trúctrúc

•• ViệcViệc thựcthực thithi chươngchương trìnhtrình chậmchậm hơnhơn vàvà ñòiñòi hỏihỏi nhiềunhiều bộbộ nhớnhớ hơnhơn soso vớivớichương

chương trìnhtrình tươngtương ñươngñương nhưngnhưng khôngkhông cócó cấucấu trúctrúc

•• GiảiGiải quyếtquyết vấnvấn ñềñề gặpgặp khókhó khănkhăn nếunếu chỉchỉ sửsử dụngdụng baba cấucấu trúctrúc ñểñể lậplập trìnhtrình

•• CácCác cấucấu trúctrúc lồnglồng nhaunhau cũngcũng cócó khókhó khănkhăn kèmkèm theotheo

Trang 33

 CungCung cấpcấp chocho tata cơcơ chếchế cơcơ bảnbản ñểñể thựcthực hiệnhiện mộtmột côngcông việcviệc nàonào ñóñó

 ThườngThường dùngdùng chocho việcviệc gángán mộtmột giágiá trịtrị chocho mộtmột biếnbiến hoặchoặc gọigọi mộtmộtchương

chương trìnhtrình concon

 CóCó thểthể chỉchỉ làlà mộtmột phátphát biểubiểu hoặchoặc mộtmột nhómnhóm cáccác phátphát biểubiểu

Trang 34

 Giả Giả mã mã của của cấu cấu trúc trúc::

Ngày đăng: 27/06/2014, 22:20

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w