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

Hợp Ngữ (Assembly) ppsx

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 (447.07 KB, 28 trang )

1. Ngôn ng máy ữ
2. H p ngợ ữ
3. H p ng MASMợ ữ
4. C u trúc ch ng trìnhấ ươ
5. Cách t o ch ng trình H p ngạ ươ ợ ữ
Ch ng 2ươ
H p Ng (Assembly)ợ ữ
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 2
Ngôn ng máyữ
Th tứ ự
l nhệ
Giá tr th pị ậ
l c phânụ
Mã l nh nh phânệ ị
(CPU thi hành)
1
B4 09
10110100 00001001
2
BA 03 01
10111010 00000011 00000001
3 40 01000000
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 3
H p ngợ ữ
Th tứ ự
l nhệ
Giá tr th pị ậ
l c phânụ
H p Ngợ ữ
Ý nghĩa
1 B4 09


MOV AH, 09h
AH ← 09h
2
BA 03 01
MOV DX, 0103h
DX ← 0103h
3 40 INC AX
AX ← AX + 1
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 4
Ngôn ng Máy và H p Ngữ ợ ữ
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 5
H p ng MASMợ ữ

Dòng l nhệ

Ví d :ụ
BDAU: MOV DX, 3F8h ; 3F8H là đ a ch c ng vào ra n i ti pị ỉ ổ ố ế
BDAU – Tên v i vai trò là nhãnớ
: – (D u 2 ch m) phân cách Tên và T g i nhấ ấ ừ ợ ớ
MOV – T g i nh mã l nhừ ợ ớ ệ
DX, 3F8h – Hai toán h ng, phân cách b ng d u ph yạ ằ ấ ẩ
3F8H là đ a ch c ng vào ra n i ti pị ỉ ổ ố ế – Câu chú thích
; – (D u ; ) Phân cách Toán h ng và Chú thích ấ ạ
Tên
T g i nh mã l nh ừ ợ ớ ệ
ho c l nh giặ ệ ả
Toán h ng ho c ạ ặ
bi u th cể ứ
Ghi chú
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 6

Tên

3 lo i: Nhãn, H ng, Bi nạ ằ ế

Qui cách đ t tên:ặ

Dài t i đa 32 ký tố ự

Ký t đ u tiên ph i là ch cáiự ầ ả ữ

Các ký t không đ c phép s d ng:ự ượ ử ụ
Kho ng tr ng, + - * / & % ^ & ! @ # ả ố
$ : , . ; ‘ ?
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 7
Nhãn

Ví d :ụ
NH: MOV AX, DS ; NH là nhãn đánh d u m t đ a ch ô ấ ộ ị ỉ
nh ớ
FOO LABEL near ; đ t tên cho đ a ch ô nh sau l nh ặ ị ỉ ớ ệ
gi nàyả
CTCON PROC FAR ; đ a ch b t đ u c a ch ng ị ỉ ắ ầ ủ ươ
trình con
EXTRN NH near ; NH là nhãn ngoài ch ng trình ươ
g c n yố ầ
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 8
Bi n – Ký hi u (H ng)ế ệ ằ

Ví d :ụ
TWO DB 2 ; khai báo bi n TWO có giá tr là 2ế ị

FOO EQU 7h; ký hi u FOO thay th giá tr 07hệ ế ị
TOTO = 0Fh ; ký hi u TOTO thay th giá tr 0Fhệ ế ị
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 9
L nh giệ ả

Là l nh c a trình h p d ch, không có mã máy t ng ngệ ủ ợ ị ươ ứ

Không đi u khi n CPU ho t đ ng.ề ể ạ ộ

Ch h ng d n trình h p d ch.ỉ ướ ẫ ợ ị

B n nhóm l nh gi :ố ệ ả

C u trúc ch ng trìnhấ ươ

B nhộ ớ

Toán h ng, Toán tạ ử

D ch có đi u ki nị ề ệ
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 10
L nh gi c u trúc ch ng trìnhệ ả ấ ươ

SEGMENT – ENDS: Khai báo đo nạ

Cú pháp: <tên đo n> ạ SEGMENT
… ; n i dung c a đo nộ ủ ạ
<tên đo n>ạ ENDS

Ví d :ụ Khai báo hai đo n có tên là DSEG và CSEG:ạ

DSEG SEGMENT
bienA DB 12 ; Khai báo d li uữ ệ
DSEG ENDS
CSEG SEGMENT
MOV AH, bienA ; Các l nh trong đo nệ ạ
CSEG ENDS
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 11
ASSUME: Ch đ nh lo i c a m t đo n ỉ ị ạ ủ ộ ạ

Cú pháp: ASSUME <SegRes>:<Tên1>,<SegRes>:<Tên2>

Ví d : ụ Ch đ nh đo n có tên DSEG là đo n d li u (DS) và ỉ ị ạ ạ ữ ệ
đo n có tên CSEG là đo n l nh (CS):ạ ạ ệ
ASSUME DS: DSEG, CS: CSEG
Chú ý: L nh ASSUME ph i đ c vi t trong đo n l nhệ ả ượ ế ạ ệ
END : Cu i file ch ng trình ngu nố ươ ồ

Cú pháp: END <Nhãn>

Ví d :ụ END begin ; đi m b t đ u ch y CT là nhãn begin ể ắ ầ ạ
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 12
Macro – Ch ng trình conươ
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 13
Cách vi t S - Ký t - Chu iế ố ự ỗ

Cách vi t s : 4 d ngế ố ạ

Th p phân: 10, 2456, 78901, -123ậ

Th p l c phân: 10ậ ụ h, 0A1Fh, 3AH, 1DECh


Nh phân: 1ị b, 10101010b, 10110100B

Bát phân: 10o, 35O, 1230O

Ký t : ‘A’, “B”, ‘x’, “w”ự

Chu i: ‘Hello Word’, “Welcome to Assembly”ỗ

M i ký t là 1 BYTE và đ c qu n lý b ng mã ASCIIỗ ự ượ ả ằ

Chu i là mãng v i m i ph n t là 1 ký tỗ ớ ỗ ầ ử ự
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 14
Khai báo d li u (Bi n)ữ ệ ế

Bi n là Tên đ i di n cho đ a ế ạ ệ ị
ch ô nh => Truy xu t n i ỉ ớ ấ ộ
dung ô nh b ng Tên Bi nớ ằ ế
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 15
Khai báo d li u (Bi n)ữ ệ ế
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 16
Ví dụ
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 17
Ví dụ
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 18
Toán h ngạ

Toán h ng là thành ph n trong dòng l nh: 3 lo iạ ầ ệ ạ

Toán h ng t c thì (Immed): H ng Sạ ứ ằ ố


Cách vi t:ế 10, ‘B’, 10b, 10h

Ký hi u t ng quát đ i di n cho toán h ng t c thì: ệ ổ ạ ệ ạ ứ
Immed : Toán h ng t c thì nói chungạ ứ
Immed8 : Toán h ng t c thì 8 bitạ ứ
Immed16 : Toán h ng t c thì 16 bitạ ứ
Immed32 : Toán h ng t c thì 32 bitạ ứ
MOV AX, 1AF8h ; AX  1AF8h (là TH. T c thì)ứ
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 19
Toán h ng Thanh Ghiạ

Toán h ng Thanh ghi (Reg): Tên thanh ghi ạ
 Truy xu t n i dung thanh ghiấ ộ

Cách vi t:ế AX, BX, CX, DX, AL, AH, SI, DS,

Ký hi u t ng quát đ i di n cho toán h ng thanh ghi: ệ ổ ạ ệ ạ
Reg : Toán h ng thanh ghi đa d ng nói chungạ ụ
Reg8 : Toán h ng thanh ghi đa d ng 8 bitạ ụ
Reg16 : Toán h ng thanh ghi đa d ng 16 bitạ ụ
SegRes : Toán h ng thanh ghi đo nạ ạ
MOV AX, SI ; AX  SI (là thanh ghi)
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 20
Toán h ng Ô nhạ ớ

Toán h ng Ô nh (Mem): Đ a ch ô nh (Tên bi n) ạ ớ ị ỉ ớ ế
 Truy xu t n i dung ô nh (giá tr Bi n)ấ ộ ớ ị ế

Các cách vi t c b n: ế ơ ả

Tên_Bi nế : Truy xu t đ n n i dung c a Bi n.ấ ế ộ ủ ế
[Immed16]: Truy xu t n i dung c a ô nh trong đo n ấ ộ ủ ớ ạ
DS, ô nh đó có đ a ch đ d i là ớ ị ỉ ộ ờ Immed16 . Còn g i là ọ
tr c ti p ô nh .ự ế ớ
[Reg16]: Truy xu t n i dung c a ô nh trong đo n DS, ấ ộ ủ ớ ạ
mà ô nh đó có đ a ch đ d i l u trong ớ ị ỉ ộ ờ ư Reg16. Còn g i ọ
là gián ti p thanh ghi.ế
MOV AX, FOO ; AX  M[FOO] (Tên bi n)ế
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 21
Toán tử

Toán t tác đ ng lên toán h ng trong dòng l nhử ộ ạ ệ
Toán_t <toán h ng>ử ạ

Các toán t : ử type, length, size

Ví d :ụ
FOO DW 100 DUP (?)
MOV AX, type FOO ; AX = 2
MOV CX, length FOO ; CX = 100
MOV BX, size FOO ; BX = 200
MOV DX, type FOO * length FOO ; DX = 200
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 22
C u trúc ch ng trình d ng EXEấ ươ ạ
…. ; Khai báo h ng s (n u có)ằ ố ế
MNAME MACRO ; (N u có)ế
… ; Vi t l nh Macroế ệ
ENDM
DSEG SEGMENT (N u có khai báo Bi n)ế ế
… ; Khai báo d li uữ ệ

DSEG ENDS
CSEG SEGMENT
ASSUME CS: CSEG, DS: DSEG
Start: MOV AX, DSEG
MOV DS, AX ; kh i đ ng DS: đ a ch Đo n d li u (DSEG)ở ộ ị ỉ ạ ữ ệ

… ; (Ch ng trình chính)ươ

MOV AH, 4Ch ; hàm 4Ch c a ng t 21hủ ắ
INT 21h ; thoát kh i ch ng trìnhỏ ươ
CTCON PROC
… ; Vi t các Th t c (N u có)ế ủ ụ ế
RET
CTCON ENDP
CSEG ENDS
END Start
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 23
Ví d : Vi t CT in ra màn hình ký t ‘B’ụ ế ự
CSEG SEGMENT
ASSUME CS: CSEG
BD:
MOV AH, 02h ; hàm in ký t c a ng t 21hự ủ ắ
MOV DL, ‘B’ ; DL ch a ký t c n inứ ự ầ
INT 21h ; G i ng t đ th c công vi cọ ắ ể ự ệ
MOV AH, 4Ch
INT 21h
CSEG ENDS
END BD
Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 24
Cách t o ch ng trình h p ngạ ươ ợ ữ

Assembly: Chapter 2 - MEng. Nguyen Hua Duy Khang, 2010 25
S d ng RadASMử ụ

Giao di n ph n m mệ ầ ề
S th t ố ứ ự
dòng l nhệ
Vùng so n ạ
th oả
Vùng thông báo k t qu ế ả
D ch ch ng trìnhị ươ

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

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